excel 将一行中的5个数字进行选3的组合,要求列出所有组合。如图

在A1:E1中输入数据,在F列显示出来。5个数选3的组合是10个组合。就像图中得F列,得到的是 1 2 7 8 9中5个数字选3的所有组合。

公式解决方案:

H1=1

I1=2

J1=3

H2

=IF(((I1+1)>4)*((J1+1)>5),H1+1,H1)

I2

=IF(IF((J1+1)>5,I1+1,I1)>4,H2+1,IF((J1+1)>5,I1+1,I1))

J2

=IF(J1+1>5,I2+1,J1+1)

选定H2:J2

下拉至第10 行

K1

=INDIRECT("R1C"&H1,FALSE)*100+INDIRECT("R1C"&I1,FALSE)*10+INDIRECT("R1C"&J1,FALSE)

下拉至K10

K列即所求的。

VBA解决方案:

在工作表插入一命令按钮,并编程如下:

Private Sub CommandButton1_Click()

l = 1

For i1 = 1 To 3

  For i2 = i1 + 1 To 4

    For i3 = i2 + 1 To 5

      Range("F" & l) = Cells(1, i1) * 100 + Cells(1, i2) * 10 + Cells(1, i3)

      l = l + 1

    Next i3

  Next i2

Next i1

End Sub

 

运行结果:

 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-07
只有10组数据,直接在将各组合下列还快一些,
在F1输入:=A1&A2&A3
在F2 输入:=A1&A2&A4……
依次输入各种组合存档后,今后调整A1~A5的数据,各种组合数据也会随之变化。
第2个回答  2012-07-07
如果你有A1—E1的数值,你可以在F格中用函数求出(A1*100+B1*10+C1*1)得出数值,向下拖得出所有的。
相似回答