EXCEL 1--10个数字不重复具体排列组合
发布网友
发布时间:2022-04-30 01:57
我来回答
共4个回答
热心网友
时间:2022-06-28 14:32
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、最后可以看到,使用公式提取不重复的内容的效果。
热心网友
时间:2022-06-28 14:33
条件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 plicate 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
热心网友
时间:2022-06-28 14:33
不用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
热心网友
时间:2022-06-28 14:34
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
如果是要排列,则把所有的<都改成<>