由于在样本数据中,同一时期内同一公司的红色和绿色状态重叠,因此我们假设,如果所选日期存在绿色状态,则即使该相同日期也存在红色状态,该状态也是绿色时期和同一家公司。
可能的解决方案是首先添加带有布尔标志IsGreen的计算列。
这是一个简单的公式,它在状态表上进行迭代,检查公司ID,状态和日期间隔。
由于这是计算列,因此仅在刷新期间执行,并且不会影响度量的性能。
IsGreen =
VAR ProjectCompanyID = Project[Company ID]
VAR ProjectDate = Project[Date]
RETURN
NOT ISEMPTY (
FILTER (
'Status',
RELATED ( Company[Company ID] ) = ProjectCompanyID
&& 'Status'[Status] = "Green"
&& ProjectDate >= 'Status'[Start Date]
&& ProjectDate <= 'Status'[End Date]
)
)
然后,我们可以使用IsGreen计算列实现度量SumOfCostIfGreen
SumOfCostIfGreen =
CALCULATE ( SUMX ( Project, Project[Cost] ), Project[IsGreen] )
这是结果表的视觉效果
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句