核心结论前置,excel 数字复式组合,也就是从 N 个数字里面,选出 M 个数字,生成所有不重复的组合,数学上叫做 C (N,M) 组合,特点是不考虑顺序,例如 123 和 321 属于同一组,不会重复生成,如果需要考虑顺序就是排列 P (N,M)。excel 原生没有一键生成全部组合的内置函数,旧版本一般用辅助列嵌套公式或者 VBA 实现,新版 365 支持动态数组,可以使用 COMBIN 函数计算组合总数量,再搭配动态数组公式输出全部组合,COMBIN 只负责算出一共有多少组,不能直接列出全部组合明细,这是新手最容易混淆的点,很多人以为 COMBIN 可以直接输出每一组数字,实际它只是计数公式,复式组合广泛用于号码选号、数据抽样、试验分组这类场景。
原因说明
数学组合公式 C (N,M)=N!/(M!(N-M)!),含义是总共有 N 个数字,每次取 M 个,不计顺序,全部不重复分组。excel 里面 COMBIN 函数就是专门实现这个数学计算,语法 COMBIN (总数 N, 选取个数 M),返回组合总组数。如果需求是把每一组组合全部罗列出来,单纯 COMBIN 无法完成,因为它只返回一个数字结果,所以需要动态数组公式或者辅助列逐行递推,按升序生成所有组合,保证后面数字始终大于前面数字,避免出现顺序颠倒的重复组合。
一 组合数量计算公式 COMBIN
语法:=COMBIN (N,M)
示例:一共 8 个数字,每次选 3 个,总组合数量
=COMBIN (8,3)
计算结果等于 56,代表一共 56 组复式组合
补充函数 COMBINA,这个是允许重复选取的组合,也就是可重复组合,和普通复式不重复组合不一样,不要混用。
二 新版 Excel365 动态数组 输出全部复式组合
适用:Microsoft 365 新版 excel,支持动态数组溢出
思路:生成升序组合,保证每一组里面数字从小到大,不重复
基础逻辑:把原始数字放在 A2:A9,一共 8 个数字,需要每 3 个一组
说明:动态数组组合公式写法相对复杂,如果不想写长公式,也可以使用辅助列分层编号,逐行判断升序条件。
辅助列方案核心判断条件:同一组内后面数字序号大于前面数字序号,满足条件才保留为一组复式组合。
三 旧版 Excel 辅助列生成复式组合
适用:2019 及更早版本,无动态数组
操作步骤
1 在 A 列录入原始数字,例如 A2:A9,编号 1 到 8
2 设置三层辅助列,分别代表第 1 位,第 2 位,第 3 位的序号
3 加入判断条件,第 2 位序号大于第 1 位,第 3 位序号大于第 2 位
4 满足升序条件的行,提取对应 A 列数字,拼接成一组复式组合
5 下拉填充,筛选出符合条件的行,就是全部不重复复式组合
如果是每次选 4 个数字,就增加第四层辅助列,继续保持递增判断。
四 排列(有序组合 P (N,M))区分说明
如果你的需求是数字顺序不同就算不同一组,属于排列,使用 PERMUT 函数
语法 = PERMUT (N,M)
示例 = PERMUT (8,3),得到排列总数,和 COMBIN 结果不一样,排列会把 123、321 当成两组。
方案对比表格
| 函数 / 方案 | 功能 | 是否考虑顺序 | 是否输出组合明细 | 适用版本 |
|---|---|---|---|---|
| COMBIN | 计算不重复组合总组数 | 不考虑顺序 | 只返回总数 | 全部 excel 版本 |
| COMBINA | 可重复组合总组数 | 不考虑顺序 | 只返回总数 | 全部 excel 版本 |
| PERMUT | 计算排列总组数 | 考虑顺序 | 只返回总数 | 全部 excel 版本 |
| 动态数组 / 辅助列 | 列出全部组合明细 | 不考虑顺序 | 输出每一组数字 | 365 新版 / 旧版辅助列 |
FAQ
问题 1 excel 数字复式组合公式 COMBIN 为什么只出来一个数字
回答 excel 数字复式组合公式 COMBIN 的作用只是计算组合总组数,excel 数字复式组合公式本身不能直接列出每一组号码明细,想要输出全部组合,需要动态数组或者辅助列方案。
问题 2 excel 数字复式组合公式能不能做到数字可以重复选取
回答 excel 数字复式组合公式普通 COMBIN 是不重复组合,excel 数字复式组合公式如果允许重复选号,需要改用 COMBINA 函数计算总组数。
问题 3 excel 数字复式组合公式旧版本 excel 没有动态数组怎么办
回答 excel 数字复式组合公式旧版 excel 不支持动态数组溢出,excel 数字复式组合公式推荐使用多层辅助列,增加升序判断条件,筛选得到全部复式组合。
问题 4 excel 数字复式组合公式复式组合和排列有什么差别
回答 excel 数字复式组合公式复式组合不计顺序,123 和 321 算同一组,excel 数字复式组合公式排列是计顺序,123 和 321 算两组,对应函数是 PERMUT。
免责声明:本教程基于微软 Excel 主流版本编写,WPS 表格 excel 数字复式组合公式动态数组支持情况存在版本差异,操作前建议备份原始表格数据,本文仅作为数学组合计算学习参考,不承担任何相关风险责任。


