相关疑难解决方法(0)

在Excel中生成多个列表的所有排列

我有这个问题,我有多个值列表,并且我需要获得所有可能的排列,所以基本上我有

List A = 1,2,3,4,5 List B = 10,20,30,40,50 List C = 5,4,5,2,1 List D = a,b,c,d,e

它们每个都位于彼此相邻的列中,因此第一行应该有 1,10,5,1,后面是 2,10,5,1,依此类推。有没有办法在不使用宏的情况下获取此列表?

任何帮助将不胜感激,谢谢!

excel

5
推荐指数
1
解决办法
2万
查看次数

如何在excel的三列中列出值的所有可能组合?

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

在此处输入图片说明

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

aa kk jj
aa kk ff
aa ll jj
aa ll ff
aa mm jj
...
Run Code Online (Sandbox Code Playgroud)

可以用公式来完成。我发现一个包含2列的公式,但是我无法正确地将其扩展到3列

两列公式:

=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))
Run Code Online (Sandbox Code Playgroud)

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

excel excel-formula

3
推荐指数
1
解决办法
1万
查看次数

没有 VBA 的 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)

math excel permutation

1
推荐指数
1
解决办法
8412
查看次数

无需 VBA 即可连接两列值的所有组合的公式

我做了一些挖掘,但找不到类似的问题。使用 VBA 循环这很容易,但实际上只是由于兼容性/在线共享而尝试使用单元格公式获得相同的结果。

我有两列,正在尝试连接两列的所有可能值。

Col1  Col2
A     1
B     2
C
...etc...
Run Code Online (Sandbox Code Playgroud)

所以结果是:

A1
A2
B1
B2
C1
C2
...etc...
Run Code Online (Sandbox Code Playgroud)

理想的情况是寻找一种溢出的解决方案,这样我就不必拖拉公式,而是接受任何可以获得所需结果的建议。

蒂亚!

arrays excel excel-formula excel-365

1
推荐指数
1
解决办法
1253
查看次数

如何获取一个单元格中的排列列表?

下面是 5 列 - 第 6 列包含所需的结果:5 列中的每个可能排列的名称。

两行只有两列有值 - 因此第 6 列中只有两种排列(由“;”分隔)。

一行有 4 个值,因此有 24 种排列。

在此输入图像描述

抱歉,我无法弄清楚如何将 Excel 中的表格粘贴到 Stack 中,而无需全部重写。

真实数据集中的行可以有 1 个值、5 个值或介于两者之间的任何值。

这里的答案似乎只适用于二维数组 - 该数组是一维的。我想不出任何明显的方法来使其成为 2d 以便这些解决方案发挥作用,这似乎也不是一种有效的方法。上述答案中的一个公式如下(我查看了所有这些公式,但无法弄清楚如何使它们适应我的需求):

=LET(A,A1:C3,B,ROWS(A),C,COLUMNS(A),D,B^C,E,UNIQUE(MAKEARRAY(D,C,LAMBDA(rw,cl,INDEX(IF(A="","",A),MOD(CEILING(rw/(D/(B^cl)),1)-1,B)+1,cl)))),FILTER(E,MMULT(--(E<>""),SEQUENCE(C,,,0))=C))
Run Code Online (Sandbox Code Playgroud)

我在 google 上搜索到的大多数解决方案似乎也无法在 1 行 5 列的简单数组上工作(或者我无法让它们工作)。

我尝试从头开始做,最终生成了一个仅包含数字 1-5 并且没有重复的数字列表 -

=LET(firstperm,VALUE(CONCAT(SEQUENCE(1,COLUMNS(Tablestu[@[First Name]:[Preferred Last Name]])))),lastperm,VALUE(CONCAT(SORT(SEQUENCE(1,COLUMNS(Tablestu[@[First Name]:[Preferred Last Name]])),,-1,TRUE))),diff,(lastperm-firstperm)+1,list,SEQUENCE(diff,1,firstperm),wanted,(IF((ISNUMBER(SEARCH("1",list))*ISNUMBER(SEARCH("2",list))*ISNUMBER(SEARCH("3",list))*ISNUMBER(SEARCH("4",list))*ISNUMBER(SEARCH("5",list))),list,"")),FILTER(wanted,wanted<>"",""))
Run Code Online (Sandbox Code Playgroud)

我想我可以以某种方式拆分这 5 位数字,并使用 INDEX 公式按该顺序返回单词。即 31452 将返回第三个单词,然后是第一个,然后是第四个,依此类推......但我仍然需要一百万次键盘头粉碎才能将其变成我需要的东西,而且它的效率将是愚蠢的低效当我到达那里时。

链接的答案似乎是正确的事情 - 我正在使用 Excel 365,我需要一个使用公式而不是 VBA 或 power query 的解决方案。

LAMDA 和 LET 都很好。

arrays excel permutation excel-formula

0
推荐指数
1
解决办法
314
查看次数

标签 统计

excel ×5

excel-formula ×3

arrays ×2

permutation ×2

excel-365 ×1

math ×1