PowerBI. Две, по-видимому, равные вычисленные меры на самом деле разные. почему?

#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"
)