Udostępnij za pośrednictwem


Praca z zachowaniem filtru wartości (wersja zapoznawcza)

Opcje zachowania filtru wartości w usłudze Power BI umożliwiają wpływ na mechanizm automatycznego filtrowania obecny w języku DAX, który występuje, gdy wiele kolumn z tej samej tabeli jest filtrowanych. To zachowanie jest nieformalnie nazywane "auto-exist".

Co to jest zachowanie filtru wartości

Gdy filtruje się wiele kolumn z tej samej tabeli, język DAX rozumie, że prawdopodobnie nie wszystkie kombinacje wartości w tych kolumnach są prawidłowe i w rezultacie automatycznie wyklucza nieprawidłowe kombinacje. Aparat języka DAX wygenerował filtr wartości połączonej, który nie tylko zwraca prawidłowe kombinacje, ale także wpływa na zmierzone obliczenia. Ustawienie zachowania filtru wartości umożliwia zmianę tego zachowania w modelu semantycznym. Możesz zdecydować, czy chcesz wyłączyć filtry wartości węglowych i zamiast tego włączyć filtry niezależnych wartości. Włączenie niezależnych filtrów wartości przez ustawienie zachowania filtru wartości na Independent (zobacz w dalszej części tego artykułu) powoduje, że wiele filtrów w tej samej tabeli jest przechowywanych oddzielnie zamiast aparatu języka DAX łączącego te filtry w jeden.

Opis zachowania filtru wartości

Podczas filtrowania wielu kolumn w tej samej tabeli bieżące zachowanie filtru wartości domyślnej przyjmuje te filtry i łączy je w jeden, biorąc pod uwagę tylko istniejące kombinacje. Rozważ następujące dwie kolumny w tej samej tabeli:

  • Rok, który zawiera wartości takie jak "2023".
  • Miesiąc, który zawiera wartości takie jak "Styczeń 2024".

Jeśli filtrujesz zarówno według kolumn Year, jak i Month, ponieważ te kolumny znajdują się w tej samej tabeli, zachowanie filtru wartości łączy filtry w jeden, ale są brane pod uwagę tylko kombinacje, które istnieją. Połączenie miesiąca styczeń 2024 r. z rokiem 2023 nie istnieje i nie zostanie uwzględnione w filtrze. Istnieją jednak sytuacje, w których wyniki są zaskakujące.

Przyjrzyjmy się przykładowi, w którym mamy katalog pokazujący dostępność kolorów dla produktów według roku. Producent tych produktów eksperymentował z tworzeniem produktów w różnych kolorach przez lata:

Zrzut ekranu przedstawiający tabelę przedstawiającą kolory produktów w 2022 r. do 2024 r.

Mamy trzy produkty, które były dostępne w różnych kolorach na przestrzeni lat. Zwróć uwagę, że w 2024 r. nie są oferowane żadne czerwone produkty. To będzie ważne nieco później. Teraz zliczmy liczbę produktów, dodając następującą miarę:

Number of Products = COUNTROWS( 'Catalog' )`

Poniższa macierz przedstawia liczbę produktów dostępnych w różnych kolorach rocznie: Zrzut ekranu przedstawiający macierz przedstawiającą liczbę produktów według roku i koloru.

Teraz dodajmy kolejną miarę, aby obliczyć łączną liczbę produktów przez wszystkie lata:

Number of Products All Years = CALCULATE ( [Number of Products], ALL ( 'Catalog'[Year] ) )

Umieśćmy te miary obok siebie i przefiltrujmy rok 2023 i tylko niebieskie i czerwone kolory (więc nie ma czarnego). Widać, że liczba produktów wynosi 4, a liczba produktów w ciągu wszystkich lat dla tych dwóch kolorów wynosi 6:

Zrzut ekranu przedstawiający tabelę przedstawiającą rok, produkt i kolor. Istnieją dwa fragmentatory, jeden ustawiony na Rok równy 2023 i jeden ustawiony na Kolor równy Niebieski i Czerwony. Miara Liczba produktów zwraca wartość 4, a miara Liczba produktów wszystkich lat zwraca wartość 6.

Jeśli zmienimy rok na 2024 r., spodziewamy się, że miara "Liczba produktów" zwróci wartość 2, ponieważ w tym roku nie ma tylko dwóch produktów niebieskich i nie ma produktów czerwonych. Ponadto spodziewalibyśmy się, że liczba produktów przez wszystkie lata nie ulegnie zmianie, ponieważ w końcu ma być obliczana przez wszystkie lata. Jednak zmiana "Liczba produktów dla wszystkich lat" z 6 do 5:

Zrzut ekranu przedstawiający tabelę przedstawiającą rok, produkt i kolor. Istnieją dwa fragmentatory, jeden ustawiony na Rok równy 2024 i jeden ustawiony na Kolor równy Niebieski i Czerwony. Miara Liczba produktów zwraca wartość 2, a miara Liczba produktów wszystkich lat zwraca wartość 5.

Liczba produktów w ciągu wszystkich lat powinna nadal być równa 6, a nie 5. Oto zachowanie filtru wartości w działaniu: łączy filtry w tej samej tabeli, usuwając kombinacje, które nie istniały. Filtry to Year = 2024 i Color = Blue lub Red. Ponieważ te dwa filtry znajdują się w tej samej tabeli, te filtry są łączone w jeden filtr, który filtruje tylko istniejące kombinacje. Ponieważ w 2024 r. nie ma żadnych czerwonych produktów, zastosowany filtr to Year = 2024 i Color = Blue. W związku z tym liczba produktów przez wszystkie lata liczy teraz tylko liczbę produktów niebieskich, a nie niebieskich lub czerwonych produktów. Spowoduje to zwrócenie wartości 5, co można potwierdzić w tabeli.

Wpływanie na zachowanie filtru wartości

To zachowanie w modelu semantycznym można kontrolować przy użyciu ustawienia Zachowanie filtru wartości w modelu semantycznym w okienku właściwości w widoku modelu:

Zrzut ekranu przedstawiający okienko właściwości w widoku modelu. Opcje zachowania filtru wartości są wyróżnione.

Dostępne są trzy opcje:

  • Automatycznie — jest to ustawienie domyślne i obecnie włącza zachowanie Coalesced. Gdy podsuniemy tę wersję zapoznawczą, nowe modele ustawione na Wartość automatyczna będą korzystać z opcji Niezależne, zostaną ogłoszone w tym czasie.
  • Independent — wymusza to filtrowanie w tej samej tabeli, które mają być oddzielone. Po ustawieniu ustawienia "Zachowanie filtru wartości" na Wartość Niezależna całkowita liczba produktów dla wszystkich lat zwraca wartość 6 zgodnie z oczekiwaniami (zobacz poniżej).
  • Coalesced — wymusza to włączenie zachowania filtru wartości dla modelu semantycznego i powoduje połączenie filtrów w tej samej tabeli w jedną. Liczba produktów przez wszystkie lata w naszym przykładzie nadal powraca do 5.

W poniższej tabeli przedstawiono efekt tego ustawienia w naszym przykładzie:

Ustawienie zachowania filtru wartości Filtry zastosowane w przykładzie Wynik przykładowej miary
Automatyczne Rok = 2024,
Kolor = niebieski
5
Niezależny Rok = 2024,
Kolor = niebieski lub czerwony
6
Łączenie Rok = 2024,
Kolor = niebieski
5

Ustawienie zachowania filtru wartości na Wartość Automatyczna oznacza, że jest ono na razie równe coalesced, ale zostanie przełączone na Niezależne dla nowych modeli semantycznych w przyszłości. Jeśli ustawisz zachowanie filtru Wartość na Niezależne, liczba produktów dla wszystkich zwraca wartość 6, zgodnie z oczekiwaniami, ponieważ filtry to Year = 2024 i Color = Blue lub Red i nie są już połączone:

Zrzut ekranu przedstawiający tabelę przedstawiającą rok, produkt i kolor. Istnieją dwa fragmentatory, jeden ustawiony na Rok równy 2024 i jeden ustawiony na Kolor równy Niebieski i Czerwony. Miara Liczba produktów zwraca wartość 2, a miara Liczba produktów wszystkich lat zwraca wartość 6.

Następne kroki

Przydatne mogą być następujące artykuły: