Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1910|回复: 5

N选N的组合问题

[复制链接]
发表于 2018-1-2 09:37 | 显示全部楼层 |阅读模式
N选N的组合问题,excel 可否实现。

N选N的组合问题.rar

8.71 KB, 下载次数: 3

 楼主| 发表于 2018-1-2 16:09 | 显示全部楼层
本帖最后由 mate66 于 2018-1-2 16:10 编辑


Public d
Public r
Public arr
Public m
Sub lqxs_zd()
    Application.ScreenUpdating = False
    Sheets("code").UsedRange.ClearContents
    Set d = CreateObject("scripting.dictionary")
    arr = Sheets(1).[a1].CurrentRegion
    m = 7
    r = 1
    For j = 1 To UBound(arr, 2)
   
        d(j) = j
        dg j
        a = d.Count
        d.Remove j
    Next j
    Application.ScreenUpdating = True
End Sub
Sub dg(y)
    For j = y + 1 To UBound(arr, 2)
        d(j) = j
        If d.Count = m Then
            For i = 0 To 6
                Sheets(1).Cells(1, d.keys()(i)).Resize(7).Copy Sheets(2).Cells(r, i + 1)
            Next i
            r = r + 7
        Else
                dg j
        End If
        If d.exists(j) Then d.Remove j
    Next j
End Sub


暂时没老师解,这是刚ehome一位老师的解答代码,把它帖出来。
回复

使用道具 举报

发表于 2018-1-2 20:28 | 显示全部楼层
30列选7列,共有2035800种组合。。。。。
回复

使用道具 举报

发表于 2018-1-2 20:30 | 显示全部楼层
1、生成1--30的数组
2、递归生成组合
3、把组合对应的数据提取出来。
回复

使用道具 举报

 楼主| 发表于 2018-1-2 21:01 | 显示全部楼层
grf1973 发表于 2018-1-2 20:30
1、生成1--30的数组
2、递归生成组合
3、把组合对应的数据提取出来。

可否做一附件,提高更快速度。 当结果超过最大行数时,向右重新隔1列放置结果。
回复

使用道具 举报

发表于 2018-1-3 15:54 | 显示全部楼层
裙子老师就有,自己百度吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 15:47 , Processed in 0.296533 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表