在 Excel 的工作表中有一個清單,如何產生指定重複的組數。在下圖中,資料清單裡有 5 個項目,指定產生 2 組、3 組、4 組、...,該如何處理?

以下提供二種不同函數來處理

1. 使用 SEQUENCE 函數

Excel-依清單內容產生指定重複的組數

(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 函數

Excel-依清單內容產生指定重複的組數

(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 組。

【參考資料】

Excel-依清單內容產生指定重複的組數 SEQUENCE 函數參考微軟提供的說明:SEQUENCE 函數

Excel-依清單內容產生指定重複的組數 INDIRECT 函數參考微軟提供的說明:INDIRECT 函數

Excel-依清單內容產生指定重複的組數 INDEX 函數參考微軟提供的說明:INDEX 函數

Excel-依清單內容產生指定重複的組數 MOD 函數參考微軟提供的說明:MOD 函數 

Excel-依清單內容產生指定重複的組數 ROW 函數參考微軟提供的說明:ROW 函數

學不完.教不停.用不盡文章列表

arrow
arrow
    文章標籤
    Excel
    全站熱搜

    vincent 發表在 痞客邦 留言(0) 人氣()