反饋已提交
網絡繁忙
ADD2ARRAY(array, insertArray, start):在陣列 array 的第 start 個位置插入 insertArray 中的所有元素,再傳回該陣列。
範例:
ADD2ARRAY([3, 4, 1, 5, 7], [23, 43, 22], 3)傳回[3, 4, 23, 43, 22, 1, 5, 7]。
ADD2ARRAY([3, 4, 1, 5, 7], "測試", 3)傳回[3, 4, "測試", 1, 5, 7]。
注1:如果 start 為小於 1 的數或者不寫 start 參數,則預設從陣列的第一位開始插入陣列元素。
注2:若array, insertArray, start為儲存格時,只有編輯過的儲存格參與計算。
1)概述
2)注意事項
當使用公式巢狀陣列儲存格時,如果陣列儲存格內實際是單值,會作為單值處理,需要巢狀 ARRAY 公式確定儲存格始終作為陣列計算(多值則不需要),比如 B2=ARRAY(1), 使用 INARRAY 函式應該寫成:INARRAY(1,ARRAY(B2)),如下圖所示:
如果寫成 INARRAY(1,B2),則無法傳回有效資料,如下圖所示:
3)範例
-
GREPARRAY(array,fn):透過 fn 條件過濾 array 陣列,傳回過濾後的新陣列。
過濾條件
item/index 加運算條件 ,如 item != 3
item 格式:根據陣列值進行過濾,index 格式:根據陣列值的序號進行過濾
GREPARRAY([3,4,2,3,6,8,7], item != 3) 傳回 [4,2,6,8,7] 。
GREPARRAY([3,4,2,3,6,8,7], index!= 3) 傳回 [3,4,3,6,8,7] 。
注:fn 參數必須符合格式要求,否則過濾不生效。比如名稱沒有定義成 item/index,回傳值為原陣列。
INARRAY(co, array):傳回 元素co 在陣列 array 中第一次出現的位置,如果 co 不在 array 中,則傳回 0。
如果String[] arr = {"a","b","b","c","d"} ,則:
INARRAY("b", arr)傳回元素"b"第一次出現的位置 2。
INARRAY("e", arr)傳回 0。
INDEXOFARRAY(array, index):傳回陣列 array 的第 index 個元素。
array:需要傳回元素的陣列。
index:陣列元素的下標。
INDEXOFARRAY(["第一個", "第二個", "第三個"], 2)傳回"第二個"。
在儲存格中輸入=indexofarray(["a","b","c","d"],3),獲取陣列中第三個位置的資料即回傳值為 c。
MAPARRAY(array, fn):批量處理陣列,透過fn對陣列中的元素進行轉換。
array:要轉換的陣列;
fn:處理陣列項目的函式 。
MAPARRAY([3,4,2,3,6,8,7], item != 3)傳回[false,true,true,false,true,true,true]。
MAPARRAY([3,4,2,-3,6,8,-5],if(item>0,1,0)),傳回[1,1,1,0,1,1,0]。
函式有三種參數形式:
1. RANGE(to),預設from為1,step為1,例如:RANGE(4)傳回[1,2,3,4]。RANGE(-5)傳回[]。
2. RANGE(from,to),預設step為1,例如:RANGE(-1,3)傳回[-1,0,1,2,3]。RANGE(0,5)傳回[0,1, 2,3,4,5]。
3. RANGE(from,to,step),三個參數的情況參照上面的註釋,例如:RANGE(6,-1,-2)傳回[6,4,2, 0]。RANGE(4,1,1)傳回[]。
開始值,整數,不寫預設為1
2)範例
REMOVEARRAY(array, start, deleteCount):從陣列 array 中刪除從第 start 個元素開始的 deleteCount 個陣列元素,並傳回刪除後的陣列。
REMOVEARRAY([3, 4, 4, 2, 6, 7, 87], 4, 2)傳回[3, 4, 4, 7, 87]。
REVERSEARRAY(array):傳回陣列 array 的倒序陣列。
REVERSEARRAY(["第一個", "第二個", "第三個"])傳回["第三個", "第二個", "第一個"]
注:使用 REVERSEARRAY 函式時,參數必須是陣列,如果參數不是陣列,必須使用 SPLIT 函式將其轉換為陣列,SPLIT 函式使用參見 SPLIT。
SLICEARRAY(array, start, end):傳回陣列從第 start 個到第 end 個元素(包括第 end 個元素)。
SLICEARRAY([3, 4, 4, 5, 1, 5, 7], 3, 6)傳回[4, 5, 1, 5]。
SLICEARRAY([3, 4, 4, 5, 1, 5, 7], 3)傳回[4, 5, 1, 5, 7]。
注:當不使用 end 參數時,傳回從 start 開始到陣列結束之間的元素。
SORTARRAY(array):傳回陣列 array 排過序的陣列 ,預設升冪排列。
SORTARRAY([3, 4, 4, 5, 1, 5, 7])傳回[1, 3, 4, 4, 5, 5, 7]。
注:陣列 array 的元素類型必須一樣,並且要可比較。
UNIQUEARRAY(array):去重,去掉陣列 array 中的重複元素,以保留第一次出現的元素為序,傳回去重之後的陣列。
UNIQUEARRAY([14, 2, 3, 4, 3, 2, 5, 6, 2, 7, 9, 12, 3])傳回[14, 2, 3, 4, 5, 6, 7, 9, 12]。
JOINARRAY(array,sepa):傳回一個由sepa作為分隔符的字串。
array:[arg1,arg2...]格式的陣列;
sepa:分隔符。
JOINARRAY([1,2],";")=1;2
JOINARRAY(['hello','world'],"-")=hello-world
注:對陣列儲存格使用該函式時,無需加上[],寫成joinarray(A1,"-")即可。若寫成joinarray([A1],"-"),函式可能無法達到預期效果。
因為A1儲存格本身就是陣列,[A1]是二維陣列,對二維陣列做join, 並不會去用符號join內層陣列。
若陣列在使用模擬計算時,參數需要寫成[1,2,3,4,5]格式。
例如輸入公式:INDEXOFARRAY(A2, 2),希望傳回陣列的第二個數字,則點選模擬計算後需要輸入參數格式為:[1,2,3,4,5],此時得出的模擬計算結果為2,如下圖所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙