ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 灰袍法师

[原创] 一堆数字凑金额(凑数值) - 一个求解子集和问题的高速算法(有条件限制)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-5-22 15:55 | 显示全部楼层
本帖已被收录到知识树中,索引项:
谢谢 谢谢! 太帅了!{:soso_e179:}

TA的精华主题

TA的得分主题

发表于 2012-6-13 09:58 | 显示全部楼层
灰袍法师:
            使用了你做的完成了数据统计.但请教下,算出来有四种,能不能把明细都显示出来呢.

VBA - 子集和 - 求指定和值的一个组合明细 - long版本.rar

24.49 KB, 下载次数: 75

VBA - 子集和 - 求指定和值的所有组合总数 - long版本.rar

26.66 KB, 下载次数: 47

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-6-13 23:14 | 显示全部楼层
本帖最后由 灰袍法师 于 2012-6-13 23:21 编辑
ZHUHUIFENG 发表于 2012-6-13 09:58
灰袍法师:
            使用了你做的完成了数据统计.但请教下,算出来有四种,能不能把明细都显示出来呢.

可惜的是,这里介绍的算法是不能找出所有解的,你可以用 彭希仁版主的程序,反正才28个可选数字,遍历也很快的。
话说,我也不知道为什么要找多个解,毫无意义的事情。
+11024.37+42705.81+50232.96+52164+54656+59545.76+97600+102885.04 +15264+45792+47200+51516+52164+67968+75520+88736+90624+97600+105388.48
+11024.37+42705.81+47200+50232.96+52164+54656+59545.76+97600+102885.04 +15264+45792+51516+52164+67968+75520+88736+90624+97600+105388.48
+11024.37+42705.81+50232.96+52164+54656+59545.76+88736+97600+102885.04 +15264+45792+47200+51516+52164+67968+75520+90624+97600+105388.48
+11024.37+42705.81+47200+50232.96+52164+54656+59545.76+88736+97600+102885.04 +15264+45792+51516+52164+67968+75520+90624+97600+105388.48

TA的精华主题

TA的得分主题

发表于 2012-6-14 12:22 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-6-14 21:52 | 显示全部楼层
qingcuiping 发表于 2011-10-1 11:02
这个问题就是要开发票,必须得开总额为110840,怎么办啊

报错

报错
法师,您好.
法师,我根据10楼qingcuiping 提供的数据,使用"VBA - 子集和 - 求指定和值的一个组合明细 - long版本"表进行运算执行时,出错了.
首先是出现上面的报错.
然后执行调试时,出现下边图

调式

调式


请问这是什么问题呀

TA的精华主题

TA的得分主题

发表于 2012-6-14 21:53 | 显示全部楼层
本帖最后由 richard740 于 2012-6-14 21:54 编辑
richard740 发表于 2012-6-14 21:52
法师,您好.
法师,我根据10楼qingcuiping 提供的数据,使用"VBA - 子集和 - 求指定和值的一个组合明细 - l ...


法师,补充说明,我是WIN7,EXCEL2010 ,机器有8G内存.

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-6-14 22:53 | 显示全部楼层
richard740 发表于 2012-6-14 21:53
法师,补充说明,我是WIN7,EXCEL2010 ,机器有8G内存.

我测试了一次是可以算出来的
+23779.31 +18705.26 +17585.1 +14411.78 +13597.14 +8295.3 +6539.13 +4746.92 +3180.06
我也是windows7 64bit + office 2010 32bit
你试一下关闭所有后台程序包括360,xx内存优化之类
实在不行就用彭希仁版主的那个程序吧,也可以轻松算出来的。

TA的精华主题

TA的得分主题

发表于 2012-6-28 11:24 | 显示全部楼层
灰袍法师 发表于 2012-6-14 22:53
我测试了一次是可以算出来的
+23779.31 +18705.26 +17585.1 +14411.78 +13597.14 +8295.3 +6539.13 +474 ...

法师,我目前使用你提供的算法,一般20行数字好像问题不大,能通过计算.如果达到25行以上,我最大数字是38行.就总报错了"运行时错误"6",溢出"

TA的精华主题

TA的得分主题

发表于 2012-6-28 17:20 | 显示全部楼层
灰袍法师 发表于 2012-6-14 22:53
我测试了一次是可以算出来的
+23779.31 +18705.26 +17585.1 +14411.78 +13597.14 +8295.3 +6539.13 +474 ...

法师,我将我要做的表格,上传上来了,请您帮看看,是数据本身的问题,还好算法那个表的问题? 谢谢

富士达.zip

4.91 KB, 下载次数: 33

TA的精华主题

TA的得分主题

发表于 2012-6-28 17:49 | 显示全部楼层
灰袍法师 发表于 2012-6-14 22:53
我测试了一次是可以算出来的
+23779.31 +18705.26 +17585.1 +14411.78 +13597.14 +8295.3 +6539.13 +474 ...

法师,我上传了数据,这个表,请您帮试试看,是否可凑出来.
麻烦告诉一下,做不出来的问题出在哪里?

富士达.zip

7.37 KB, 下载次数: 30

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

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-19 22:08 , Processed in 0.051282 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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