跳到主要內容
 

如何在Excel中生成3列或多列的所有組合?

作者:小陽 最後修改時間:2020-12-08

假設我有3列數據,現在,我想在這3列中生成或列出數據的所有組合,如下圖所示。 您有什麼好的方法可以在Excel中解決此任務?

使用公式基於3列數據生成所有組合

使用VBA代碼基於3列或多列數據生成所有組合

使用超讚功能,根據3列或多列數據生成所有組合


使用公式基於3列數據生成所有組合

下面的長公式可以幫助列出3列的所有組合,請這樣做:

1。 請單擊要輸出結果的單元格,然後將以下公式複制並粘貼到其中:

=IFERROR(INDEX($A$2:$A$4,INT((ROW(1:1)-1)/((COUNTA($B$2:$B$6)*(COUNTA($C$2:$C$5)))))+1)&"-"&INDEX($B$2:$B$6,MOD(INT((ROW(1:1)-1)/COUNTA($C$2:$C$5)),COUNTA($B$2:$B$6))+1)&"-"&INDEX($C$2:$C$5,MOD((ROW(1:1)-1),COUNTA($C$2:$C$5))+1),"")

備註:在此公式中: A2:A4, B2:B6, C2:C5 是您要使用的數據范圍。

2。 然後,將填充手柄向下拖動到單元格,直到顯示空白單元格,這意味著已列出3列的所有組合,請參見屏幕截圖:


使用VBA代碼基於3列或多列數據生成所有組合

上面的長公式很難使用,如果需要使用多列數據,則修改起來很麻煩。 在這裡,我將介紹一個VBA代碼來快速處理它。

1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊,然後將以下代碼粘貼到“模塊窗口”中。

VBA代碼:生成3列或多列的所有組合

Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3 As Range
Dim xRg  As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3 As Integer
Dim xSV1, xSV2, xSV3 As String
Set xDRg1 = Range("A2:A4")  'First column data
Set xDRg2 = Range("B2:B6")  'Second column data
Set xDRg3 = Range("C2:C5")  'Third column data
xStr = "-"   'Separator
Set xRg = Range("E2")  'Output cell
For xFN1 = 1 To xDRg1.Count
    xSV1 = xDRg1.Item(xFN1).Text
    For xFN2 = 1 To xDRg2.Count
        xSV2 = xDRg2.Item(xFN2).Text
      For xFN3 = 1 To xDRg3.Count
        xSV3 = xDRg3.Item(xFN3).Text
        xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3
        Set xRg = xRg.Offset(1, 0)
       Next
    Next
Next
End Sub

備註:在上面的代碼中, A2:A4, B2:B6, C2:C5 是您要使用的數據范圍, E2 是您要查找結果的輸出單元格。 如果要獲得更多列的所有組合,請根據需要更改並將其他參數添加到代碼中。

3。 然後按 F5 鍵來運行此代碼,並且將同時生成3列或多列的所有組合,請參見屏幕截圖:


使用超讚功能,根據3列或多列數據生成所有組合

如果你有 Excel的Kutools,其功能強大 列出所有組合 功能,您可以快速輕鬆地列出多列的所有組合。

更多竅門:要應用此 列出所有組合 功能,首先,您應該下載 Excel的Kutools,然後快速輕鬆地應用該功能。

安裝後 Excel的Kutools,請這樣做:

1。 點擊 庫工具 > 插入 > 列出所有組合,請參見屏幕截圖:

2。 在 列出所有組合 在對話框中,指定列數據和分隔符以列出組合,如下面的屏幕截圖所示:

3。 設置數據和分隔符後,然後單擊 Ok 按鈕,在下一個提示框中,選擇一個單元格以找到結果,請參見屏幕截圖:

4。 然後,單擊 OK 按鈕,將立即生成所有組合,如下圖所示:

點擊下載Kutools for Excel並立即免費試用!


  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 和保存數據; 拆分單元格內容; 合併重複的行和總和/平均值...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 收藏并快速插入公式,範圍,圖表和圖片; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 數據透視表分組依據 週號,週幾等 顯示未鎖定的單元格 用不同的顏色 突出顯示具有公式/名稱的單元格...
kte選項卡201905
  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部