多条件求和,有很多种解法,多数情况下通常都需要用到数组公式。数组公式虽然也不难,但是有些同学还是不太喜欢用。
今天就教大家这样几个案例,大部分人遇到类似需求都会想到使用数组公式,但是不用数组,咱同样也能把问题给解决喽。这几个案例可以归纳为:
多条件一对一查找求和
一对多查找求和
多条件一对多查找求和
案例:
下图 1 的 A 至 C 列为各部门销售人员的获客数统计表。
请分别在 E、G、I 列根据列出的条件求和,结果如下图 2 所示:
E 列:计算列出的所有人的获客数之和
G 列:计算“销售三部”的总获客数
I 列:计算“销售一部”和“销售二部”的总获客数
解决方案:
E2 单元格的公式,通常可以用以下数组公式实现:
=SUM(SUMIF(B2:B13,E5:E7,C2:C13))
如果不想用数组公式,可以结合我们熟悉的 vlookup 使用。
1. 如果是 O365 之前的版本,需要在 E2 单元格中输入以下公式:
=SUM(VLOOKUP(T(IF({1},E5:E7)),B:C,2,0))
公式释义:
这个公式的难点在于对 T(IF({1},E5:E7) 的理解:
E5:E7 是需要查找的姓名;
如果不套 T 和 IF 函数,VLOOKUP 就只对查询范围的第一个数值进行查询;
T 或 N 函数+IF 组合,是为了让 VLOOKUP 函数的第一参数接受数组形式,从而返回相应的内存数组,这样 VLOOKUP 就能对每一个查找值进行查询统计了;
T 函数的作用是返回文本值,如果不是文本则返回空值;
外面再套个 SUM,就能对 VLOOKUP 查找出的所有结果求和
有关 T 函数的用法详解,请参阅
Excel函数(12)–T函数返回文本值
。
如果还是觉得上述公式理解起来费劲,那么我强烈建议大家升级为 O365,就不需要 T+IF 嵌套了,VLOOKUP 直接就能按数组查找。
象下图这样,将公式修改如下,也能正确得出结果。
=SUM(VLOOKUP((E5:E7),B:C,2,0))
所以,不差这点小钱的话,升级 O365,幸福指数会爆棚。
第二个案例是一对多查找再求和,一对多查找比较经典的是万精油公式,但那对很多人来说理解也费劲,所以我们改用 sumproduct 函数,一个几乎能解决大部分查找、求和、排序问题的宝藏函数。
2. 在 G2 单元格中输入以下公式:
=SUMPRODUCT((A2:A13=G5)*1,C2:C13)
公式释义:
(A2:A13=G5)*1:判断 A 列的部门与需要查询的部门是否一致,生成一组逻辑值;通过 *1 将逻辑值转换为 0 和 1;
SUMPRODUCT(...,C2:C13):将上述数组与 C 列的值先乘再加,不符合查找条件值与 0 相乘为 0,剩下符合条件的相加求和
sumproduct 函数直接能对数组进行计算,而不需要按三键生成数组函数。有关 sumproduct 公式的详解,请参阅
Excel函数(四) – sumproduct函数计数、排名、求和等等
Excel函数(10)–矩阵乘积mmult与sumproduct
接下来计算两个部门的总和,是不是举一反三,照着上述 sumproduct 公式设置两次,再相加?
这叫聪明反被聪明误,虽然最终也能得出结果,但是显然没有好好地利用函数。如果有 10 个部门呢,难道也这么做?
3. 在 I2 单元格中输入以下公式:
=SUMPRODUCT((A2:A13={"销售一部","销售二部"})*C2:C13)
公式释义:
A2:A13={"销售一部","销售二部"}:
将 A 列的部门名称分别与查询区域的两个值比对,得出结果 {FALSE,TRUE;TRUE,FALSE;FALSE,TRUE;FALSE,FALSE;TRUE,FALSE;FALSE,TRUE;FALSE,TRUE;TRUE,FALSE;FALSE,FALSE;FALSE,TRUE;TRUE,FALSE;FALSE,FALSE};
逗号分隔列,分号分隔行;sumproduct 要求两个参数的行数必须一致;
SUMPRODUCT(...*C2:C13):套用 sumproduct 函数的作用就相当于将上述两列分别与 C 列的值相乘,再求和,从而计算出两个部门的总数
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.