[算表] Excel多条件求和

楼主: moodyblue   2015-07-02 22:19:21
Excel多条件求和
特别条件求和(SUMIF)这个函数,应该很多人用过,有时候会遇到需要多个条
件求和的情况,在此分享实务上做法:
图文参考:
http://www.b88104069.com/archives/1503
一、首先,总公司拿到的报表,是所有子公司放在一块的明细帐。
二、这种报表很适合跑枢纽,将字段清单如图设置。
三、整理好的枢纽分析表,很清楚地将子公司和会科汇总好了。
关于枢纽分析表的用法,可参考先前的分享文章:
http://www.b88104069.com/archives/1141
四、下函数的话,因为我们有两个条件:子公司及会计科目,所以“SUMIF”
不够用,需要使用“SUMIFS”,输入公式:“=SUMIFS(明细帐!C:C,明细帐
!A:A,B3,明细帐!B:B,$C$1)”。
五、第一个参数字段是想要加总的范围,也就是明细帐里的“发生金额”,
接下来的参数字段是两两一组,我们需要会计科目等于“B3”,也就是“
5100”,子公司等于“C1”,也就是“A”,这里的“$C$1”表示将C1的栏数
和列数都固定住了,将公式往下拉的时候,“C1”不会跟着递增或递减改变

六、除了SUMIFS函数之外,也可以使用向量的方式套用多条件,输入公式:
“=SUM(IF((明细帐!A:A=B3)*(明细帐!B:B="A"),明细帐!C:C))”,输入完之
后,因为我们想要二维向量的效果,要先将鼠标移到公式栏,先按住“Ctrl
”和“Shift”不放,再按“Enter”键,结果可以看到公式两边冠上了大括
号,计算出来的值,如我们所期待。
七、既然是多条件求和,也可以有第三个条件,并且可以是数学判断式,例
如100以下的金额太小,想要忽略不计,可以在公式后面再加上:“明细帐
!C:C,">100"”,OK。
八、向量多条件求和函数,在乘积的部份再加上一组:“*(明细帐
!C:C>100)”,OK。
延伸阅读:
多层次Vlookup多层次vlookup料号分类
http://www.b88104069.com/archives/1750
资料剖析后vlookup查找
http://www.b88104069.com/archives/1092
vlookup文字数值查找
http://www.b88104069.com/archives/1003
作者: soyoso (我是耀宗)   2015-07-02 23:13:00
原文第六点,千万不要(明细帐!A:A=B3)*(明细帐!B:B="A")这样写,也不要这样教学,条件一多,阵列公式一多,A:A,B:B这样指定一整栏,效能极差如果是一整栏都有资料没话说,但如果没有又这样指定,2003是a1:a65535=B3的逻辑判断,假设只有1000列有值,那就是64000多笔都是没有意义的运算或判断2007以上1048576列就更多了另外回文写到2003是a1:a65535=b3,而无写a:a=b3是因为在2003写a:a=b3的阵列公式会出现#num!的错误
作者: EGsux (天龙人)   2015-07-03 21:36:00
2010版开始印象中sumifs有支援a:a的优化 效能比第六点好很多

Links booklink

Contact Us: admin [ a t ] ucptt.com