MS Excel:数字排列

时间:2015-05-09 05:37:46

标签: excel

我需要生成一组数字的所有可能组合, 我知道可以使用任何编程语言生成它。 我想知道如果有可能在MS Excel中有一个公式?

例如。对于3位数字123

ColA:ColB
1   : 123 
2   : 132 
3   : 213 
4   : 231 
5   : 312 
6   : 321 

解决方案应该是可扩展的,因为我希望将其用于9位数字。

问候

2 个答案:

答案 0 :(得分:0)

您可以只计算数字(111111111_111111112 ...),将所有数据放在一列中,然后对于每一行,使用middle()函数获取一个字符并将其转换为文本,每个数字一列。或者做一些划分和模数来抓住每个数字。有很多方法。

如果你没有得到答案,我可以在早上写出一个公式。 :)

是否允许重复,如111?或者它们都是唯一的数字?

答案 1 :(得分:0)

与此处的一些评论相反,我没有为此找到Excel解决方案。所以这是我的方法:

enter image description here

公式:

<{1}}中的

K1

=COUNTA(A1:I1)中的

A2

此公式被复制到右=INDEX($A$1:$J$362881,ROW()+$L2,COLUMN()+IF($K2+COLUMN()=$K$1+$K2,-$K2,IF($K2+COLUMN()>=$K$1,1,0)))

I2中的

K2
<{1}}中的

=IF(ROW()<=FACT($K$1),$K$1+1-MATCH(0,MOD(ROW()-1,FACT($K$1+1-{1,2,3,4,5,6,7,8,9})),-1),#N/A)

第2行可以根据需要完全向下复制。

现在在L2我们可以输入最多9个值,从中计算排列。

这源于:http://www.excelformeln.de/formeln.html?welcher=325