作者: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


公式的含义就不解释了。就是多条件求和。这里的条件能够是多种形式的。等于、大于、小于、不等于都行,仅仅要记住真假的值:真=1,假=0就能够了。

Excel函数sumproduct应用案例-多条件求和的更多相关文章

  1. Excel带条件求和——SUMIF函数

    老婆求帮忙,问Excel中怎么跨Sheet带条件求和,就是关于sheet2中筛选出来的数据自动合计在sheet3中 . 比如有个sheet2表中的数据如下: 现在要在sheet3中求合计, 通过分析可 ...

  2. Excel各种条件求和的公式汇总

    经常和Execl打交道的人肯定觉得求和公式是大家时常用到的.Excel里有哪几路求和公式呢?他们的使用方式又是怎样?我为大家汇总一下. 使用SUMIF()公式的单条件求和: 如要统计C列中的数据,要求 ...

  3. [转]Sumifs函数多条件求和的9个实例

    本文转自:http://m.officezhushou.com/sumif/5187.html 第一部分:sumifs函数用法介绍 excel中sumifs函数是Excel2007以后版本新增的多条件 ...

  4. 常用excel函数公式及操作示例

    一.数字处理 1.取绝对值 =ABS(数字) 2.取整 =INT(数字) 3.四舍五入 =ROUND(数字,小数位数) 二.判断公式 1.把公式产生的错误值显示为空 公式:C2 =IFERROR(A2 ...

  5. Excel中Sumproduct函数的使用方法

    1.sumproduct函数的含义 1 1.Sumproduct函数的适用范围,在给定的几组数组中,然后把数组间对应的元素相乘,最后返回乘积之和. 从字面上可以看出,sumproduct有两个英文单词 ...

  6. Excel 如何按条件计数和按条件求和(如按月求和)

    1.使用SUMPRODUCT进行多条件计数语法:=SUMPRODUCT((条件1)*(条件2)*(条件3)* …(条件n))作用:统计同时满足条件1.条件2到条件n的记录的个数.实例:=SUMPROD ...

  7. 用SUMIF对超15位的代码进行条件求和,出错了,原因是....

    用SUMIF对超15位的代码进行条件求和,出错了,原因是.... 2017-10-29 23:01 一.问题 有读者朋友问: 用SUMIF进行条件求和时,如果统计的条件是超15位的代码,就会出错,比如 ...

  8. Excel函数进阶

    #笔记:为了方便自己以后查找,以便随时随地能查看.形成系统化学习! 查找引用函数 ------------------包含----------Vlookup函数(if数组).Hlookup函数.loo ...

  9. 数据分析常用的Excel函数

    Excel是我们工作中经常使用的一种工具,对于数据分析来说,这也是处理数据最基础的工具. 本文对数据分析需要用到的函数做了分类,并且有详细的例子说明,文章已做了书签处理,点击可跳转至相应位置. 函数分 ...

随机推荐

  1. C++中模块(Dll)对外暴露接口的方式

    总结下C++中模块(Dll)对外暴露接口的方式: (1)导出API函数的方式这种方式是Windows中调用DLL接口的最基本方式,GDI32.dll, User32.dll都是用这种方式对外暴露系统A ...

  2. Android6.0指纹识别开发

    近期在做android指纹相关的功能,谷歌在android6.0及以上版本号对指纹识别进行了官方支持.当时在FingerprintManager和FingerprintManagerCompat这两个 ...

  3. 有趣的Java之调皮的浮点数

    **当你在写一个电商网站的时候,你可能会给你的商品标价1.99,10.9这样的价格来吸引顾客.我应该用浮点数float/double来储存它们,当我的顾客购买商品的时候,从他们的账户里扣费,使用整型是 ...

  4. Android布局属性集合

    <!-- android:id  —— 为控件指定相应的ID android:text —— 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串 andro ...

  5. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-为什么没有自动识别成标准FBD功能块

    新建一个项目,是不会自动把FBD对应名称的模块识别成标准功能块的   你需要引入相应的类库重新输入FBD   然后才会自动生成     更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: ht ...

  6. sprintf、vsprintf、sprintf_s、vsprintf_s、_snprintf、_vsnprintf、snprintf、vsnprintf 函数辨析

    看了题目中的几个函数名是不是有点头晕?为了防止以后总在这样的细节里纠缠不清,今天我们就来好好地辨析一下这几个函数的异同. 实验环境: Windows下使用VS2017Linux下使用gcc4.9.4 ...

  7. 树莓派学习笔记——GPIO功能学习

    0.前言     树莓派现在越来越火,网上树莓派的资料也越来越多.树莓派的学习可以分为linux系统学习和linux驱动学习,利用树莓派制作LED流水灯应该算是驱动学习吧.树莓派来自国外,国外嵌入式开 ...

  8. vue - config(dev.env.js和prov.env.js)

    描述:配置产品模式.打包模式:开发还是打包,以最佳运行(不配置则有一个大大的Warning!!!) 官网:https://www.webpackjs.com/concepts/mode/

  9. 算法笔记_101:蓝桥杯练习 算法提高 身份证号码升级(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由 ...

  10. highcharts 坐标轴 数值 格式化

    以Y轴为示例: yAxis: { min: 0, gridLineColor: '#ececee', gridLineWidth: 1, lineColor: '#ececee', lineWidth ...