如何在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列或更多列的组合,而不会遗漏任何内容。所有三种提供的方法都简单易用。