首页 > 解决方案 > DAX 常量与引用:常量有效,引用无效

问题描述

我有一张表,我想在其中计算数据第一个月的小时总和。我有一个动态查找最小值的计算字段。表中的月份:

MinMonth:=CALCULATE(MONTH(MIN([Month])))

这输出 1, 2, ..., 12

然后我有一个计算总和的字段。如果我输入一个静态数字

CALCULATE(SUM([Hours]);[Month]=1)

有用。但是,如果我键入对计算字段的引用:

CALCULATE(SUM([Hours]);[MonthNo]=[MinMonth])

它没有。即使我创建了一个单元格:

MinMonthTest:=1

并参考它,它不起作用。有谁知道为什么?

谢谢

标签: excelexcel-formulapowerbidaxpowerpivot

解决方案


您不能在简单的布尔过滤器中使用度量。最简单的解决方法是将其预先计算为静态变量。

Measure =
VAR MinMonth = [MinMonth]
RETURN
    CALCULATE ( SUM ( [Hours] ); [Month] = MinMonth )

另一种选择是使用FILTER参数:

Measure =
CALCULATE (
    SUM ( [Hours] ),
    FILTER ( VALUES ( [Month] ), [Month] = [MinMonth] )
)

这些仍然可能不会返回您期望的结果,因为[MinMonth]将在调用它的过滤器上下文中进行评估,并且不完全清楚这是否是您想要的。如果不是,那么您可能想要更像这样的东西来忽略该评估上下文:

MinMonth := CALCULATE ( MONTH ( MIN ( [Month] ) ), ALL ( TableName ) )

推荐阅读