Funkcja ISFILTERED (język DAX)
Zwraca wartość TRUE, gdy kolumna columnName jest bezpośrednio filtrowana. Jeśli w kolumnie nie jest stosowany filtr lub filtrowanie jest wykonywane z powodu filtrowania innej kolumny w tej samej lub powiązanej tabeli, funkcja zwraca wartość FALSE.
Składnia
ISFILTERED(<columnName>)
Parametry
- columnName
Nazwa istniejącej kolumny utworzona z użyciem standardowej składni języka DAX. Nie może być wyrażeniem.
Wartość zwracana
TRUE, gdy kolumna columnName jest filtrowana bezpośrednio.
Uwagi
Kolumna columnName jest traktowana jako filtrowana bezpośrednio, gdy jest do niej stosowany filtr lub filtry; kolumna jest traktowana jako filtrowana pośrednio, gdy filtr stosowany do innej kolumny w tej samej lub powiązanej tabeli ma wpływ na kolumnę columnName, czyli filtruje także tę kolumnę.
Funkcja pokrewna ISCROSSFILTERED (Funkcja ISCROSSFILTERED (język DAX)) zwraca wartość TRUE, gdy jest filtrowana kolumna columnName albo inna kolumna w tej samej lub powiązanej tabeli.
Przykład
W poniższym przykładzie jest tworzona miara, a następnie są prezentowane różne scenariusze w celu wyjaśnienia zasady działania funkcji ISFILTERED(). Z tych scenariuszy można skorzystać, pobierając arkusz z przykładowymi danymi dla języka DAX (Data Analysis Expressions).
Najpierw należy utworzyć miarę [Czy kolumna ProductName jest filtrowana bezpośrednio] w tabeli [Product].
=ISFILTERED(Product[ProductName])
Opis funkcji ISFILTERED():
Po utworzeniu miary w tabeli przestawnej powinna być widoczna informacja, że miara [Czy kolumna ProductName jest filtrowana bezpośrednio] ma wartość FALSE, ponieważ wyrażenie w ogóle nie jest filtrowane. Wynik na tym etapie powinien być podobny do następującego:
Czy kolumna ProductName jest filtrowana bezpośrednio
FALSE
Jeśli w tabeli przestawnej nie są wyświetlane dane, przeciągnij miarę [Czy kolumna ProductName jest filtrowana bezpośrednio] do pola Wartości.
Przeciągnij kolumnę ProductCategory[ProductCategoryName] do pola Etykiety wierszy; wszystkie wartości nadal powinny być równe FALSE, a tabela powinna przypominać następującą tabelę:
Etykiety wierszy
Czy kolumna ProductName jest filtrowana bezpośrednio
Accessories
FALSE
Bikes
FALSE
Clothing
FALSE
Components
FALSE
FALSE
Suma końcowa
FALSE
Tabela zawiera wartości FALSE, ponieważ kolumna ProductCategory[ProductCategoryName] filtruje pośrednio kolumnę Product[ProductName], ale nie stanowi bezpośredniego filtru dla tej kolumny.
Przeciągnij kolumnę Product[Status] do pola Etykiety kolumn; wszystkie wartości nadal powinny być równe FALSE, a tabela powinna przypominać następującą tabelę:
Czy kolumna ProductName jest filtrowana bezpośrednio
Etykiety kolumn
Etykiety wierszy
Bieżąca
Suma końcowa
Accessories
FALSE
FALSE
FALSE
Bikes
FALSE
FALSE
FALSE
Clothing
FALSE
FALSE
FALSE
Components
FALSE
FALSE
FALSE
FALSE
Fałsz
FALSE
Suma końcowa
FALSE
FALSE
FALSE
Tabela nadal zawiera wiele wartości FALSE, ponieważ kolumna Product[Status] nie filtruje bezpośrednio kolumny Product[Name].
Ostatnim krokiem tego procesu jest przeciągnięcie kolumny Product[Name] do pola Filtr raportów. W tym punkcie nie powinny zajść żadne zmiany, jednak po wybraniu nazwy produktu wartości w tabeli powinny zostać zmienione na TRUE. W zależności od wybranego produktu tabela powinna wyglądać podobnie do następującej:
ProductName
Mountain-400-W Silver, 38
Czy kolumna ProductName jest filtrowana bezpośrednio
Etykiety kolumn
Etykiety wierszy
Bieżąca
Suma końcowa
Accessories
TRUE
TRUE
Bikes
TRUE
TRUE
Clothing
TRUE
TRUE
Components
TRUE
TRUE
TRUE
TRUE
Suma końcowa
TRUE
TRUE
Wniosek jest taki, że funkcja ISFILTERED() umożliwia określenie, czy kolumna określona przez argument columnName jest filtrowana bezpośrednio w kontekście, w którym jest obliczane wyrażenie.
W tym przykładzie jest używany model z przykładowego arkusza kalkulacyjnego DAX_AdventureWorks.
Zobacz także
Odwołanie
Funkcja ISCROSSFILTERED (język DAX)