DAX多条件计算问题:3年平均QTY度量值返回空白求解
DAX度量值返回空白的原因及修正方案
问题根源
你写的CALCULATE筛选条件里同时要求年份等于2020、2021、2022,这三个条件是同时成立的逻辑,没有任何一行数据能满足,所以SUM的结果是空白,除以3后自然还是空白。
修正后的写法
方式一:用IN指定年份集合
如果Table[Year]是日期类型,先提取年份再筛选:
3_Year_line = CALCULATE ( SUM ( Table[Qty] ), YEAR ( Table[Year] ) IN { 2020, 2021, 2022 } ) / 3
如果Table[Year]本身就是数值型的年份(比如直接存2020、2021这类数字),可以简化:
3_Year_line = CALCULATE ( SUM ( Table[Qty] ), Table[Year] IN { 2020, 2021, 2022 } ) / 3
方式二:用BETWEEN筛选连续年份
适合年份是连续的情况:
3_Year_line = CALCULATE ( SUM ( Table[Qty] ), Table[Year] BETWEEN 2020 AND 2022 ) / 3
额外注意:清除上下文筛选
如果你的表是按年份汇总后的表(每行对应一个年份),默认情况下CALCULATE会继承当前行的年份筛选,导致只能计算当前年份的数值。需要添加ALL(Table[Year])清除这个上下文,才能得到三年的总和:
3_Year_line = CALCULATE ( SUM ( Table[Qty] ), ALL ( Table[Year] ), Table[Year] IN { 2020, 2021, 2022 } ) / 3
可选:直接用AVERAGE计算平均值
如果希望自动忽略无数据的年份(比如某一年没Qty值,AVERAGE会只计算有数据的年份),可以用AVERAGE替代SUM/3:
3_Year_line = CALCULATE ( AVERAGE ( Table[Qty] ), ALL ( Table[Year] ), Table[Year] IN { 2020, 2021, 2022 } )
内容的提问来源于stack exchange,提问作者Evelyn
相关产品推荐
相关产品推荐

