如何在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列或更多列的組合,而不會遺漏任何內容。所有三種提供的方法都簡單易用。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP