作者: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. 【转载】PHP中require(),include(),require_once()和include_once()区别

    关于这方面的知识,这篇文章讲的较全: http://www.jb51.net/article/22467.htm require 的使用方法如 require("MyRequireFile. ...

  2. JavaScript 创建类/对象的几种方式

    在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活的. JS对象是一种复合类型,它允许你通过变量 ...

  3. SQL手工注入小结

    第一步先把IE菜单=>工具=>Internet选项=>高级=>显示友好 HTTP 错误信息前面的勾去掉.否则,不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误, ...

  4. 流畅的python第一章python数据模型学习记录

    python中有些特殊的方法,以双上下划线开头,并以双下划线结束的方法.如__getitem__,这些方法是特殊的方法,供python解释权内部使用,一般来说不需要调用 还有一种是以双下划线开头的,如 ...

  5. nginx搭建前端项目web服务器以及利用反向代理调试远程后台接口

    前端同学用nginx搭建自己的web服务器,后台程序专门部署在一台服务器上(我们之前公司就有三套环境,开发/测试/生产),这样做的好处是 1.前端代码基本都是静态文件,重启一次很快,也就几秒钟时间. ...

  6. java HashMap,LinkedHashMap,TreeMap应用

    共同点: HashMap,LinkedHashMap,TreeMap都属于Map:Map 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复. 不同点: 1.H ...

  7. centos/7/isos/x86_64 下载

    为了节约有限的可用带宽. 不从mirror.centos.org下载iso映像 以下镜子应该可用的ISO映像: http://mirrors.aliyun.com/centos/7/isos/x86_ ...

  8. Win7双屏显示设置

    双显示器:一个是T410自己的屏幕,一个是宏基的Acer1296*768显示器. 连接:将宏基显示器的Display端子连接到笔记本的Display口上,电源接上. 设置过程: 1.右键点屏幕,选“S ...

  9. 有些类库(node.js版)

    做项目经常会用到好些类库,大的还好说,用的多了自然记住了名字.如express. 但也有些小而精湛的类库,不仅提供了良好的功能,本身的实现也值得研究.暂记于此. 1.web类 request    简 ...

  10. STL源码剖析(list)

    SGI STL中list是使用环状双向链表实现的.它的结点结构定义如下: template <class T> struct __list_node { typedef void* voi ...