根据一个数据表的某一列,查询另一个数据表并返回指定的值,大家可能首先会想到用 vlookup。
如果两个都是一维数据表,vlookup 确实是最常用且简单的函数。但是如果一个是一维表,而要查找的对象却是个二维表,这就有点难度了。来看今天的案例。
案例 :
下图 1 中的 D 至 I 列为每月业绩达标的员工姓名,员工姓名排序随机。要求根据 A 列的姓名,在 B 列中计算出该员工总共的达标次数。
效果如下图 2 所示。
解决方案:
1. 在 B2 单元格中输入以下公式 --> 下拉复制公式:
=SUMPRODUCT(N($D$2:$I$18=A2))
公式释义:
N($D$2:$I$18=A2):
N 函数的作用是将非数值形式的值转换为数值形式;
本公式的作用是将 $D$2:$I$18 区域中的所有单元格与 A2 比对,返回一组逻辑值;再通过 N 函数将逻辑值转换为 1 或 0;
SUMPRODUCT(...):
SUMPRODUCT 函数的作用是返回区域或数组的乘积之和;
此处的作用是对 N 函数转换的数组结果求和,有几个 1 即姓名在二维表中出现过多少次。
* 请注意:
$D$2:$I$18 区域的行列都要绝对引用;
SUMPRODUCT 函数可以直接对数组进行计算,而无需按三键;
如果要将公式中的 SUMPRODUCT 函数换成 SUM 函数,则要按 Ctrl+Shift+Enter 回车。
有关 SUMPRODUCT 和 N 函数的详细说明,请参阅
Excel学习世界
转发、在看也是爱!
领取专属 10元无门槛券
私享最新 技术干货