使用Lambda在Excel中生成所有排列 [英] Generate All Permutations in Excel using LAMBDA

查看:24
本文介绍了使用Lambda在Excel中生成所有排列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是一个常见的问答问题:如何在Excel中生成所有排列

2011 2016 2017 2017 superuser 2018 2021

现在在2022中,它在作为副本关闭之前没有得到答案,这很遗憾,因为Lambda确实改变了回答此问题的方式。

我很少有同样的需求,并且因为不得不重新发明一个复杂的轮子而感到沮丧。所以,我会重新提出问题,并在下面提出我自己的答案。我不会将任何意见书作为答案,但会邀请好的想法。我相信我自己的方法可以改进。

重申2022问题

我正试图在EXCEL中创建一个仅包含公式的循环。我正在努力实现的目标如下所述。假设我有3列作为输入:(I)国家/地区;(Ii)变量;(Iii)年份。我想从这些输入扩展,然后为这些参数赋值。

输入:

国家 变量 年份
GB GDP 2015年
DE 区域 2016年
频道 区域 2015年

输出:

国家 变量 年份
GB GDP 2015年
GB GDP 2016年
GB 区域 2015年
GB 区域 2016年
DE GDP 2015年
DE GDP 2016年
DE 区域 2015年
DE 区域 2016年

如何使用Excel高效地执行此操作?

展开2018年的问题

我有三列,每列有不同种类的主数据,如下图所示:

现在,我想要这三个单元格的所有可能组合-如

aa kk jj
aa kk ff
aa ll jj
aa ll ff
aa mm jj
...

这可以用公式来完成吗?我找到一个有2列的公式,但我无法正确地将其扩展到3列

包含2列的公式:

=IF(ROW()-ROW($G$1)+1>COUNTA($A$2:$A$15)*COUNTA($B$2:$B$4),"",
INDEX($A$2:$A$15,INT((ROW()-ROW($G$1))/COUNTA($B$2:$B$4)+1))&
INDEX($B$2:$B$4,MOD(ROW()-ROW($G$1),COUNTA($B$2:$B$4))+1))

其中g1是放置结果值的单元格

常见要求

它们的共同点是,它们都试图从有序的符号集创建有序的排列集。它们碰巧都需要3个级别的符号,但2018年的问题是请求帮助从2级到3级,2021年的问题是要求从3级到5级。2022年的问题只是要求3级,但输出需要一个表。

如果我们像这样上升到6级怎么办?

L1 L2 L3 L4 L5 L6
A F K P U 1
B G L Q V 2
C H R W 3
D X 4
E

这将生成1‘440个排列。

这篇关于使用Lambda在Excel中生成所有排列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆