我正在尝试学习使用 SUMPRODUCT 根据多个条件计算唯一值,但无法停止。通配符不适用于 sumproduct。而且有些单元格可能为空白。(我使用的是 Mac Excel v 16.33,如果这有区别的话。)
我需要计算 A6:A100 中唯一的日期值,其中 E6:E100 是以下任一个:
P CD Project Cert K9
P UCD Project Uncert K9
P O Project Overhead
P S Project Support
更新:我思考我明白了。(请忽略不同的行号。)如果您有更高效/更优雅的解决方案,请提供。我想改进这一点!
=SUMPRODUCT((IF(LEFT(E20:E100,1)="P", TRUE,FALSE))/(IF(COUNTIFS(A20:A100,A20:A100,E20:E100,"*Project*")=0,1,COUNTIFS(A20:A100,A20:A100&"",E20:E100,"*Project*"))))
答案1
如果你的分子<条件>/<计数>除法为LEFT(E6:E99)="P"
¹,那么您应该在 COUNTIFS 中复制该条件,而不是用通配符搜索替换它"*project*"
。
将分子条件的逻辑逆元添加到分母。这可以避免#DIV/0!
错误。
你的IF(LEFT(E20:E100,1)="P", TRUE,FALSE)
是多余的。LEFT(E20:E100,1)="P"
是合乎逻辑的(又名布尔值) 语句本身您不需要检查它是否为 TRUE/FALSE,然后提供 TRUE/FALSE。
=SUMPRODUCT((LEFT(E6:E99)="P")/(COUNTIFS(A6:A99,A6:A99,E6:E99,"P*")+(LEFT(E6:E99)<>"P")))
¹ LEFT 函数默认为单个字符,因此 LEFT(A6:A99) 与 LEFT(A6:A99, 1) 相同。