Excel函数sumproduct应用案例-多条件求和
作者:iamlaosong
越来越认为sumproduct这个函数实用,过去用sum组函数。改起来复制起来都麻烦,sumif在条件多的时候也认为不方便。
如今改用sumproduct函数,就简单多了。查过sumproduct函数的用法,其解释为“求二个或二个以上数组的乘积之和”,假设因此就片面地理解为这与多条件求和无关。那就错了。事实上呢。利用条件真假的值(“真”相应值为1,“假”相应值为0),sumproduct函数用起来要比sumif函数好用的多。
比如。“=SUMPRODUCT((A1:A100=“project师”)*1)”就统计了A列中含有“project师”的行数。须要注意的是,后面“*1”是不可缺少的。否则结果为零。以下举几个应用案例。
1、库存统计
Excel文件里有三张表,一张入库记录,一张出库记录,一张库存记录。在加入出入库记录后。库存表用sumproduct函数自己主动反应当前库存。
(1)入库记录表A、B、C、D、E、F列
| 入库时间 | 单据号 | 零件号 | 货物数量 | 包装种类 | 质量状态 |
| 2013-06-04 | A1307703 | F114001721 | 72 | 料箱 | 合格 |
| 2013-06-04 | A1307703 | F114001722 | 36 | 料箱 | 合格 |
| 2013-06-04 | A1307703 | F114001723 | 72 | 料箱 | 合格 |
| 2013-06-04 | A1307703 | F114001724 | 48 | 料箱 | 合格 |
| 2013-06-04 | A1307703 | F114001725 | 48 | 料箱 | 合格 |
| 2013-06-04 | A1307703 | F114001726 | 120 | 料箱 | 合格 |
| 2013-06-04 | A1307703 | F114001727 | 48 | 料箱 | 合格 |
| 2013-06-04 | A1307703 | F114001728 | 24 | 料箱 | 合格 |
| 2013-06-04 | A1307708 | F114001729 | 144 | 料箱 | 合格 |
| 2013-06-04 | A1307708 | F114001730 | 48 | 料箱 | 合格 |
| 2013-06-04 | A1307708 | F114001731 | 48 | 料箱 | 合格 |
| 2013-06-04 | A1307708 | F114001732 | 48 | 料箱 | 合格 |
| 2013-06-04 | A1307708 | F114001733 | 72 | 料箱 | 合格 |
| 2013-06-04 | A1307708 | F114001734 | 72 | 料箱 | 合格 |
| 2013-06-04 | A1307714 | F114001728 | 144 | 料箱 | 合格 |
| 2013-06-04 | A1307714 | F114001729 | 144 | 料箱 | 合格 |
| 2013-06-04 | A1307714 | F114001730 | 48 | 料箱 | 合格 |
| 2013-06-04 | A1307714 | F114001731 | 48 | 料箱 | 合格 |
| 2013-06-04 | A1307714 | F114001732 | 48 | 料箱 | 合格 |
| 2013-06-04 | A1307714 | F114001733 | 144 | 料箱 | 合格 |
| 2013-06-04 | A1307714 | F114001734 | 144 | 料箱 | 合格 |
| 2013-06-04 | A1307719 | F114001735 | 72 | 料箱 | 合格 |
| 2013-06-04 | A1307719 | F114001736 | 36 | 料箱 | 合格 |
| 2013-06-04 | A1307719 | F114001737 | 144 | 料箱 | 合格 |
(2)出库记录表A、B、C、D、E、F列
| 出库时间 | 单据号 | 零件号 | 货物数量 | 包装种类 | 质量状态 |
| 2013-06-06 | 0000003 | F114001721 | 576 | 料箱 | 合格 |
| 2013-06-06 | 0000005 | F114001722 | 192 | 料箱 | 合格 |
| 2013-06-06 | 0000006 | F114001723 | 240 | 料箱 | 合格 |
| 2013-06-06 | 0000007 | F114001724 | 252 | 料箱 | 合格 |
| 2013-06-07 | 0000008 | F114001725 | 288 | 料箱 | 合格 |
| 2013-06-07 | 0000008 | F114001726 | 288 | 料箱 | 合格 |
| 2013-06-07 | 0000008 | F114001727 | 144 | 料箱 | 合格 |
| 2013-06-07 | 0000009 | F114001728 | 432 | 料箱 | 合格 |
| 2013-06-07 | 0000010 | F114001729 | 216 | 料箱 | 合格 |
| 2013-06-07 | 0000010 | F114001730 | 360 | 料箱 | 合格 |
| 2013-06-07 | 0000010 | F114001731 | 144 | 料箱 | 合格 |
| 2013-06-07 | 0000011 | F114001732 | 144 | 料箱 | 合格 |
| 2013-06-07 | 0000012 | F114001733 | 72 | 料箱 | 合格 |
| 2013-06-07 | 0000013 | F114001734 | 360 | 料箱 | 合格 |
| 2013-06-07 | 0000014 | F114001728 | 120 | 料箱 | 合格 |
| 2013-06-07 | 0000016 | F114001729 | 72 | 料箱 | 合格 |
| 2013-06-07 | 0000016 | F114001730 | 118 | 料箱 | 合格 |
| 2013-06-07 | 0000016 | F114001731 | 144 | 料箱 | 合格 |
| 2013-06-07 | 0000016 | F114001732 | 144 | 料箱 | 合格 |
| 2013-06-08 | 0000018 | F114001733 | 72 | 料箱 | 合格 |
| 2013-06-08 | 0000018 | F114001734 | 72 | 料箱 | 合格 |
| 2013-06-08 | 0000019 | F114001735 | 216 | 料箱 | 合格 |
| 2013-06-08 | 0000019 | F114001736 | 216 | 料箱 | 合格 |
| 2013-06-08 | 0000020 | F114001737 | 192 | 料箱 | 合格 |
(3)库存记录表A、B、C、D、E、F、G列
| 零件号 | 货物名称 | 包装种类 | 质量状态 | 合计入库 | 合计出库 | 库存数量 |
| F114001721 | YN3 HousingLH | 料箱 | 合格 | 1116 | 1564 | 72 |
| F114001722 | YN3 HousingRH | 料箱 | 合格 | 492 | 1163 | 36 |
| F114001723 | YN3 LensLH | 料箱 | 合格 | 668 | 2295 | 72 |
| F114001724 | YN3 LensRH | 料箱 | 合格 | 600 | 2183 | 48 |
| F114001725 | YP7 HousingLH | 料箱 | 合格 | 312 | 1152 | 48 |
| F114001726 | YP7 HousingRH | 料箱 | 合格 | 624 | 926 | 120 |
| F114001727 | YP7 LensLH | 料箱 | 合格 | 1008 | 636 | 48 |
| F114001728 | YP7 LensRH | 料箱 | 合格 | 600 | 2308 | 24 |
| F114001729 | T61 HousingLH | 料箱 | 合格 | 648 | 1352 | 144 |
| F114001730 | T61 HousingRH | 料箱 | 合格 | 264 | 1368 | 0 |
| F114001731 | T61 LensLH | 料箱 | 合格 | 228 | 954 | 0 |
| F114001732 | T61 LensRH | 料箱 | 合格 | 180 | 1480 | 0 |
| F114001733 | T63 HousingLH | 料箱 | 合格 | 520 | 1048 | 0 |
| F114001734 | T63 HousingRH | 料箱 | 合格 | 444 | 1138 | 0 |
(4)库存计算公式
合计入库:=SUMPRODUCT((入库!$C$2:$C$65535=库存!$A2)*(入库!$E$2:$E$65535=库存!$C2)*(入库!$F$2:$F$65535=库存!$D2)*(入库!$D$2:$D$65535))
合计出库:=SUMPRODUCT((出库!$C$2:$C$65535=库存!$A2)*(出库!$E$2:$E$65535=库存!$C2)*(出库!$F$2:$F$65535=库存!$D2)*(出库!$D$2:$D$65535))
公式中每一组数字的条件判定。就会得出不同的“真”与“假”,数组的值变成了不同的“0”和“1”,各组的数字相乘,仅仅有条件全然达到的行。才有可能得到数值。这些数值相加的结果就是我们要求的值。这就是SUMPRODUCT方式的多条件求各和。上述第一个公式能够描写叙述为(第二个公式同理):
=SUMPRODUCT((入库零件号区域=库存零件号)*(入库包装种类区域=库存包装种类)*(入库质量状态区域=库存质量状态)*(入库数量区域))
库存数量:=E2-F2
2、每日质量通报
Excel文件里有三张表,一张质量记录汇总表,一张每日通报,一张累计通报,在加入每天质量记录后(点击button。VBA程序自己主动依据P1单元格中的日期从数据库中提取质量记录)。每日通报和累计通报用sumproduct函数自己主动反应当前质量情况。改动日期,每日通报和累计通报两张报表马上反应当日的质量数据。
(1)质量记录A、B、C、D、E、F列
| 投递日期 | 投递单位 | 时限情况 | |||
| 进口邮件数 | 未及时妥投邮件数 | 未妥投邮件数 | 及时妥投率 | ||
| 2014-9-1 | 合肥市 | 168 | 30 | 7 | 77.98% |
| 2014-9-1 | 阜阳市 | 44 | 3 | 0 | 93.18% |
| 2014-9-1 | 蚌埠市 | 40 | 1 | 0 | 97.50% |
| 2014-9-1 | 芜湖市 | 103 | 7 | 0 | 93.20% |
| 2014-9-1 | 安庆市 | 60 | 9 | 0 | 85.00% |
| 2014-9-1 | 宿州市 | 45 | 4 | 0 | 91.11% |
| 2014-9-1 | 滁州市 | 73 | 1 | 0 | 98.63% |
| 2014-9-1 | 六安市 | 52 | 1 | 0 | 98.08% |
| 2014-9-1 | 黄山市 | 17 | 3 | 0 | 82.35% |
| 2014-9-1 | 淮北市 | 15 | 1 | 0 | 93.33% |
| 2014-9-1 | 亳州市 | 34 | 2 | 1 | 91.18% |
| 2014-9-1 | 淮南市 | 37 | 1 | 1 | 94.59% |
| 2014-9-1 | 马鞍山 | 24 | 1 | 0 | 95.83% |
| 2014-9-1 | 宣城市 | 29 | 3 | 0 | 89.66% |
| 2014-9-1 | 铜陵市 | 23 | 4 | 0 | 82.61% |
| 2014-9-1 | 池州市 | 21 | 3 | 0 | 85.71% |
| 2014-9-2 | 合肥市 | 270 | 109 | 8 | 56.67% |
| 2014-9-2 | 阜阳市 | 62 | 7 | 0 | 88.71% |
| 2014-9-2 | 蚌埠市 | 51 | 1 | 0 | 98.04% |
| 2014-9-2 | 芜湖市 | 107 | 10 | 0 | 90.65% |
| 2014-9-2 | 安庆市 | 72 | 5 | 0 | 93.06% |
(2)每日通报A、B、C、D、E、F列
| 投递单位 | 时限情况 | |||
| 进口邮件数 | 未及时妥投邮件数 | 未妥投邮件数 | 及时妥投率 | |
| 合肥市 | 168 | 30 | 7 | 77.98% |
| 阜阳市 | 44 | 3 | 0 | 93.18% |
| 蚌埠市 | 40 | 1 | 0 | 97.50% |
| 芜湖市 | 103 | 7 | 0 | 93.20% |
| 安庆市 | 60 | 9 | 0 | 85.00% |
| 宿州市 | 45 | 4 | 0 | 91.11% |
| 滁州市 | 73 | 1 | 0 | 98.63% |
| 六安市 | 52 | 1 | 0 | 98.08% |
| 黄山市 | 17 | 3 | 0 | 82.35% |
| 淮北市 | 15 | 1 | 0 | 93.33% |
| 亳州市 | 34 | 2 | 1 | 91.18% |
| 淮南市 | 37 | 1 | 1 | 94.59% |
| 马鞍山 | 24 | 1 | 0 | 95.83% |
| 宣城市 | 29 | 3 | 0 | 89.66% |
| 铜陵市 | 23 | 4 | 0 | 82.61% |
| 池州市 | 21 | 3 | 0 | 85.71% |
| 累 计 | 785 | 74 | 9 | 89.43% |
计算公式(单元格P1存放通报日期):
进口邮件数:=SUMPRODUCT((数据汇总!$A$4:$A$500=$P$1)*(数据汇总!$B$4:$B$500=$A4)*(数据汇总!C$4:C$500))
未及时妥投邮件数:=SUMPRODUCT((数据汇总!$A$4:$A$500=$P$1)*(数据汇总!$B$4:$B$500=$A4)*(数据汇总!D$4:D$500))
未妥投邮件数:=SUMPRODUCT((数据汇总!$A$4:$A$500=$P$1)*(数据汇总!$B$4:$B$500=$A4)*(数据汇总!E$4:E$500))
及时妥投率 :=(B4-C4-D4)/B4
(3)累计通报
内容和每日通报一样仅仅是数据为当月累计而已,所以各字段公式也几乎相同,仅仅是多了个小于符号“<”。即:
进口邮件数:=SUMPRODUCT((数据汇总!$A$4:$A$500<=$P$1)*(数据汇总!$B$4:$B$500=$A4)*(数据汇总!C$4:C$500))
未及时妥投邮件数:=SUMPRODUCT((数据汇总!$A$4:$A$500<=$P$1)*(数据汇总!$B$4:$B$500=$A4)*(数据汇总!D$4:D$500))
未妥投邮件数:=SUMPRODUCT((数据汇总!$A$4:$A$500<=$P$1)*(数据汇总!$B$4:$B$500=$A4)*(数据汇总!E$4:E$500))
及时妥投率 :=(B4-C4-D4)/B4
Excel函数sumproduct应用案例-多条件求和的更多相关文章
- Excel带条件求和——SUMIF函数
老婆求帮忙,问Excel中怎么跨Sheet带条件求和,就是关于sheet2中筛选出来的数据自动合计在sheet3中 . 比如有个sheet2表中的数据如下: 现在要在sheet3中求合计, 通过分析可 ...
- Excel各种条件求和的公式汇总
经常和Execl打交道的人肯定觉得求和公式是大家时常用到的.Excel里有哪几路求和公式呢?他们的使用方式又是怎样?我为大家汇总一下. 使用SUMIF()公式的单条件求和: 如要统计C列中的数据,要求 ...
- [转]Sumifs函数多条件求和的9个实例
本文转自:http://m.officezhushou.com/sumif/5187.html 第一部分:sumifs函数用法介绍 excel中sumifs函数是Excel2007以后版本新增的多条件 ...
- 常用excel函数公式及操作示例
一.数字处理 1.取绝对值 =ABS(数字) 2.取整 =INT(数字) 3.四舍五入 =ROUND(数字,小数位数) 二.判断公式 1.把公式产生的错误值显示为空 公式:C2 =IFERROR(A2 ...
- Excel中Sumproduct函数的使用方法
1.sumproduct函数的含义 1 1.Sumproduct函数的适用范围,在给定的几组数组中,然后把数组间对应的元素相乘,最后返回乘积之和. 从字面上可以看出,sumproduct有两个英文单词 ...
- Excel 如何按条件计数和按条件求和(如按月求和)
1.使用SUMPRODUCT进行多条件计数语法:=SUMPRODUCT((条件1)*(条件2)*(条件3)* …(条件n))作用:统计同时满足条件1.条件2到条件n的记录的个数.实例:=SUMPROD ...
- 用SUMIF对超15位的代码进行条件求和,出错了,原因是....
用SUMIF对超15位的代码进行条件求和,出错了,原因是.... 2017-10-29 23:01 一.问题 有读者朋友问: 用SUMIF进行条件求和时,如果统计的条件是超15位的代码,就会出错,比如 ...
- Excel函数进阶
#笔记:为了方便自己以后查找,以便随时随地能查看.形成系统化学习! 查找引用函数 ------------------包含----------Vlookup函数(if数组).Hlookup函数.loo ...
- 数据分析常用的Excel函数
Excel是我们工作中经常使用的一种工具,对于数据分析来说,这也是处理数据最基础的工具. 本文对数据分析需要用到的函数做了分类,并且有详细的例子说明,文章已做了书签处理,点击可跳转至相应位置. 函数分 ...
随机推荐
- C# Json 序列化和反序列化 工具类 Newtonsoft.Json.dll
引用: Newtonsoft.Json.dll // 引用: using Newtonsoft.Json; using Newtonsoft.Json.Converters; // 定义 实体测试类 ...
- [置顶] (奇迹冬瓜)坦克大战[MFC框架]
经过二次整合 重新放出MFC框架下的坦克大战 采用小窗口 多线程 双缓冲 动画帧化 碰撞检测 接口封装 混音 事件延迟等 力求做到代码与美工的双向化 开场动画 界面一 界面二 游戏界面 结束动画 零积 ...
- 教你如何搭建vue项目
笔者工作也有一些时间,需要用vue写项目时也总是项目组长已经把项目搭建好了, 偶尔心血来潮想试着自己搭建一个vue项目 我们搭建vue项目呢主要是用到了vue-cli来搭建,但是前提是必须要已经安装好 ...
- [HTML5] Track First Contentful Paint with PerformanceObserver and Google Analytics
"If you can't measure it, you can't improve it." The first step when doing performance wor ...
- Office办公 如何打印顺丰发票
1 关注顺丰速递,我-我的钱包 2 我的钱包-发票申请 3 勾选要打印发票的项目,点击申请发票 4 点击提交,确认发送的邮箱(他是把PDF发到指定邮箱) 最后PDF效果如下 ...
- canvas锯齿
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Bootstrap-学习系列
前言 首先在此多谢博友们在前几篇博文当中给与的支持和鼓励,以及在回复中提出的问题.意见和看法. 在此先声明一下,之前在下小菜所有的随笔文章中,只有前两篇关于Bootstrap的文章发表在了博客园的首页 ...
- Objective-C之定义函数
Demo1.m 一个基础的函数定义 #import<Foundation/Foundation.h> //定义一个返回值为int类型的,名为max的函数.传入的参数为两个int型数据 in ...
- angular绑定数据 使用循环输出列表数据
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...
- C#指南,重温基础,展望远方!(3)类型和变量
C# 有两种类型:值类型和引用类型. 值类型的变量直接包含数据,而引用类型的变量则存储对数据(称为“对象”)的引用.对于引用类型,两个变量可以引用同一对象:因此,对一个变量执行的运算可能会影响另一个变 ...