分享

根据同一条件对多列求和,我整理了四种方法

 初风Excel教学 2022-02-22

说到条件求和,我们首先会想到sumif/sumifs函数。sumif/sumifs函数固然好用,但缺点是只能对单列求和。如果我们想要根据条件对多列求和,sumif函数就不够用了。本文就和大家分享根据同一条件对多列求和的四种方法。

一、案例

如下图所示,A1:D18为1-3月各城市销售额。现在要求在G2:G5单元格分别计算北京、上海、广州、深圳1-3月销售总额。

二、操作步骤

方法一、sumproduct函数

在G2单元格输入公式

=SUMPRODUCT(($A$2:$A$18=F2)*($B$2:$D$18)),拖动填充柄向下复制公式。

公式解析:

(1)($A$2:$A$18=F2)对A2:A18是否等于F2“北京”进行逻辑判断,得到的结果为{TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}

(2)($A$2:$A$18=F2)*($B$2:$D$18)将逻辑判断结果True(即1)和False(即0)分别与B2:D18区域相应单元格数值相乘,得到一个3列17行的数组,{10,20,30;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0;40,50,60;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0;0,0,0}

(3)sumproduct将得到的数组求和,结果为对应 城市1-3月的销售额总计。

方法二、sum函数

在G2单元格输入公式

=SUM(($B$2:$B$18+$C$2:$C$18+$D$2:$D$18)*(--($A$2:$A$18=F2))),按Ctrl+Shift+Enter完成公式输入。拖动填充柄向下复制公式。

公式解析

(1)($B$2:$B$18+$C$2:$C$18+$D$2:$D$18)将需要汇总的三列数据相加,得到的结果为一组数组{60;6;15;600;24;6000;33;1500;42;60000;150;15000;51;60;150000;69;78}。

(2)($A$2:$A$18=F2)对A2:A18城市是否等于F2城市进行逻辑判断,得到的结果为{TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}。--($A$2:$A$18=F2),前面的两个负号(--)可以将True和False分别转为1和0,得到结果{1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0}

(3)($B$2:$B$18+$C$2:$C$18+$D$2:$D$18)*(--($A$2:$A$18=F2))结果为

{60;0;0;0;0;0;0;0;0;0;150;0;0;0;0;0;0}。

(4)sum函数将得到的一组数相加,结果就是对应城市一季度销售额合计。

方法三、sumif函数+offset函数

在G2单元格输入公式=SUM(SUMIF($A$2:$A$18,F2,OFFSET($A$2:$A$18,,ROW($1:$3)))),按Ctrl+Shift+Enter结束公式输入。拖动填充柄向下复制公式。

公式解析:

(1)OFFSET函数用于生成单元格区域引用,此处用作sumif函数的第三个参数sum_range 。OFFSET($A$2:$A$18,,ROW($1:$3)) 可以得到三个引用B2:B18、C2:C18、D2:D18。

(2)sumif函数分别对offset函数生成的三个引用进行条件求和,得到的结果为{50;70;90}。50为B2和B12单元格数值之和,70为C2和C12单元格数值之和,90为D2和D12单元格数值之和。

方法四、sumif函数+辅助列

在E列构造辅助列,对每个城市1-3月销售额求和。

然后在H2单元格使用sumif函数进行条件求和。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多