如何在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