Константа DAX против ссылки: константа работает, ссылка - нет - PullRequest
0 голосов
/ 29 мая 2020

У меня есть таблица, в которой я хотел бы вычислить сумму часов в первый месяц данных. У меня есть вычисляемое поле, которое динамически находит мин. месяц в таблице:

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

Это выводит 1, 2, ..., 12

Затем у меня есть поле, которое вычисляет сумму. Если я наберу stati c номер

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

, он работает. Но если я наберу ссылку на вычисляемое поле:

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

Это не так. Даже если я создам ячейку:

MinMonthTest:=1

и ссылаюсь на нее, это не сработает. Кто-нибудь знает почему?

Спасибо

1 Ответ

0 голосов
/ 29 мая 2020

Вы не можете использовать меру в простом логическом фильтре. Самый простой обходной путь - предварительно вычислить его как переменную stati c.

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 ) )
...