ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 香川群子

[原创] 2014新年元旦第一强帖:实用凑数凑金额高效递归剪枝算法

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-7-17 13:24 | 显示全部楼层
本帖已被收录到知识树中,索引项:递归

学习一下,谢谢香川老师

TA的精华主题

TA的得分主题

发表于 2014-7-22 21:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
香川老师你好:
我现在遇到另外一种凑数情况,麻烦指导一下,如图所示。把100分给这几个地区,怎么样分配能使分配之后,每个地区的数量除以指导线这个值 几个区最接近。
数量都是整数,或者说是我们可以设定一个误差值,比如让最终除以的结果,几个区的误差值在5%以内。不考虑数据本来不合理,根本就不能够达到误差5%以内。
或者其他任何方法,自己没有思路,不一定是我说的这样,就类似于这种求最优解的问题,麻烦香川老师给点指导,多谢!
QQ截图20140722212239.png

求助另一种类型的凑数.rar

6.28 KB, 下载次数: 55

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-7-23 08:56 | 显示全部楼层
ghostjiao 发表于 2014-7-22 21:28
香川老师你好:
我现在遇到另外一种凑数情况,麻烦指导一下,如图所示。把100分给这几个地区,怎么样分配能 ...

你这个根本就是小学生问题:

指导线总和=150,因此分配权重=100/150=2/3
然后每个地区按=Round([指导线]*[权重],0) 四舍五入计算、最后个别调整一下即可。

TA的精华主题

TA的得分主题

发表于 2014-7-23 09:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
香川群子 发表于 2014-7-23 08:56
你这个根本就是小学生问题:

指导线总和=150,因此分配权重=100/150=2/3

...这个,实际上要复杂点,我想想换个模拟方法,多谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-7-23 09:20 | 显示全部楼层
ghostjiao 发表于 2014-7-23 09:17
...这个,实际上要复杂点,我想想换个模拟方法,多谢!

那就老老实实地把实际问题提出来……

模拟也许能说明问题,但也可能无法替代实际,反而让别人误入歧途。

TA的精华主题

TA的得分主题

发表于 2014-8-17 13:05 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-17 14:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Kelidai 发表于 2014-8-17 13:05
学习了,太强大了。

我这帖子发了大半年了……你咋才来呀? 你还是不是香川粉?!

点评

呵呵,主要是以前没有研究到“剪枝法”。以后会拜读女侠和法师的算法精品。  发表于 2014-8-18 11:23

TA的精华主题

TA的得分主题

发表于 2014-9-8 21:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
工作中碰到的事情:我是超市的一名出纳,工作中经常有人来买购物卡,人家说开办公用品1025元,我要给人家附个明细,现在都是手工凑单太累,所以才有了这个想法,请大师帮忙,谢谢! 复件 发票清单.rar (22.86 KB, 下载次数: 43)

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-9 09:02 | 显示全部楼层
barry1126 发表于 2014-9-8 21:41
工作中碰到的事情:我是超市的一名出纳,工作中经常有人来买购物卡,人家说开办公用品1025元,我要给人家附 ...

你的问题很实际,但也不太容易。

因为数据种类比较多,所以任意一个金额的有效组合都有成千上万种,这反而造成问题。


所以,你必须明确规则:
1. 是否规格个数有限制?
比如,我只用2种规格就能凑出1025元,行不行?

2. 如果规格是否有优先权?
比如,某些规格尽量含有

3. 所配个数是否有数量限制?或者任意?


…………
为简化计算,建议:
一、是否可以先生成一些基本模板,如 500元、750元、1000元……
然后在此基础上适当增减调整。

这样,凑数要求就只是25元、132元这样较小的范围了。

呵呵。

TA的精华主题

TA的得分主题

发表于 2014-9-9 10:38 | 显示全部楼层
香川群子 发表于 2014-9-9 09:02
你的问题很实际,但也不太容易。

因为数据种类比较多,所以任意一个金额的有效组合都有成千上万种,这 ...

谢谢大师!
我把最原始的表格再发给你,原来只有品名、单价、单位,根据这些进行凑单。 复件 发票清单1.zip (15.84 KB, 下载次数: 35)

你说的几个问题:
1、关于个数。原则是钱少条目相对就少,钱多相对就多。如果1000元有四五个条目也就够了,如果是500元三个条目也够了,如果是10000元的话,可以上升到十个或者十五个条目。
2、关于规格是否有优先权的问题。我的想法是点一下凑单出一种结果,觉得不满意,再点一次如果可能再出一次结果。不知能否实现。
3、所配个数,跟第一条一样。
4、关于预先生成的基本模板问题。条目、个数都是固定的,我怕老板说为什么每都是这几个,尽量有所差别

在这里再次谢谢楼主。


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

本版积分规则

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

GMT+8, 2024-11-17 14:45 , Processed in 0.036158 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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