如何在excel中用12个不同的数字,三个一组,组成不同的组显示出来。不要求不同排序,只需要不同组合。

比如,数字,1、2、3、4、5、6、7、8、9、10、11、12这十二数字,按照,123、124、125、234、245这样的组合。不要求排序,只要每个数字都涉及的不同组合就行。
好了,再补充一个吧,如果是多个数字(不仅限于12个数字,少于或者大于十二个数字的。)组成,两个一组,或者三个一组(不要求三个数字重复排序,只要组合。)怎么写入代码进行操作。可以通过其他方式找WO

程序:

结果:

共220组,粘贴了发不出,只有你自己执行代码了(按ALT+F11)。

追问

代码在哪里

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-10
万能的vba可以实现
第一步:初始化一个数组 放入12个数字
第二步:假设定义一个jgArr(1 to 220,1 to 3)as integer
JS=0
FOR I=1 TO 10
FOR J=I+1 TO 11
FOR K=J+1 TO 12
JS=JS+1
JGARR(JS,1)=ARR(I):JGARR(JS,2)=ARR(J):JGARR(JS,3)=ARR(K)
NEXT K
NEXT J
NEXT I
不理解 再问我吧
第2个回答  2018-10-10
a = [a1]
Set d = CreateObject("scripting.dictionary")
ReDim cm(1 To 10000, 1 To 1)
For i = 1 To Len(a)
d(Mid(a, i, 1)) = ""
Next
For i = 1 To Len(a)
For n = 1 To Len(a)
For u = 1 To Len(a)
s = Mid(a, i, 1) & Replace(Mid(a, n, u), Mid(a, i, 1), "")
If Mid(a, i, 1) <> Mid(a, n, u) Then d(s) = ""
Next
Next
Next
For i = 1 To Len(a)
Next
Range("b1").Resize(d.Count) = Application.Transpose(d.keys)
End Sub
在A1填入内容。比如:CJASRVEG
运行此宏,会在B列列出所有配对结果。
此方案的如CJ于JC都会列出。
a = [a1]
Set d = CreateObject("scripting.dictionary")
ReDim cm(1 To 10000, 1 To 1)
For i = 1 To Len(a)
d(Mid(a, i, 1)) = ""
Next
For i = 1 To Len(a)
For n = 1 To Len(a)
For u = 1 To Len(a)
s = Mid(a, i, 1) & Replace(Mid(a, n, u), Mid(a, i, 1), "")
If Mid(a, i, 1) <> Mid(a, n, u) Then d(px(s)) = ""
Next
Next
Next
For i = 1 To Len(a)
Next
Range("b1").Resize(d.Count) = Application.Transpose(d.keys)
End Sub
Function px(x)
Text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
For i = 1 To 26
For n = 1 To Len(x)
If Mid(Text, i, 1) = UCase(Mid(x, n, 1)) Then
s = s & UCase(Mid(x, n, 1))
End If
Next
Next
px = s
End Function
此方案与上方案的区别就是 类似于CJA与JCA 元素相同的归为一种。
第3个回答  2018-10-10
如果只是12个数字的话,你完全可以数得过来:123,124,125...234,235...101112,稍有编程基础的话,任何语言都可以通过编程来实现排列这种类NP问题。
第4个回答  2018-10-10
公式可以实现。晚上如果有时间再琢磨一下。
相似回答