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

如何使用EXCEL把1--10每5个一组(不重复)具体排列出来,不会VB,有没有快速的办法,把252个组合排列出来这一种类型的252个组合谁能帮忙排一下。数字中间有空格一... 如何使用EXCEL 把1--10 每5个一组(不重复)具体排列出来,
不会VB,有没有快速的办法,把252个组合排列出来

这一种类型的 252个组合 谁能帮忙排一下。
数字中间 有空格一下。
1--10 不是0
谢谢
展开
 我来答
电子科技小百科
高粉答主

2020-04-28 · 繁杂信息太多,你要学会辨别
知道答主
回答量:4367
采纳率:0%
帮助的人:71.9万
展开全部

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、最后可以看到,使用公式提取不重复的内容的效果。

绿衣人敲门
推荐于2018-02-23 · 知道合伙人软件行家
绿衣人敲门
知道合伙人软件行家
采纳数:18765 获赞数:63776
毕业于西北大学计算机网络技术专业,现在在西安电力学院进行网络推广维护工作!

向TA提问 私信TA
展开全部
条件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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
coolbi5
推荐于2017-12-16 · TA获得超过1万个赞
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:2444万
展开全部

不用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


本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三井熊
2018-02-23 · TA获得超过1204个赞
知道小有建树答主
回答量:909
采纳率:64%
帮助的人:172万
展开全部
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

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式