Excel中怎么设置自动凑数求和?凑数求和也可以很简单!

浅萱同学_9289

浅萱同学_9289

2026-08-01

1106人浏览

原创

在excel里做「凑数求和」,最靠谱的方法就是用solver规划求解:在金额列旁边加一列0/1的标记,用sumproduct函数算出选中金额的总和,再让solver自动调整,把总和凑到你要的目标数。这里演示用的是microsoft excel哈,要是你功能区里找不到solver,得先手动启用「规划求解加载项」才行。

下面我拿一组报销金额来演示:目标是从这些明细里挑出几笔,让加起来刚好等于1200。这个方法比较适合几十行以内的单目标凑数,要是行数特别多的话,建议先按日期、部门或者金额范围筛一下,缩小要处理的明细范围。

第一步:整理金额和辅助列

先把所有要参与凑数的金额整理到同一列,旁边新建一列叫「是否选中」的辅助列,一开始先全部填0。然后在结果单元格里输入公式 =SUMPRODUCT(B2:B15,C2:C15),这里B列是金额列,C列就是刚才的0/1标记列;哪一行被Solver改成1,对应的这笔金额就会被算到总和里。

Excel 表格中金额列、0/1 辅助列和 SUMPRODUCT 合计模型,用于凑数求和

第二步:打开规划求解

切换到「数据」选项卡,找到「规划求解」按钮。要是找不到的话,就去「文件 → 选项 → 加载项」里,在Excel加载项那栏把「规划求解加载项」勾上。等按钮出来之后回到数据表就行,不用改原来的金额,我们只让Solver去调整辅助列的内容。

Excel 数据选项卡中的 Solver 规划求解入口,用于打开凑数设置窗口

第三步:设置目标单元格

打开Solver参数窗口后,把「Set Objective(设置目标)」选成刚才输了SUMPRODUCT公式的合计单元格;目标类型选「Value Of(目标值)」,右边输入你要凑的数,比如这里是1200。下面的「By Changing Variable Cells(可变单元格)」就填辅助列的范围,比如 C2:C15,意思就是让Excel自己决定哪些行填1。

Excel Solver Parameters 窗口中设置目标值和可变单元格范围,用于自动凑目标和

第四步:添加二进制约束

点「Add(添加)」加一个约束,把辅助列的范围设置为 bin(二进制)。这个约束特别重要,它能把辅助列的数值限制在0或1,防止Solver算出0.38、1.6这种没意义的小数。毕竟咱们的金额是整笔算的,不能拆分,二进制约束就相当于「选或不选」的开关。

Excel Solver 添加约束窗口中把辅助列设置为 binary,用于限制只选或不选

第五步:执行求解

回到Solver参数窗口后点「Solve(求解)」就行。要是当前这些金额里确实有组合能刚好凑出目标数,Solver会弹出结果窗口,你选保留求解结果就好。要是提示找不到可行解,一般不是公式错了,而是这批金额里本来就没有刚好等于目标值的组合,这时候可以放宽一点目标,或者先把明显不可能的金额剔掉再试。

excel-clean
excel-clean

Excel 数据清洗——去重、填补缺失值、格式转换。

下载
Excel Solver Parameters 窗口中的 Solve 按钮,用于开始计算符合目标和的金额组合

第六步:核对选中结果

你可以看看辅助列里被改成1的行,这些行对应的金额就是凑出来的组合。合计单元格的数值应该刚好等于目标数;要是不放心,也可以在旁边用 =SUM(C3,C5,C9) 这种普通求和公式手动核对一遍,确认没把没选中的行算进去。

Excel 表格中 Solver 返回的 0 和 1 辅助列结果,用于核对凑数求和明细

SUMPRODUCT 函数语法

这次用到的核心公式是 =SUMPRODUCT(array1,[array2],...)。它的作用是把两个数组对应位置的数先相乘,再把所有乘积加起来,所以用「金额 × 是否选中」刚好就能算出选中金额的总和。

参数 写法示例 作用
array1 B2:B15 存放要参与凑数的金额的区域。
array2 C2:C15 辅助列,0代表不选这笔,1代表选中这笔。
更多数组 D2:D15 要是需要同时叠加更多筛选条件就再加,注意所有区域的行数必须一致。

大家最容易踩的坑有两个:一是金额区域和辅助列的行数对不上,公式会返回 #VALUE! 错误;二是忘了给辅助列加二进制约束,算出来的结果看似接近目标,实际上选中的金额根本没法按整笔业务来用。

扩展示例:按部门先筛一层

要是你只想在「销售部」的金额里凑1200,还可以再加一列部门判断,比如在D2输入 =--(A2="销售部") 然后向下填充,再把合计公式改成 =SUMPRODUCT(B2:B15,C2:C15,D2:D15)。这样Solver还是调整C列的0/1,但非销售部的金额会因为D列是0,根本不会参与合计计算。

做完之后别急着删辅助列哈。把值为1的行筛出来,复制到新表或者标个颜色,后面对账、报销核销、库存配套的时候复查起来都方便很多。

相关专题

更多
excel对比两列数据异同
excel对比两列数据异同

Excel作为数据的小型载体,在日常工作中经常会遇到需要核对两列数据的情况,本专题为大家提供excel对比两列数据异同相关的文章,大家可以免费体验。

2023.07.25

5101

7

excel重复项筛选标色
excel重复项筛选标色

excel的重复项筛选标色功能使我们能够快速找到和处理数据中的重复值。本专题为大家提供excel重复项筛选标色的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

3156

5

excel复制表格怎么复制出来和原来一样大
excel复制表格怎么复制出来和原来一样大

本专题为大家带来excel复制表格怎么复制出来和原来一样大相关文章,帮助大家解决问题。

2023.08.02

2940

3

excel表格斜线一分为二
excel表格斜线一分为二

在Excel表格中,我们可以使用斜线将单元格一分为二。本专题为大家带来excel表格斜线一分为二怎么弄的相关文章,希望可以帮到大家。

2023.08.02

1444

3

excel斜线表头一分为二
excel斜线表头一分为二

excel斜线表头一分为二的方法有使用合并单元格功能方法、使用文本框功能方法、使用自定义格式方法。本专题为大家提供excel斜线表头一分为二相关的各种文章、以及下载和课程。

2023.08.02

697

5

绝对引用的输入方法
绝对引用的输入方法

绝对引用允许在公式中引用一个固定的单元格,而不会随着公式的复制和粘贴而改变引用的单元格。本专题为大家提供绝对引用相关内容的文章,大家可以免费体验。

2023.08.09

5148

7

java导出excel
java导出excel

在Java中,我们可以使用Apache POI库来导出Excel文件。本专题提供java导出excel的相关文章,大家可以免费体验。

2023.08.18

6683

6

excel输入值非法
excel输入值非法

在Excel中,当输入的数值非法时,有以下多种处理方法。本专题为大家提供excel输入值非法的相关文章,大家可以免费体验。

2023.08.18

1681

3

excel生成二维码
excel生成二维码

虽然Excel本身并不直接支持生成二维码,但我们可以借助一些插件或宏来实现在Excel中生成二维码的功能。本专题为大家提供excel生成二维码的相关文章。

2023.08.18

2818

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 44.1万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 3.5万人学习