欢迎来到小居数码网-一家分享数码知识,生活小常识的网站,希望可以帮助到您。

当前位置:生活小常识 > 数码知识 >
优质

几个数字凑成某数(找出数组中两数之和为目标数)

数码知识

丁泊涵优秀作者

原创内容 来源:小居数码网 时间:2024-08-15 18:44:01 阅读() 收藏:22 分享:76

导读:您正在阅读的是关于【数码知识】的问题,本文由科普作家协会,生活小能手,著名生活达人等整理监督编写。本文有810个文字,大小约为4KB,预计阅读时间3分钟。

凑数在更深一步财务数据分析和核算中有着很重要的作用

找出数组中两数之和为目标数

你是否有遇到过收到的一笔款对应哪几个发票金额?一张发票对应哪几笔收款?等等其他方面需要从一堆数里凑几个数等于你要的值。

对于数字敏感的人,一些简单的可以从肉眼看到直接找出是哪几个数,但是如果对于数据稍微多一点,金额没有规律的你又怎么能轻易用肉眼找出来呢

一起学一个凑数功能吧:

规划求解

先看看在EXCEL中哪个位置

数据-模拟分析-规划求解

如何从一堆数里找出哪几个数相加等于你要的值?

看一个例子

B列有12个数,其中B1+B3+B6+B11=16368.94

如何从一堆数里找出哪几个数相加等于你要的值?

假设我们事先不知道是这几个数相加等于16368.94,那我们怎样从这12个数里面凑出是B1、B3、B6、B11的和是16368.94呢?

具体操作如下 :

1.在c1单元格输入=SUMPRODUCT(B1:B12,C1:C12)

sumproduct函数用法:

SUMPRODUCT(数组1,数组2, ...),sum是求和的意思,PRODUCT是求积,最后返回的是成绩之和。

看一个小例子:

如何从一堆数里找出哪几个数相加等于你要的值?

其实就是=1*3+1*4+1*5+1*6+1*2+1*1=21

回到上面,返回的是0,因为C列为没有值

如何从一堆数里找出哪几个数相加等于你要的值?

2.点击数据-模拟分析-规划求解,弹出对话框设定相应的条件:

目标单元格是D1,下面勾选目标值在里面输入刚才的数字16368.94,可变单元格选中刚才为空值的C1到C12,添加类型CI到C12=二进制(二进制的值就是0和1)求解方法选单纯线性规划

(选择二进制是避免出现零点几等不规则小数,求解方法选单纯线性规划是明确求解方向,速度和效率更快)

如下图

如何从一堆数里找出哪几个数相加等于你要的值?

保留规划求解的解

如何从一堆数里找出哪几个数相加等于你要的值?

点确定后,我们看到C列有值为0和1

如何从一堆数里找出哪几个数相加等于你要的值?

其实最后我们要求的目标值就是C列为1对应左边B列单元格值的和,刚好就是上面说的

B1、B3、B6、B11

原理就是利用数组乘积得到目标值

特别注意:规划求解求的是最佳组合,即符合条件的一种最佳方案,如果还有其他几个数的和也为目标值,是难以求出的,当然如果要求出所有的值可以借助EXCEL的重磅程序VBA来处理,给你看一下VBA设计的凑数工具更快更高效地解决凑数问题吧,看一下效果

比如说我们要从1到10里面找出所有相加等于15的结果

直接在目标值里面输入15,误差选0,组合个数选11,点击不重复求和递归就可以得到所有的结果展示在右边,如下图

如何从一堆数里找出哪几个数相加等于你要的值?

使用VBA更轻松跟快,结果更全面,后面会更新VBA相关的内容(在EXCEL里面使用VBA需要安装VBA程序)

关注我,一点一滴带你学Excel和财务实操知识

欢迎评论和转发,如有工作中实际遇到的问题,可以评论区留言,一起探讨

上面就是小居数码小编今天给大家介绍的关于(找出数组中两数之和为目标数)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

94%的朋友还想知道的:

(584)个朋友认为回复得到帮助。

部分文章信息来源于以及网友投稿,转载请说明出处。

本文标题:几个数字凑成某数(找出数组中两数之和为目标数):http://sjzlt.cn/shuma/155960.html

猜你喜欢