EXCEL 1--10个数字不重复具体排列组合

如何使用EXCEL 把1--10 每5个一组(不重复)具体排列出来,
不会VB,有没有快速的办法,把252个组合排列出来

这一种类型的 252个组合 谁能帮忙排一下。
数字中间 有空格一下。
1--10 不是0
谢谢

1、首先打开电脑上的excel表格,然后统计不重复的个数。

2、然后使用公式,=SUMPRODUCT(1/COUNTIF(A2:A9,A2:A9))。

3、使用公式后统计不重复的个数,便于在数据量大的情况下使用公式。

4、提取不重复的内容C2单元格输入以下数组公式,按Ctrl+ Shift+Enter,向下复制。=INDEX(A:A,1+MATCH(,COUNTIF(C$1:C7,A$2:A$9),))&"。

5、最后可以看到,使用公式提取不重复的内容的效果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-23
条件1:不包含0
条件2:不得有重复数字
范围:12345~98765
符合的数字有 57205个,

右击工作表标签→查看代码,把下面的代码贴到VBE中,按F5运行,结果粘贴到A列

Sub chiefzjh()
Dim mStr$, i, k%, Tmp$, mDic
Set mDic = CreateObject("scripting.dictionary")
mStr = "123456789"
For i = 12345 To 98765
If InStr(i, "0") = 0 Then 'No "O" exit
For k = 1 To 4 'No duplicate finger
If 5 - Len(Replace(i, Mid(i, k, 1), "")) >= 2 Then Exit For
Next k
mDic.Add i, "" 'Add to Dic
End If
Next i
i = mDic.Count
Range("a1").Resize(i, 1) = WorksheetFunction.Transpose(mDic.keys)
End Sub本回答被网友采纳
第2个回答  推荐于2017-12-16

不用VB不好弄的!我用一种比较笨的算法,然后用VBA生成的,自己看附件哈,应该就是你说的那样的,

Option Explicit

Sub combin()
    Dim i, j, l, k, n, m
    For i = 1 To 6
        For j = i + 1 To 7
            For l = j + 1 To 8
                For k = l + 1 To 9
                    For n = k + 1 To 10
                        m = m + 1
                        Sheet1.Range("a" & m) = i & " " & j & " " & l & " " & k & " " & n
                    Next n
                Next k
            Next l
        Next j
    Next i
End Sub


本回答被提问者和网友采纳
第3个回答  2018-02-23
Sub 组合()
    intRow = 1
    Dim arr1(4)
    For i = 1 To 10
        arr1(0) = i
        For j = 1 To 10
            If (arr1(0) < j) Then
                arr1(1) = j
                For k = 1 To 10
                    If (arr1(0) < k And arr1(1) < k) Then
                        arr1(2) = k
                        For l = 1 To 10
                            If (arr1(0) < l And arr1(1) < l And arr1(2) < l) Then
                                arr1(3) = l
                                For m = 1 To 10
                                    If (arr1(0) < m And arr1(1) < m And arr1(2) < m And arr1(3) < m) Then
                                        arr1(4) = m
                                        Cells(intRow, 1).Value = Join(arr1, " ")
                                        intRow = intRow + 1
                                    End If
                                Next
                            End If
                        Next
                    End If
                Next
            End If
        Next
    Next
End Sub

如果是要排列,则把所有的<都改成<>

相似回答