今天教大家一个“或”条件求和的公式,会用到一个很小众的函数,点睛之笔。
案例:对下图 1 中符合以下任意条件的业绩求和:
“业绩”>10 或
“完成率”>100%
效果如下图 2 所示。


1. 在 F2 单元格输入以下公式:
=SUMPRODUCT(SIGN((C2:C10>10)+(D2:D10>1)),C2:C10)


公式释义:
(C2:C10>10)+(D2:D10>1):
C 列 >10 和 D 列 >1 两个条件满足其一;
中间的“+”表示“或”条件,相当于 or 函数的作用;
满足一个条件结果为 1,都不满足为 0,都满足为 2,结果如下图:

SIGN(...):这个比较小众的函数是这个公式中的重点,我详细给大家讲解一下;
sign 函数用于确定数字的符号。如果数字为正数,则返回 1;如果数字为 0,则返回零 0;如果数字为负数,则返回 -1;
此处使用这个函数,目的就是将上述数组中的 2 变成 1;为何要这么做?后面会讲,下图是计算结果;

SUMPRODUCT(...,C2:C10):
sumproduct 函数的作用对两个数组的乘积求和;
第一个数组中的 0 值与 C2:C10 相乘后,就会过滤掉那些不符合条件的值;而 1 与之相乘,就会提取出所有符合条件的值;
所以必须将第一个数组中的 2 变成 1,如果有 2,那么就会将 C 列的值乘以 2,导致求和结果出错;
最后就是将所有符合条件的 C 列值相加,得到所需结果。