在Excel中使用--
是为了将一个逻辑表达式的结果转换为数值。逻辑表达式的结果通常是TRUE或FALSE,当你将这些结果用于数学计算时,TRUE会被当作1,FALSE会被当作0。但是,Excel并不总是自动将逻辑值转换为数值,特别是当它们作为数组运算的一部分时。
在你提供的公式中:
=SUMPRODUCT(--((A2:A100 + B2:B100 + C2:C100 >= 1) * (H2:H100 = "aa") * (J2:J100 = "未认证")))
--(...)
这部分的双重负号将逻辑表达式的结果转换为数值。例如,如果条件(A2:A100 + B2:B100 + C2:C100 >= 1)
为TRUE,则--TRUE
转换为-1(然后再转换为1,因为Excel中不存在负的布尔值),如果为FALSE,则--FALSE
转换为0。SUMPRODUCT
函数就可以对这些数值进行求和,只有当所有条件都为TRUE时,结果才会是1,否则为0。这个技巧在需要将逻辑数组转换为数值数组时非常有用,尤其是在与SUMPRODUCT
、SUM
等函数结合使用时。