ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 函数与公式 > 【循环引用】之如何既定合计值后在某列按个数取数?

【循环引用】之如何既定合计值后在某列按个数取数?

作者:绿色风 分类: 时间:2022-08-18 浏览:94
楼主
smupsu
  在工作中我们经常会遇到一个问题:如何在给定的一列数据中,按照我们设定的个数随机取不重复数来加合,凑成我们需要的合计值?一般像这种问题,如果熟练掌握了规划求解,建立一定的模型,目标数据如果不是过大过长,需要变量过多,就很容易解出。(在数据比较复杂,变量巨多的情况下,规划求解也不好使,需要求助于VBA)

  由于在工作需要(经常要凑发票、车票之类的单据),受草版的有关循环引用帖子的启发,我做了一个简单的循环引用模型来解决相应的问题。因为只是想把该模型的建设思想分享给大家,所以相对比较粗糙,没有加上自动扩充个数之类的功能。公式也很简单且容易掌握,故在实际运用中,可以按照模型内的公式更改相应的引用范围手动扩充。欢迎大家批评指正!

  主体公式为:
  
  1. =IF(COUNT($A:$A,IF(AND(COUNTIF($F1:$L1,F1)=1,SUM($F1:$L1)=$C$1),F1,INDEX($A:$A,RANDBETWEEN(1,COUNT($A:$A)))),"")
  
  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
谢谢师 父分享!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap