Страницы: 1
RSS
DAX Поведение аргумента фильтра Calculate, когда он переменная (таблица)
 
Доброго времени суток!
Изучаю книгу DAX, и возник вопрос, котрый уже 3 дня не могу понять, с пониманием которого прошу помочь.
1. Вопрос работы в PBI
Не могу понять, по какой причине приведенные ниже 2 меры выдают одинаковый результат
Код
Мера1
=CALCULATE (
    [Sales Amount];
    FILTER ( ALL ( 'Product'[Brand] ); 'Product'[Brand] = "Contoso" )
)
Мера2
=VAR ContosoOnly =
    FILTER ( All( 'Product'[Brand] ); 'Product'[Brand] = "Contoso" )
RETURN
    CALCULATE ( [Sales Amount]; ContosoOnly )

В Мере1 понятно, All очищает внешний контекст фильтра по бренду и записывает новый.
В Мере2  переменная ContosoOnly рассчитывается и сохраняется как таблица, когда она используется в Calculate , она является аргументом фильтра, почему эта таблица не фильтруется внешним контекстом фильтра. Как я себе надумал, возможно Calculate,свой аргумент фильтра , который является переменной, больше не подвергает вторичному контексту внешнего фильтра?
2. Делал пример в PP но там версия с Keepfilters вообще по другому себя ведет чем в PBI.
Во вложениях пожтверждение разной работы формулы с Keepfilters .
 
По первому вопросу Максим Зеленский на другом ресурсе объяснил, что переменная не будет меняться, т.к. это константа (скалярная или табличная). А keepfilters меняет не переменную а контекст.
 
По второму вопросу , такое поведение keepfilters оказалось глюком.
В прикрепленном файле глюк сохранен, при изменениях глюк пропадает.
Страницы: 1
Наверх