请参阅以下公式:
=SUMPRODUCT(--(tEnvironment[Resultatenhet]=[@Resultatenhet]);--(tEnvironment[Anst fr o m]<=[@Period]);1*--(tEnvironment[Anst t o m]="")+--(tEnvironment[Anst t o m]>=DATE(YEAR([@Period]);MONTH([@Period])+1;0)))
我尝试计算出现次数:
tEnvironment[Resultatenhet]=[@Resultatenhet]
AND
tEnvironment[Anst fr o m]<=[@Period]
AND
(tEnvironment[Anst t o m]="" OR tEnvironment[Anst t o m]>=DATE(YEAR([@Period]);MONTH([@Period])+1;0)))
但它并没有起作用。一些错误搜索导致我认为某些值被计算两次。怎么了?我该如何解决?
答案 0 :(得分:1)
潜在过度计数的原因是最后一项中总结的两个表达式,即:
[Anst t o m]=""
和
[Anst t o m]>=DATE(YEAR([@Period]),MONTH([@Period])+1,0)
不是互斥的,因为Excel认为空字符串“”比任何数字都“更大”。
因此,对于 Anst tom 字段包含空字符串(并且当然满足其他条件)的任何行,对上述两个子句的求和将导致2的结果。
解决这个问题的一种方法是使该条款具有可比性,即(我还整理了一些多余的强制措施):
=SUMPRODUCT(--([Resultatenhet]=[@Resultatenhet]),--([Anst fr o m]<=[@Period]),--(([Anst t o m]="")+([Anst t o m]>=DATE(YEAR([@Period]),MONTH([@Period])+1,0))>0))
更重要的是,如果在所有情况下,所有空白单元格都包含空字符串“”(因此技术上不是空的),那么,通过上面给出的逻辑,您可以简单地使用:
=SUMPRODUCT(--([Resultatenhet]=[@Resultatenhet]),--([Anst fr o m]<=[@Period]),--([Anst t o m]>=DATE(YEAR([@Period]),MONTH([@Period])+1,0)))
因为任何空字符串也会满足single,final子句,因此不需要对空白进行额外的显式测试。
此致