按条件对二维表进行计算,必然绕不开对指定条件的行、列或行列交叉处查找定位。
这种需求有很多方法可以解,今天教大家两种很短的公式。
案例:
下图 1 是各销售人员的各项业绩表。请根据要求计算出指定业绩的总和,效果如下图 2 所示。
解决方案:
1. 在 H2 单元格中输入以下公式:
=DSUM(A1:E10,H1,F1:F2)
如果是我的老读者,应该对 DSUM 函数不陌生,之前我给大家讲解过具体用法,详情请参阅Excel函数(15)–数据库求和函数dsum。
但是本案例比较特殊,公式中的第三个参数如何理解?为什么是两个空的单元格?这就是今天要讲解的重点。
公式释义:
DSUM 是个数据库函数,作用是返回列表或数据库中满足指定条件的记录字段(列)中的数字之和;语法为 DSUM(database, field, criteria);
DSUM 的参数含义分别如下:
database:需要查询的数据库的区域
field:要计算的列
criteria:计算的条件区域
本例中的前两个参数都不难理解,表示对数据库区域 A1:E10 内标题等于 H1 值的列按条件求和;
第三个参数为什么是 F1:F2 呢?因为本例中我们没有计算条件,只要对指定的整列求和,因此不需要设置条件。但是这个参数又是必需的,那就可以选择任意两个连续的空单元格来替代,让条件为空。
说到按条件求交叉区域的值这个需求,我要再次吹爆已经写过无数个案例的 sumproduct 函数。
2. 在 I2 单元格中输入以下公式:
=SUMPRODUCT((B1:E1=I1)*1*B2:E10)
公式释义:
sumproduct 函数的作用是对乘积求和;
(B1:E1=I1):判断 B1:E1 区域的值是否与 I1 单元格的值相等,结果会生成一串 true 或 false 组成的数组;
*1:将上述值乘以 1,将逻辑值变成了数值 1 或 0;
*B2:E10:将上述数组与 B2:E10 相乘再求和,即可计算出所有满足条件的数值之和。
sumproduct 函数相关的案例实在是太多了,我就不一一列举了,感兴趣的同学可以在历史消息里搜索 sumproduct。不是后台留言哦。
领取专属 10元无门槛券
私享最新 技术干货