如何在 Excel 中列出或生成所有可能的组合?

在 Excel 中处理数据时,您可能会遇到需要从多个列表生成所有可能组合的情况。例如,当您拥有两列或多列数值时,手动列出所有组合不仅繁琐,还容易出错——尤其在数值数量增多时更是如此。本指南将为您介绍几种在 Excel 中快速生成所有可能组合的高效方法。
使用公式从两个列表中列出或生成所有可能的组合
以下长公式可帮助您快速列出两个列表值的所有可能组合,请按以下步骤操作:
1. 在空白单元格中输入或复制下方公式(此处以 D2 单元格为例),然后按 Enter 键即可获取结果,如下图所示:
=IF(ROW()-ROW($D$2)+1>COUNTA($A$2:$A$5)*COUNTA($B$2:$B$4),"",INDEX($A$2:$A$5,INT((ROW()-ROW($D$2))/COUNTA($B$2:$B$4)+1))&"-"&INDEX($B$2:$B$4,MOD(ROW()-ROW($D$2),COUNTA($B$2:$B$4))+1)) 
2. 然后选中 D2 单元格,向下拖动填充柄,直至出现空白单元格为止。所有可能的组合将根据这两个列表的值自动生成,如下图所示:

使用 VBA 代码从三个或更多列表中列出或生成所有可能的组合
如果上述公式难以应用,尤其是在处理多列数据时,修改起来可能颇具挑战;此时,VBA 代码提供了一种更快、更灵活的解决方案。
1. 按下“ALT + F11”组合键,即可打开“Microsoft Visual Basic for Applications”窗口。
2. 单击“插入”>“模块”,并将以下代码粘贴到弹出的“模块”窗口中。
VBA 代码:生成 3 列或多列的所有组合
Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3 As Range
Dim xRg As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3 As Integer
Dim xSV1, xSV2, xSV3 As String
Set xDRg1 = Range("A2:A5") 'First column data
Set xDRg2 = Range("B2:B4") 'Second column data
Set xDRg3 = Range("C2:C4") 'Third column data
xStr = "-" 'Separator
Set xRg = Range("E2") 'Output cell
For xFN1 = 1 To xDRg1.Count
xSV1 = xDRg1.Item(xFN1).Text
For xFN2 = 1 To xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Text
For xFN3 = 1 To xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Text
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3
Set xRg = xRg.Offset(1, 0)
Next
Next
Next
End Sub 3. 然后按下“F5”键运行此代码,即可立即生成全部 3 列的组合,如下图所示:

使用 Kutools for Excel 从多个列表中列出或生成所有可能的组合
如果有多个值列表需要生成所有可能的组合,手动修改代码可能会比较困难。在此,我推荐一款强大的工具——“Kutools for Excel”,它内置了便捷的“列出所有组合”功能,可基于给定的数据列表快速生成所有可能的组合。
1. 单击“Kutools”>“插入”>“列出所有组合”,如下图所示:

2. 在“列出所有组合”对话框中,请按照以下演示进行操作:

3. 此时,所有指定的值和分隔符均已列于对话框中,如下图所示:

4. 然后单击“确定”按钮,系统将弹出提示框,提醒您选择一个单元格用于输出结果,如下图所示:

5. 单击“确定”后,系统将根据给定列表生成所有可能的组合,并显示在工作表中,如下图所示:

Kutools for Excel——通过 300 多款必备工具全面增强 Excel 功能,助您工作更快速、更轻松,并借助 AI 功能实现更智能的数据处理与高效办公!立即获取
更多相关文章:
- 生成 3 列或多列的所有组合
- 假设我有 3 列数据,现在想生成或列出这 3 列中所有可能的组合,如下图所示。您在 Excel 中是否有高效实现此任务的好方法?
- 找出总和等于指定值的所有组合
- 例如,我有一个数字列表,现在希望找出其中哪些数字组合的总和等于 480. 如下图所示,共有五组可能的组合满足条件,例如 300 + 60 + 120、300 + 60 + 40 + 80 等。本文将为您介绍几种在 Excel 中快速找出哪些单元格之和等于特定值的实用方法。
- 生成或列出所有可能的排列
- 例如,我有三个字符 XYZ,现在希望基于这三个字符列出所有可能的排列,从而得到六种不同的结果:XYZ、XZY、YXZ、YZX、ZXY 和 ZYX。在 Excel 中,如何根据不同数量的字符快速生成或列出所有排列?
- 生成所有可能的 4 位数字组合列表
- 在某些情况下,您可能需要生成从 0000 到 9999 的所有四位数字组合(即 0000、0001、0002……9999)。为了帮您在 Excel 中快速完成这项任务,以下是一些实用技巧。
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLookup | 多值 VLookup | 跨多工作表 VLookup | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 精选 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 类型(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,从路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|……更多 |
使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……
Office Tab 为 Office 带来标签式界面,让您的工作更轻松
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读。
- 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
- 将您的工作效率提升 50%,每天减少数百次鼠标点击!
所有 Kutools 插件,一个安装程序
Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。
- 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
- 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
- 协同效果更佳— 在多个 Office 应用中实现高效协同
- 30 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱