ISFILTERED-Funktion (DAX)
Gibt TRUE zurück, wenn columnName direkt gefiltert wird. Wenn es in der Spalte keinen Filter gibt oder wenn die Filterung ausgeführt wird, da eine andere Spalte in derselben Tabelle oder in einer verknüpften Tabelle gefiltert wird, gibt die Funktion FALSE zurück.
Syntax
ISFILTERED(<columnName>)
Parameter
- columnName
Der Name einer vorhandenen Spalte mit Standard-DAX-Syntax. Kann kein Ausdruck sein.
Rückgabewert
TRUE, wenn columnName direkt gefiltert wird.
Hinweise
columnName gilt als direkt gefiltert, wenn der oder die Filter für die Spalte angewendet werden; eine Spalte gilt als kreuzgefiltert, wenn ein auf eine andere Spalte in derselben oder in einer verknüpften Tabelle angewendete Filter sich durch die Filterung auch auf columnName in der Spalte auswirkt.
Die verwandte Funktion ISCROSSFILTERED-Funktion (DAX) gibt TRUE zurück, wenn columnName oder eine andere Spalte in derselben oder in der verknüpften Tabelle gefiltert wird.
Beispiel
Im folgenden Beispiel werden ein Measure erstellt und verschiedene Szenarien präsentiert, um das Verhalten von ISFILTERED() zu erläutern. Die Szenarien können durch Herunterladen des Arbeitsblattes Data Analysis Expressions (DAX) Sample Data verfolgt werden.
Erstellen Sie zuerst das folgende Measure [Is ProductName Filtered directly] in der Tabelle [Product].
=ISFILTERED(Product[ProductName])
Grundlegendes zu ISFILTERED():
Nachdem Sie das Measure erstellt haben, sollte die PivotTable anzeigen, dass [Is ProductName Filtered directly] FALSE ist, da der Ausdruck überhaupt nicht gefiltert wird. Das Ergebnis sollte in etwa so aussehen:
Is ProductName Filtered directly
FALSE
Wenn in der PivotTable nichts angezeigt wird, ziehen Sie [Is ProductName Filtered directly] in das Feld Werte.
Ziehen Sie ProductCategory[ProductCategoryName] in das Feld Zeilenbezeichnungen; alle Werte sollten immer noch FALSE sein und die Tabelle ungefähr wie folgt aussehen:
Zeilenbezeichnungen
Is ProductName Filtered directly
Accessories
FALSE
Bikes
FALSE
Clothing
FALSE
Components
FALSE
FALSE
Gesamtsumme
FALSE
Die Tabelle enthält deswegen Werte von FALSE, da ProductCategory[ProductCategoryName] indirekt Product[ProductName] filtert oder kreuzfiltert, jedoch kein direkter Filter für die Spalte ist.
Ziehen Sie Product[Status] in das Feld Spaltenbezeichnungen; alle Werte sollten immer noch FALSE sein und die Tabelle sollte etwa wie folgt aussehen:
Is ProductName Filtered directly
Spaltenbezeichnungen
Zeilenbezeichnungen
Current
Gesamtsumme
Accessories
FALSE
FALSE
FALSE
Bikes
FALSE
FALSE
FALSE
Clothing
FALSE
FALSE
FALSE
Components
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Gesamtsumme
FALSE
FALSE
FALSE
Die Tabelle enthält immer noch viele Werte von FALSE, da Product[Status] nicht direkt Product[Name] filtert.
Der letzte Schritt in diesem Prozess ist das Ziehen von Product[Name] in das Feld Berichtsfilter. An diesem Punkt sollte sich nichts ändern. Sobald Sie jedoch einen Produktnamen auswählen, sollten sich die Tabellenwerte in TRUE ändern. Abhängig vom ausgewählten Produkt sollte die Tabelle wie folgt aussehen:
ProductName
Mountain-400-W Silver, 38
Is ProductName Filtered directly
Spaltenbezeichnungen
Zeilenbezeichnungen
Current
Gesamtsumme
Accessories
TRUE
TRUE
Bikes
TRUE
TRUE
Clothing
TRUE
TRUE
Components
TRUE
TRUE
TRUE
TRUE
Gesamtsumme
TRUE
TRUE
Sie können also mit ISFILTERED() bestimmen, ob columnName direkt in dem Kontext gefiltert wird, in dem der Ausdruck ausgewertet wird.
In diesem Beispiel wird das DAX_AdventureWorks-Beispielarbeitsblattmodell verwendet.