Udostępnij za pośrednictwem


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():

  1. 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.

  2. 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.

  3. 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].

  4. 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

  5. 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)

Funkcja FILTERS (język DAX)

Funkcja HASONEFILTER (język DAX)

Funkcja HASONEVALUE (język DAX)