你知道多条件求和可以用多少种答案吗?

大家晚上好,我今天要讲的案例是求1月份产品A的销售额,这是关于多条件求和。如图所示,大家需要注意的是条件包含月份。

条件求和我们很容易想到的是sumif和sumifs函数,sumifs函数的语法是SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

可能大家第一反应就是写下这个公式,我当初也是这样想的:=SUMIFS(D2:D25,MONTH(B2:B25),1,C2:C25,H2)

错误展示

但是这个公式却是错误的,不是答案错误那种,而是这个公式输入完成不了,why?

点击编辑栏左边的fx,看上去完全没问题呀,百思不得其解,经过一番搜索和求助,最终发现了问题所在:sumif和sumifs函数,这两个函数的sum_range(求和区域)和criteria_range(条件区域)只能是引用,不能是数组、文本、数值,函数只能用结果返回是引用的函数,比如if函数(这个比较特殊)、index函数、offset函数等引用函数。而日期与时间函数、查找函数、数学函数、统计函数和除了if函数的其他逻辑函数都不可以。

index引用函数

方法一

最简单的方法就是添加辅助列求出日期的月份,然后再用sumifs多条件求和,公式:=SUMIFS(D:D,E:E,E2,C:C,H2)

方法二

将日期转化为数字,进行比较,公式:=SUMIFS(D:D,B:B,">=42736",B:B,"<42767",C:C,H2)

方法三

直接用日期进行比较,需要注意的是日期格式不要写错~公式:=SUMIFS(D:D,B:B,">=2017/1/1",B:B,"<2017/2/1",C:C,H2)

方法四

因为sumif条件区域只能用引用,所以我们可以拆成sum+if函数的数组公式,=SUM(IF((MONTH(B2:B25)=1)*(C2:C25=H2),D2:D25)),ctrl+shift+enter数组公式

这个方法我觉得比较实用。

方法五

万能的sumproduct函数,sumproduct函数对于参数没什么要求,除了一点,不能出现错误值,否则结果也会是#VALUE!,所以一般不引用整一列(因为一般数据都有标题)。公式:=SUMPRODUCT((MONTH(B2:B25)=1)*(C2:C25=H2)*D2:D25);

=SUMPRODUCT((MONTH(B2:B25)=1)*(C2:C25=H2),D2:D25);

=SUMPRODUCT((MONTH(B2:B25)=1),(C2:C25=H2),D2:D25),注意:这个公式结果会是0,因为前两个参数结果false/true没有转化为数值。下面三种是转化为数值的方法:

=SUMPRODUCT((MONTH(B2:B25)=1)*1,(C2:C25=H2)*1,D2:D25);=SUMPRODUCT((MONTH(B2:B25)=1)+0,(C2:C25=H2)+0,D2:D25);=SUMPRODUCT(N(MONTH(B2:B25)=1),N(C2:C25=H2),D2:D25)

最后献上一个关于筛选后的多条件求和函数:

=SUMPRODUCT(SUBTOTAL(3,OFFSET(A2,ROW(A2:A25)-2,))*(MONTH(B2:B25)=1)*(C2:C25=H2)*D2:D25)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容