Freigeben über


FILTER-Funktion (DAX)

Gibt eine Tabelle zurück, die eine Teilmenge einer anderen Tabelle oder eines anderen Ausdrucks darstellt.

Syntax

FILTER(<table>,<filter>)

Parameter

Ausdruck

Definition

table

Die zu filternde Tabelle. Die Tabelle kann auch ein Ausdruck sein, der zu einer Tabelle führt.

Filter

Ein boolescher Ausdruck, der für jede Zeile der Tabelle ausgewertet wird. Beispiel: [Amount] > 0 or [Region] = "France"

Rückgabewert

Eine Tabelle, die nur die gefilterten Zeilen enthält.

Hinweise

Sie können die Anzahl von Zeilen in der verwendeten Tabelle mithilfe von FILTER reduzieren und nur bestimmte Daten in Berechnungen verwenden. FILTER wird nicht unabhängig, sondern als Funktion verwendet, die in andere Funktionen eingebettet ist, für die eine Tabelle als Argument erforderlich ist.

Beispiel

Im folgenden Beispiel wird ein Bericht zu den Internetverkäufen außerhalb der USA mithilfe eines Measures erstellt, das die Verkäufe in den USA herausfiltert und anschließend eine Aufteilung nach Kalenderjahr und Produktkategorien vornimmt. Um dieses Measure zu erstellen, filtern Sie die Tabelle "Internet Sales USD" nach "Sales Territory" und verwenden dann die gefilterte Tabelle in einer SUMX-Funktion.

In diesem Beispiel gibt der Ausdruck FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States") eine Tabelle zurück, die eine Teilmenge der Internetverkäufe abzüglich aller Zeilen darstellt, die zum Vertriebsgebiet USA gehören. Die RELATED-Funktion verknüpft den Territory-Schlüssel in der Tabelle "Internet Sales" mit "SalesTerritoryCountry" in der Tabelle "SalesTerritory".

In der folgenden Tabelle wird die Funktionsweise des Measures "NON USA Internet Sales" demonstriert. Die entsprechende Formel ist im Codeabschnitt unten angegeben. In der Tabelle werden alle Internetverkäufe mit Internetverkäufen außerhalb der USA verglichen und Verkäufe in den USA aus der Berechnung ausgeschlossen, um zu veranschaulichen, dass der Filterausdruck funktioniert.

Um diese Tabelle neu zu erstellen, fügen Sie dem Bereich Zeilenbezeichnungen der PivotTable das Feld "SalesTerritoryCountry" hinzu.

Tabelle 1. Vergleich zwischen den Gesamtverkäufen in den USA und anderen Vertriebsgebieten

Zeilenbezeichnungen

Internet Sales

Non USA Internet Sales

Australia

$4,999,021.84

$4,999,021.84

Canada

$1,343,109.10

$1,343,109.10

France

$2,490,944.57

$2,490,944.57

Germany

$2,775,195.60

$2,775,195.60

United Kingdom

$5,057,076.55

$5,057,076.55

United States

$9,389,479.79

 

Grand Total

$26,054,827.45

$16,665,347.67

In der endgültigen Berichtstabelle werden die Ergebnisse angezeigt, wenn Sie unter Verwendung des Measures "NON USA Internet Sales" eine PivotTable erstellen. Fügen Sie dem Bereich Zeilenbezeichnungen der PivotTable das Feld "CalendarYear" und dem Bereich Spaltenbezeichnungen das Feld "ProductCategoryName" hinzu.

Tabelle 2. Vergleich der Verkäufe außerhalb der USA nach Produktkategorien

Non USA Internet Sales

Spaltenbezeichnungen

 

 

 

Zeilenbezeichnungen

Accessories

Bikes

Clothing

Grand Total

2001

 

$1,526,481.95

 

$1,526,481.95

2002

 

$3,554,744.04

 

$3,554,744.04

2003

$156,480.18

$5,640,106.05

$70,142.77

$5,866,729.00

2004

$228,159.45

$5,386,558.19

$102,675.04

$5,717,392.68

Grand Total

$384,639.63

$16,107,890.23

$172,817.81

$16,665,347.67

SUMX(FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
     ,'InternetSales_USD'[SalesAmount_USD])