excel|根据条件,动态求Excel二维表指定列的和,这里有两个很短的公式

【excel|根据条件,动态求Excel二维表指定列的和,这里有两个很短的公式】excel|根据条件,动态求Excel二维表指定列的和,这里有两个很短的公式

文章图片

excel|根据条件,动态求Excel二维表指定列的和,这里有两个很短的公式

文章图片

excel|根据条件,动态求Excel二维表指定列的和,这里有两个很短的公式

文章图片

excel|根据条件,动态求Excel二维表指定列的和,这里有两个很短的公式

按条件对二维表进行计算 , 必然绕不开对指定条件的行、列或行列交叉处查找定位 。

这种需求有很多方法可以解 , 今天教大家两种很短的公式 。
案例:下图 1 是各销售人员的各项业绩表 。 请根据要求计算出指定业绩的总和 , 效果如下图 2 所示 。


解决方案:1. 在 H2 单元格中输入以下公式:
=DSUM(A1:E10H1F1: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 。 不是后台留言哦 。