excel A1=123456,在B列中生成三位数的所有排列组合

用excel公式... 用excel公式 展开
 我来答
tcmcz
2017-04-03 · TA获得超过3494个赞
知道大有可为答主
回答量:3744
采纳率:73%
帮助的人:1078万
展开全部
组合:
Sub ZuHe()
    s = [A1]
    r = 1
    For n1 = 1 To Len(s) - 2
        For n2 = n1 + 1 To Len(s) - 1
            For n3 = n2 + 1 To Len(s)
                Cells(r, 2) = Mid(s, n1, 1) & Mid(s, n2, 1) & Mid(s, n3, 1)
                r = r + 1
            Next
        Next
    Next
End Sub




    s = [A1]
    r = 1
    For n1 = 1 To Len(s)
        For n2 = 1 To Len(s)
            For n3 = 1 To Len(s)
                Cells(r, 3) = Mid(s, n1, 1) & Mid(s, n2, 1) & Mid(s, n3, 1)
                r = r + 1
            Next
        Next
    Next
End Sub
追问
用公式怎么实现?
追答

公式也许可以实现,不过应该不会简单。用VBA很方便。

Sub PaiLie()
    s = [A1]
    r = 1
    For n1 = 1 To Len(s)
        For n2 = 1 To Len(s)
            For n3 = 1 To Len(s)
                Cells(r, 2) = Mid(s, n1, 1) & Mid(s, n2, 1) & Mid(s, n3, 1)
                r = r + 1
            Next
        Next
    Next
End Sub
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
本本经销商
2017-04-03 · TA获得超过5458个赞
知道小有建树答主
回答量:1662
采纳率:69%
帮助的人:524万
展开全部
用字典软件吧,或者用VBA来解决吧。

如果非要公式的话:
允许重复值(比如111,222,333之类的):
=MID($A$1,CEILING(ROW(A1)/36,1),1)&MOD(INT(ROW(A36)/6),6)+1&MID($A$1,MOD(ROW(A6),6)+1,1)
下拉填充直到216行或出现2位数的时候结束。
如不允许重复值(比如不允许112,122,133之类的。):
还得再想想,比较麻烦一点。
追问
公式可能还是有问题,我把数字换成987654,结果会出现其它数字123?
追答
中间的少了个MID函数,改成:
=MID($A$1,CEILING(ROW(A1)/36,1),1)&MID($A$1,MOD(INT(ROW(A36)/6),6)+1,1)&MID($A$1,MOD(ROW(A6),6)+1,1)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式