使用常量数组解决sumifs多列多行多条件合并求和

条件求和,一般首选sumif或者是sumifs,这两个函数比较普及,使用率也比较高;按常规用法,如果是多列多行的多条件求和,一个sumifs函数好像很难实现,如下图:

sumifs.png

例如问题一的函数,使用一个sumifs函数可以解决,如果是问题二,可能有朋友就用sumif+sumif累加了,如果合计的条件再增加,那公式不仅会很长表格打开的速度也会很慢;

下面就记录一下在一个函数里使用数组的方式求出多列多行多条件的求和结果;

问题一:蜀汉的“关公大刀”销量合计是多少?

公式:=SUMIFS(F3:F22,D3:D22,"蜀汉",E3:E22,"关公大刀")=293

问题二:蜀汉的“关公大刀”和“草船”的销量合计是多少?

公式:=SUM(SUMIFS(F3:F22,D3:D22,"蜀汉",E3:E22,{"关公大刀","草船"}))=470
说明:{"关公大刀","草船"}是一个常量数组,可以让Sumifs函数分别计算这2个产品的销量,得到的是2个产品的销量合计 {293,177},同样一组数,前面再套一个sum函数,得到最终的两个产品销量的求和结果;

问题三:蜀汉和曹魏的“关公大刀”和“草船”销量合计多少?

公式:=SUM(SUMIFS(F3:F22,D3:D22,{"蜀汉";"曹魏"},E3:E22,{"关公大刀","草船"}))=1188
说明:{"蜀汉";"曹魏"}中间用“;”号分隔,而{"关公大刀","草船"}用逗号分隔,原因则是{"蜀汉";"曹魏"}表示1列2行数组,与数组条件{"关公大刀","草船"}一起运算时,是是多对多运算,求的是"蜀汉"的"关公大刀"、"草船"的数量和"曹魏"的"关公大刀"、"草船"的数量;

问题四:蜀汉的“关公大刀”和曹魏的“草船”这两者的销量合计,又该如何写函数呢?

公式:=SUM(SUMIFS(F3:F22,D3:D22,{"蜀汉","曹魏"},E3:E22,{"关公大刀","草船"}))=779  
说明:与题三的前个参数是用分号不同,{"蜀汉","曹魏"}与{"关公大刀","草船"}中间用的者是逗号,则表示这两个参数都是一行2列数组,分别计算出蜀汉的“关公大刀”和曹魏的“草船”为{293,486},再用sum函数求和结果为779;

sumifs1.png

Please GoUrl:rijifang.Com
打赏
转载请注明出处;
本文地址:https://rijifang.com/index.php/post/14503.html
相关热文

发表评论: