excel排列组合生成公式?排列是指从n个元素中取出m个元素按照一定的顺序排列起来,其计算公式为P(n,m)=n!/(n-m)!。而组合则是从n个元素中取出m个元素组成一个集合,其计算公式为C(n,m)=n!/((n-m)!*m!)。在EXCEL中,那么,excel排列组合生成公式?一起来了解一下吧。
本例主要介绍如何在Excel中把两组数据的组合全部列出来。
操作过程:首先,看一下原始数据。A1和A2是两个主等级,B1:B4是四个附属等级,每个主等级都有四个附属等级。需要在C列显示出所有的组合情况。
我们考虑用INDEX函数来实现这个功能。首先来看一下INDEX第二参数如何做。 双击C1,输入公式=INT((ROW(A1)-1)/4)+1,下拉可以看到1出现了4次,2也出现了4次,这是因为B列数据4次以后就需要在A列偏移一个单元格。
外面嵌套INDEX函数,输入: =INDEX($A$1:$A$2,INT((ROW(A1)-1)/4)+1) 下拉后就可以看到“一等”和“二等”各出现了4次。
第二列数据和第一列数据不一样,我们需要循环引用B列的数据。也就是让1,2,3,4循环出现。所以我们考虑用MOD函数。双击D1,输入公式: =MOD(ROW(A1)-1,4)+1 下拉后我们可以看到如下图的效果:
同样,外层嵌套INDEX函数,可以循环获得B列的数据,4行一遍: =INDEX($B$1:$B$4,MOD(ROW(A1)-1,4)+1)
最后,我们把公式合并在一个单元格中,就生成了最终结果组合。
A1公式:
=IF(ROW()>256,"",SUBSTITUTE(TEXT(DEC2BIN(256-ROW(A1)),"00000000"),0,2))
下拉填充即可。
Sub 排列()
Dim k
For k = 1 To 5
For r = 1 To 5
x = Range("f65536").End(xlUp).Row
Cells(x + 1, "F") = Cells(1, k) & Cells(1, r)
Next
Next
排列2
End Sub
Sub 排列2()
Dim k
For k = 1 To 5
For r = 1 To 5
x = Range("f65536").End(xlUp).Row
Cells(x + 1, "F") = Cells(1, k) & Cells(1, k + 1) & Cells(1, r)
Next
Next
End Sub
怎么是1到11位数,还能8位为1组?
是8个为一组?
写公式 =RANDBETWEEN(1,11)&","&RANDBETWEEN(1,11)&","&RANDBETWEEN(1,11)&","&RANDBETWEEN(1,11)&","&RANDBETWEEN(1,11)&","&RANDBETWEEN(1,11)&","&RANDBETWEEN(1,11)&","&RANDBETWEEN(1,11)
然后下拉复制
1、首先在电脑中打开excel软件,输入要组合的数据。
2、在新的一列中输入公式:=INDEX($E$1:$E$3,INT((ROW(E1)-1)/4)+1),如图所示,其中4表示甲乙丙丁四个的数量。
3、然后回车,往下拖拉至ABC数量乘以甲乙丙丁的数量,这里为3X4=12。
4、同样,在新的一列输入公式:=INDEX($F$1:$F$4,MOD(ROW(E1)-1,4)+1),同样的操作。
5、最后将两者的数据合在一起,可以直接将两个单元格用&(与命令)加载一起,也可以直接将两个公式用&合在一起,就完成了。
以上就是excel排列组合生成公式的全部内容,任意单元格公式:=IF(ROW(A1)>9,"",INDEX(A:A,ROW(A3)/3)&INDEX(B:B,1+MOD(ROW(A3),3)))向下填充 --- 如果扩展到A列有M个数。