DAX — ALLEXCEPT против ВСЕХ ЗНАЧЕНИЙ

#powerbi #dax

#powerbi #dax

Вопрос:

В этом видео: https://youtu.be/teYwjHkCEm0

Говорят, что ALLEXCEPT — это не то же самое, что ВСЕ и ЗНАЧЕНИЯ. Далее он говорит, что — для контекста фильтра, имеющего CountryRegion, это не имеет никакого значения. Но если на континенте был фильтр, то оба они не эквивалентны. Что именно происходит в случае Continent?

введите описание изображения здесь

Ответ №1:

Если единственный существующий фильтр находится на Клиенте [Континенте], то

 ALLEXCEPT( Customer, Customer[CountryRegion] ) 
 

просто удаляет все существующие фильтры из Customers таблицы.

В

 ALL( Customer ),
VALUES( Customer[CountryRegion] )
 

сначала сохраняются те VALUES( Customer[CountryRegion] ) , которые находятся в подмножестве Customer таблицы, полученном в результате фильтра на Континенте (то CountryRegion есть s из выбранных continent в данный момент s), затем ALL( Customer ) модификатор filter удаляет существующий фильтр для всей Customer таблицы, и после этого VALUES( Customer[CountryRegion] ) применяется фильтр, который был оценен ранее. В результате получается, что файл CountryRegion «перекрестно фильтруется» Continent .

это также объясняется в этой статье с использованием ALLEXCEPT по сравнению со ВСЕМИ и-ЗНАЧЕНИЯМИ