PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

一起分析excel怎么使用函数寻找总和为某个值的组合

WBOY
WBOY 转载
2022-04-11 18:51:04 3654浏览

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了如何使用函数寻找总和为某个值的组合的问题,下面就来看一下,希望对大家有帮助。

相关学习推荐:excel教程

今天给大家分享一下如何使用函数寻找总和为某个值的组合。

举个例子。

如下图所示,A~B列是数据源,A列是发票号,B列是发票金额。现在需要寻找总和为F1单元格指定值,比如20,089的发票组合。

444.jpg

关于这个问题,很久以前给大家分享过规划求解的方法;今天再给大家分享一下函数的方法。

在C2单元格输入以下公式,并复制到C2:C21区域。

=IF(SUM(C$2:C$21)=F$1,C2,B2*RANDBETWEEN(0,1))

公式输入后系统会提示循环引用,这是由于公式引用了公式所在单元格的值,不过别管他,谁稀罕爱她。

依次点击Excel左上角的「文件」→「选项」命令,打开文件选项对话框,切换到「公式」选项卡,选中「启动迭代计算」复选框,将「最多迭代次数」设置为30000。「确定」后关闭对话框。

333.jpg

此时C列公式会自动重算,重算结果非0的项即为发票组合。可以在F2单元格输入一个SUM函数公式进行验证。

222.jpg

给大家解释一下公式的意思。

=IF(SUM(C$2:C$21)=F$1,C2,B2*RANDBETWEEN(0,1))

公式首先判断C2:C21区域的总和是否等于F1单元格指定的目标值,如果相等,则返回C2自身的值,否则,返回B2单元格发票金额乘以0或1。当乘以0时,结果返回0,表示该发票金额未被选中,当乘以1时,返回发票金额自身,表示被选中。

由于公式引用了公式所在单元格的值,比如C2单元格的公式SUM(C$2:C$21),也就会触发循环引用。此时我们启用迭代计算,系统会反复计算该公式,直至停止迭代的条件成立(C2:C21的总和等于目标值),或迭代次数用尽。

就这么回事。

最后留个练习题。

111.jpg

如上图所示,已知总和25,由10个数值构成,每个数值大于等于1,且小于等于5,请列出这10个数值的任一组合。

参考答案:

A3:A12输入公式 

=IF(SUM(A$3:A$12)=B$1,A3,RANDBETWEEN(1,5))

相关学习推荐:excel教程

声明:本文转载于:Excel Home,如有侵犯,请联系admin@php.cn删除