在 Excel 的工作表中有一個清單,如何產生指定重複的組數。在下圖中,資料清單裡有 5 個項目,指定產生 2 組、3 組、4 組、...,該如何處理?
以下提供二種不同函數來處理
1. 使用 SEQUENCE 函數
(1) 產生 2 組,公式:=INDEX(F6:F10,MOD(SEQUENCE(2*5,1,0),5)+1)
公式中的參數「2」為 2 組,「5」為清單中的項目數量。
利用 SEQUENCE 函數產生數列,SEQUENCE(2*5,1,0) 會產生 0, 1, 2, ..., 9(共 10 個),本例可得:{0;1;2;3;4;5;6;7;8;9}。。
透過 MOD 函數將 SEQUENCE 函數的傳回值除以 5,再取餘數,本例可得:{0;1;2;3;4;0;1;2;3;4}。
最後以 INDEX 函數用查表方式取得對應的項目內容。
(2) 產生 3 組,公式:=INDEX(F6:F10,MOD(SEQUENCE(3*5,1,0),5)+1)
公式中的參數「3」為 3 組。
(3) 產生 4 組,公式:=INDEX(F6:F10,MOD(SEQUENCE(4*5,1,0),5)+1)
公式中的參數「4」為 4 組。
2. 使用 ROW 函數
(1) 產生 2 組,公式:=INDEX(F6:F10,MOD(ROW(INDIRECT("1:"&2*5))-1,5)+1)
公式中的參數「2」為 2 組,「5」為清單中的項目數量。
利用 INDIRECT 函數將字串轉換為位址。
ROW(INDIRECT("1:"&2*5)) 可得:{1;2;3;4;5;6;7;8;9;10}。
MOD(ROW(INDIRECT("1:"&2*5))-1,5) 可得:{0;1;2;3;4;0;1;2;3;4}。
最後以 INDEX 函數用查表方式取得對應的項目內容。
(2) 產生 3 組,公式:=INDEX(F6:F10,MOD(ROW(INDIRECT("1:"&3*5))-1,5)+1)
公式中的參數「3」為 3 組。
(3) 產生 4 組,公式:=INDEX(F6:F10,MOD(ROW(INDIRECT("1:"&4*5))-1,5)+1)
公式中的參數「4」為 4 組。
【參考資料】
SEQUENCE 函數參考微軟提供的說明:SEQUENCE 函數
INDIRECT 函數參考微軟提供的說明:INDIRECT 函數
INDEX 函數參考微軟提供的說明:INDEX 函數
MOD 函數參考微軟提供的說明:MOD 函數
ROW 函數參考微軟提供的說明:ROW 函數
留言列表