▼需求:2月的销售金额合计
需求比较简单,也比较常见,下面我们就使用3个函数来处理这个需求!先从最不起眼的SUM开始!
▼数组公式 =SUM(D2:D21*(MONTH($A$2:$A$21)=2))
这是一个数组公式,首先MONTH部分提取A列销售日期全部的月份,然后判断是否等于2,结果为TRUE和FALSE
{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}
=SUMPRODUCT(D2:D21*(MONTH($A$2:$A$21)=2))
=SUMIFS(D:D,A:A,">=2022-2-1",A:A,"<=2022-2-28")
使用SUMIFS函数,很多新手会想当然写出下面的公式,结果报错!
SUMIFS(E2:E13,MONTH(A2:A13)……为什么不行?
其实很简单,就是对函数的参数不了解,之前只是模仿,函数参数,有直接的限制类型,比如条件区域,他只能是单元格区域或者其他函数形成的单元格引用,不能是数组,MONTH的结果是一个数组!
他们三者都可以完成条件求和,这是他们的共同点。他们的区别是我们要了解和掌握的!
1、SUM和SUMPRODUCT都是执行的数组运算,数组公式占用内存较高,数据量较大或者逻辑复杂要谨慎使用,容易卡死!
2、SUMIFS函数执行普通计算,同时对选择的区域,非使用区域不参与计算(推测),效率方面大大提高,跟前面二者比较,属于快函数,所以在开发模板过程中,SUMIFS首选!
3、SUMPRODUCT相对SUM,自带数组计算,无需“三键”,对新手不懂数组公式的更友好,二者优选SUMPRODUCT!
4、SUM的定位是简单的数值求和,非字符竞赛等特殊情况,条件求和很少出场!