如何在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+浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告