EXECL上如何进行数据排列组合如有五列数据A;1.4.8.:B:2.6.7.:C:5.6.4.;D:5.1.4.:E:1.3.5.每组共有五个数(从每列中取1个数进行排列),按计算共有254组,请问在excel上排列如何操作.

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/31 02:15:30
EXECL上如何进行数据排列组合如有五列数据A;1.4.8.:B:2.6.7.:C:5.6.4.;D:5.1.4.:E:1.3.5.每组共有五个数(从每列中取1个数进行排列),按计算共有254组,请问

EXECL上如何进行数据排列组合如有五列数据A;1.4.8.:B:2.6.7.:C:5.6.4.;D:5.1.4.:E:1.3.5.每组共有五个数(从每列中取1个数进行排列),按计算共有254组,请问在excel上排列如何操作.
EXECL上如何进行数据排列组合
如有五列数据A;1.4.8.:B:2.6.7.:C:5.6.4.;D:5.1.4.:E:1.3.5.每组共有五个数(从每列中取1个数进行排列),按计算共有254组,请问在excel上排列如何操作.

EXECL上如何进行数据排列组合如有五列数据A;1.4.8.:B:2.6.7.:C:5.6.4.;D:5.1.4.:E:1.3.5.每组共有五个数(从每列中取1个数进行排列),按计算共有254组,请问在excel上排列如何操作.
应是 243个, 不是 254个
此题需用VBA自定义函数:
Function sortx(arr As Range, num As Integer)
r = arr.Rows.Count
For c1 = 1 To r
For c2 = 1 To r
For c3 = 1 To r
For c4 = 1 To r
For c5 = 1 To r
rr = rr + 1
sortx = arr(c1, 1) & arr(c2, 2) & arr(c3, 3) & arr(c4, 4) & arr(c5, 5)
If rr = num Then Exit Function
Next
Next
Next
Next
Next
End Function
假设数据在A1:E3
在任何一格输入公式
=sortx($A$1:$E$3,ROW(A1))
然后下拉
上述VBA代码是适用于任意行数, 如A2:E6, B10:F14…..等都可以
但一定要5列, 如不是5列, 代码要作适当的修改
由于此类公式, 需要相当时间去重算
如 数据在 A1:E8, 即5列8行, 共32768个组合
但输入公式 =sortx($A$1:$E$8,ROW(A1))
下拉32768格时, 可能需要很长的时间
如电脑资源不足, 更有可能死机的, 请注意