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


本文介紹了三種在Excel中生成3列或更多可用列的組合的方法。第一個示例基於使用使用者自定義公式生成可能的組合。第二個示例基於使用VBA程式碼生成所需組合的方法。最後一個示例基於使用Kutools生成相同資料。所有三種方法都完全準確,並且可以生成有效且唯一的結果。

示例1:使用公式在Excel中生成3列或多列的組合

步驟1

要了解生成3行或多行組合的過程,使用者需要考慮以下給定的資料:

步驟2

轉到H2單元格,並將以下提供的公式輸入單元格:

=IFERROR(INDEX($D$2:$D$4,INT((ROW(1:1)-1)/((COUNTA($E$2:$E$4)*(COUNTA($F$2:$F$4)))))+1)&"-"&INDEX($E$2:$E$4,MOD(INT((ROW(1:1)-1)/
COUNTA($F$2:$F$4)),COUNTA($E$2:$E$4))+1)&"-"&INDEX($F$2:$F$4,MOD((ROW(1:1)-1),COUNTA($F$2:$F$4))+1),"")

參考以下提供的圖片:

步驟3

“Enter”鍵。之後將“+”符號拖動到行的底部。這將生成並輸入可能的組合。

步驟4

最終獲得的輸出,快照如下所示:

示例2:使用VBA程式碼在Excel中生成3列或多列的組合

步驟1

在這個示例中,我們將觀察使用VBA程式碼生成可能的組合的方法。之後,轉到“開發者”選項卡,然後選擇“Visual Basic”選項,如下面的圖片中突出顯示的那樣。

步驟2

這將開啟“Microsoft Visual Basic for Applications”對話方塊,如下所示:

步驟3

之後,轉到“插入”模組,然後選擇“模組”選項。參考以下給出的快照:

步驟4

這將開啟一個程式碼區域。轉到程式碼區域,並鍵入以下給出的程式碼:

'Define function header
Sub Combination_List()
' declare required variables for range
Dim x1, x2, x3 As Range
Dim x_range  As Range
' declare a string variable
Dim str_x As String
' declare Integer variable
Dim x1_f, x2_f, x3_f As Integer
Dim x1_s, x2_s, x3_s As String
Set x1 = Range("D2:D4")  
Set x2 = Range("E2:E4")  
Set x3 = Range("F2:F4")
' setting Separator
str_x = "-"   'Separator
' setting output range
' Output cell
Set x_range = Range("H2")
' for each loop 
For x1_f = 1 To x1.Count
    x1_s = x1.Item(x1_f).Text
    ' nested for loop expressions
    For x2_f = 1 To x2.Count
        x2_s = x2.Item(x2_f).Text
      For x3_f = 1 To x3.Count
        x3_s = x3.Item(x3_f).Text
        x_range.Value = x1_s & str_x & x2_s & str_x & x3_s
        Set x_range = x_range.Offset(1, 0)
       Next
    Next
Next
' end of module
End Sub

請注意,只有在正確編寫的情況下,VBA才能執行。這僅僅意味著語法和提供的命令必須有效才能執行程式碼。

參考程式碼快照:

步驟5

之後按“Ctrl + s”儲存資料。返回工作表,使用者將獲得以下提供的輸出。

示例3:使用Kutools在Excel中生成3列或多列的組合

步驟1

此示例使用Kutools來完成所需的任務。考慮具有初始狀態的相同工作表,然後轉到“Kutools”選項卡→“編輯”→“插入”→“列出所有組合”。

步驟2

這將開啟“列出所有組合”對話方塊。參考以下給出的快照:

步驟3

選擇以下突出顯示的按鈕,逐個選擇資料範圍。

步驟4

首先,從D列選擇資料範圍,然後單擊“確定”

步驟5

返回“列出所有組合”對話方塊,單擊“型別”下的“分隔符”選項,在“文字”部分中選擇“-”,然後單擊“新增”按鈕。

步驟6

再次單擊框按鈕,並從E列選擇資料範圍。這將選擇如下所示的資料。再次單擊“確定”按鈕。

步驟7

再次設定分隔符,使用與之前相同的步驟,然後單擊“新增”。資料將出現在“列出所有組合”對話方塊中。

步驟8

同樣,從“F”列選擇資料。

步驟9

再次設定帶有“-”符號的分隔符值。最後,單擊“確定”

步驟10

這將關閉對話方塊。一個新的“列出所有組合”對話方塊將出現在控制檯中,並帶有一個輸入選項。在這個輸入空間中,傳遞使用者想要輸入資料的列值。

步驟11

最後,獲得的結果如下所示:

結論

學習了所有三種方法後,使用者將能夠高效地生成3列或更多列的組合,而不會遺漏任何內容。所有三種提供的方法都簡單易用。

更新於:2023年5月8日

9K+瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.