#powerbi #dax
#powerbi #dax
Вопрос:
В итоге я получаю следующие две вычисленные меры в Power BI, которые выглядят семантически равными, но каждый из них дает разный результат. Я хотел бы понять, почему. Как Power BI вычисляет каждую из них, чтобы они давали разные результаты?
measure1 =
VAR var1 =
CALCULATE ( [measure], table[column_1] = "some value in column 1" )
VAR var2 =
CALCULATE ( var1, table[column_2] = "some value in column 2" )
RETURN
var2
Буквально скопируйте RHS из var1 в его значение в var2.
measure2 =
VAR var2 =
CALCULATE (
CALCULATE ( [measure], table[column_1] = "some value in column 1" ),
table[column_2] = "some value in column 2"
)
RETURN
var2
Визуальное изображение, которое я использую, представляет собой матрицу, в которой находятся строки table[column_2]
, не знаю, имеет ли это значение. В любом случае я бы сказал, что эти два выражения должны быть эквивалентны… но это не так
Ответ №1:
Когда вы определяете переменную с VAR
помощью , это значение обрабатывается как константа при последующем обращении.
Следовательно, в вашем первом измерении var2
это то же var1
самое, что и, поскольку константа не изменяется путем настройки контекста фильтра с помощью CALCULATE .
Если вместо определения временной переменной вы определили var1
ее как отдельную меру, то она будет функционировать так, как вы ожидали в вашем первом примере.
В качестве примечания, вы можете использовать несколько условий, а не вложенные функции вычисления:
measure3 =
CALCULATE (
[measure],
table[column_1] = "some value in column 1",
table[column_2] = "some value in column 2"
)