楼主 smupsu |
在工作中我们经常会遇到一个问题:如何在给定的一列数据中,按照我们设定的个数随机取不重复数来加合,凑成我们需要的合计值?一般像这种问题,如果熟练掌握了规划求解,建立一定的模型,目标数据如果不是过大过长,需要变量过多,就很容易解出。(在数据比较复杂,变量巨多的情况下,规划求解也不好使,需要求助于VBA) 由于在工作需要(经常要凑发票、车票之类的单据),受草版的有关循环引用帖子的启发,我做了一个简单的循环引用模型来解决相应的问题。因为只是想把该模型的建设思想分享给大家,所以相对比较粗糙,没有加上自动扩充个数之类的功能。公式也很简单且容易掌握,故在实际运用中,可以按照模型内的公式更改相应的引用范围手动扩充。欢迎大家批评指正! 主体公式为:
C1为需要凑出的合计数,也是迭代公式的开关,为了体现循环精灵特有的动态效果,没有做总开关。 COUNTIF($F1:$L1,F1)=1 SUM($F1:$L1)=$C$1) 中的引用范围,可根据需要取数的个数来手动扩充。如果重复值也可以解决问题,可以将COUNTIF($F1:$L1,F1)=1表达式和外面包裹的AND函数删除,也可以换成相应的符合要求的表达式,也可以另建单元格来存放1或2或3等。单元格内均是普通公式,修改很方便。 如果要求的解在某一行,而且某些变动即定的话,可以直接将该单元格的公式换成固定数字。 迭代取数凑合计.rar 迭代取数.JPG |
2楼 gouweicao78 |
可以参考一下: 如何用公式算出规定总和的数据组合? http://www.exceltip.net/thread-1638-1-1.html |
3楼 smupsu |
啊!我明明搜索了文库里循环引用的所有帖子,还有草版的所有帖子,没有发现这个啊!我还在想是不是因为太简单,草版不屑于做这个 本来我还暗自兴奋着捡了个漏,没准能加点儿分,哈哈哈,没想到还是拾前辈牙慧啊。 好在,细微处还是有区别的。 |
4楼 悠悠雨 |
循环一直搞不定 |
5楼 smupsu |
虽然草版以前有过类似的解决方案,但是仔细看还是有一定区别的。 我是不是得取个名叫:循环引用的趣味应用 之类的,才可以被采编? 失望。 |
6楼 wjc2090742 |
管理员账户已经审核通过一次了,不知道为什么没有显示已加入。本帖不错。原创版权声明需要选择第1种。 |
7楼 JOYARK1958 |
下載謝謝学习,,,,,,,,,,,,,,,,,,,, |
8楼 eliane_lei |
谢谢师 父分享! |