这是一个经常被问到和回答的问题:如何在 Excel 中生成所有排列:
2011 2016 2017 2017 超级用户 2018 2021
现在到了2022 年,在它作为重复项关闭之前没有得到答案,这是不幸的,因为LAMBDA确实改变了这个问题的回答方式。
我很少有同样的需求,并且因不得不重新发明一个复杂的轮子而感到沮丧。因此,我将重新提出问题并在下面给出我自己的答案。我不会将任何提交标记为答案,但会邀请好的想法。我确信我自己的方法可以改进。
我正在尝试仅使用公式在 Excel 中创建循环。我想要实现的目标如下所述。假设我有 3 列作为输入: (i) 国家/地区;(ii) 变量;(iii) 年份。我想从这些输入进行扩展,然后为这些参数分配值。
输入:
| 国家 | 多变的 | 年 |
|---|---|---|
| 国标 | 国内生产总值 | 2015年 |
| 德 | 区域 | 2016年 |
| CH | 区域 | 2015年 |
输出:
| 国家 | 多变的 | 年 |
|---|---|---|
| 国标 | 国内生产总值 | 2015年 |
| 国标 | 国内生产总值 | 2016年 |
| 国标 | 区域 | 2015年 |
| 国标 | 区域 | 2016年 |
| 德 | 国内生产总值 | 2015年 |
| 德 | 国内生产总值 | 2016年 |
| 德 | 区域 | 2015年 |
| 德 | 区域 | 2016年 |
如何使用 Excel 有效地做到这一点?
我有三列,每一列都有不同类型的主数据,如下所示:
现在,我想要这三个单元格的所有可能组合 …
是否可以在不使用 VBA 且不使用任何“帮助”表或行/列的情况下在 Excel 中生成排列表?
对于 N 列,将有 N! 行。
例如,N=3 的表将如下所示:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
Run Code Online (Sandbox Code Playgroud)