Excel精英培训网

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

[已解决]请教组合计算问题

[复制链接]
发表于 2013-5-13 20:10 | 显示全部楼层 |阅读模式
请教组合计算问题.谢谢!
请教一个组合计算问题.rar (6.53 KB, 下载次数: 12)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-5-14 13:27 | 显示全部楼层
前半部分连续列的查找已实现,后半部分任意列组合太多,估计按目前提出的条件不好实现,你可以考虑修改规则,我也再想想办法。见附件。

请教一个较复杂的组合计算问题 修改.zip

15.44 KB, 下载次数: 2

回复

使用道具 举报

发表于 2013-5-14 16:24 | 显示全部楼层
重新做了一个,可以实现后半部分非连续列查找功能,但是目前只列出了一种可能性,如果要多组合太麻烦了。最佳匹配列列在最前,后面重复的意思是指,前面找到的不重复列组合已达到最佳,后面只是为了满足循环次数自动追加的。你试试,或者你可以对非连续列的要求重新定义,比如找到全部满行的最小列组合。

请教一个较复杂的组合计算问题 修改.zip

17 KB, 下载次数: 6

回复

使用道具 举报

 楼主| 发表于 2013-5-14 17:17 | 显示全部楼层
大灰狼1976 发表于 2013-5-14 16:24
重新做了一个,可以实现后半部分非连续列查找功能,但是目前只列出了一种可能性,如果要多组合太麻烦了。最 ...

万分感谢 大灰狼1976 老师,您太聪明了,非常好。感动中.............
这样已经达到我的要求了。如果您能抽出点时间,请您帮助加上两个功能。
1、如您所说“找到全部满行的最小列组合”,但是请作为问题3加在“宏1”中,问题1、2就这样了,不要去掉,加上问题3的好处就是可以对最佳组合列的情况有一个了解。请将问题3的数据放在DD列。
2、问题1、2可不可以在分析出来的数据前面加上“该列组合中有几行全部为0的行/该列组合总共分析了多少行-”例如:现在总共是21行,如果DE2是4,得到的数据为有1行全部为0,这输出的数据为:1/21-5 6 7 8。

目前已经很好了,老师没时间或太繁琐就不加了。
再次感谢您。
回复

使用道具 举报

发表于 2013-5-14 20:16 | 显示全部楼层
还是差不多的配方,还是差不多的味道,请测试。
说明:连续列能够找出所有组合,非连续列还是不太精确,原因如下:
    首先找出非空最多的列,再以此循环找出与之互补度最高的列,再把与原列互补的数据填入原列,使原列成为两列的合集,再以此继续循环找出互补度最高的列,直到循环够[DE2]规定的次数,以此类推,如果找不满全部非空行(比如不足21),则得出能得到的最大值。看起来好像没有问题,但是如果非空最多的列超过1列,或者互补度最高的列超过1列,我目前的代码只能找出最早找到的符合条件的1个数据,后面全部无视了,所以最终得出的结果未必是最佳的,有很多的其他可能性都被提前一棍子打死了

请教一个较复杂的组合计算问题 修改.zip

15.59 KB, 下载次数: 8

回复

使用道具 举报

发表于 2013-5-14 20:26 | 显示全部楼层
有问题,有问题,刚发的附件不要随便改数据试,如果找不到全部21个非空行,会陷入死循环,我再想想,还有你的第二个问题我也再想想,会花点时间。
回复

使用道具 举报

发表于 2013-5-14 20:59 | 显示全部楼层    本楼为最佳答案   
现在可以的,包括你第2个问题也实现了,你再试试,不敢保证绝对正确,有问题请联络

请教一个较复杂的组合计算问题 修改1.zip

16.43 KB, 下载次数: 17

回复

使用道具 举报

发表于 2013-5-14 21:09 | 显示全部楼层
不好意思,第2个问题又理解错了,我这个人就是有丢三落四的毛病,你把MACRO3最后的代码改成:
Range("dd" & [dd65536].End(xlUp).Row + 1) = UBound(arr) - r & "/" & UBound(arr) & " " & Left(s, Len(s) - 2)
就可以了
回复

使用道具 举报

 楼主| 发表于 2013-5-14 21:29 | 显示全部楼层
大灰狼1976 发表于 2013-5-14 20:59
现在可以的,包括你第2个问题也实现了,你再试试,不敢保证绝对正确,有问题请联络

不知道如何感谢您才好,您的逻辑思维非常好,我非常佩服。抽出这么多时间来帮助我,程序做的非常出色,万分感谢!
回复

使用道具 举报

发表于 2013-5-14 21:38 | 显示全部楼层
谢谢夸奖,我也是在EXCELPX成长起来的啊,基础也不好,但是兴趣是最好的老师。
助人为快乐之本,不用谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 07:00 , Processed in 0.367846 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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