函数跟人一样,日久见人心。有些经典函数,每当遇到疑难杂症的时候,它总能力挽狂澜,任何时候都能兜底,那它就是个好函数。而有的,一遇困难就不好使,好吧,就和大部分人一样。
今天这个案例,本是不可为,不敢想,但是有这个我一夸再夸的函数,又四两拨千斤了。
案例:
下图 1 中左侧的是各销售人员的获客数业绩表,右侧则需要根据 E 列的查询值,计算出符合条件的所有获客数总和。
效果如下图 2 所示。
解决方案:
这个案例的难点在于哪里呢?如果要根据 B 列的姓名查找 C 列的结果,这最简单,一对一查询用 vlookup 就能查找。如果是根据 A 列的值一对多查找再求和,那就麻烦一点,但也是有很多方法的。但是两种需求同时出现,智能判断并计算结果,这就不太好办了。
一个公式能做到吗?能!
1. 在 F2 单元格中输入以下公式 --> 下拉复制公式:
=SUMPRODUCT(($A$2:$B$13=E2)*$C$2:$C$13)
公式释义:
$A$2:$B$13=E2:
将 A、B 两列的值依次与 E2 单元格比对,生成一组由 true 或 false 组成的数组;
选中这段公式,按 F9,可以看到如下结果:, 隔开的是列,; 隔开的是行;
...*$C$2:$C$13:将上述数组结果与 C 列的值相乘,只有前一个数组中为 true 的值会保留 C 列的值,其余都为 0;
SUMPRODUCT(...):将数值结果相加,最后得到的就是符合条件的值之和
* 请注意:参数内的区域都要绝对引用,而 E 列的匹配值是动态的,所以要相对引用。