Tabellen-DAX-Ausdrücke

Abgeschlossen

Meistens erstellen Sie in Power BI Tabellen, indem Sie Daten aus einer externen Datenquelle in das Modell importieren. Mit Tabellenfunktionen fügen Sie stattdessen neue Tabellen basierend auf den Daten hinzu, die Sie bereits in das Modell geladen haben.

Übersicht

Mit Tabellenfunktionen können Power BI-Benutzer eine Zwischentabelle erstellen, die im Datenmodell angezeigt wird und in anderen DAX-Ausdrücken verwendet werden kann. Tabellenfunktionen sind temporäre Tabellen, die Sie verwenden können. Sie sind jedoch nicht sichtbar, da sie nicht ausgegeben werden.

FILTER, VALUES und ALL sind einige gängige, häufig in DAX-Measures verwendete Zwischentabellen.

Anwenden der FILTER-Funktion

Die FILTER-Funktion legt den Filter für eine bestimmte Tabelle fest und verwendet dann eine verkürzte Version einer Tabelle in einer Berechnung. Anders ausgedrückt, gibt sie eine Tabelle zurück, die eine Teilmenge einer anderen Tabelle oder eines anderen Ausdrucks darstellt.

Angenommen, Sie verfügen über die folgende Datentabelle:

Datentabelle, auf die im Beispiel der FILTER-Funktion verwiesen wird.

In der vorherigen Tabelle haben Sie einige Zeilen, die den Umsatz von Seattle hervorheben. Der Gesamtumsatz für Seattle im Jahr 2018 beträgt 30,13 (20,46 + 9,67). So erhalten Sie dieses Ergebnis mit der FILTER-Funktion:

2018 Sales = SUMX(
  FILTER(
    Sales,
    YEAR( Sales[SalesDate] ) = 2018
  ),
  [Price]*[Quantity]
)

Tipp

KORRELATION MIT TABLEAU: Um dieselbe Berechnung in Tableau zu erstellen, verwenden Sie die IF/THEN-Syntax: 2018 Sales = IF YEAR([SalesDate]) = 2018 THEN SUM([Price]*[Quantity]) END

Im vorherigen Codeausschnitt haben Sie zuerst die Daten für den Filterkontext abgerufen, bei dem es sich um die Faktentabelle „Sales“ handelt:

Datenvorschau der Faktentabelle „Sales“.

Als Nächstes haben Sie die Sales-Daten gefiltert, um nur die Umsätze für das Jahr 2018 einzuschließen.

Datenvorschau der Faktentabelle „Sales“ mit Hervorhebung der Umsätze im Jahr 2018.

Schließlich haben Sie den Ausdruck ausgewertet, jedoch nur für die Datensätze in der temporären Tabelle.

Datenvorschau der zur Anzeige der Umsätze in 2018 gefilterten Faktentabelle „Sales“.

Anwenden der VALUES-Funktion

VALUES gibt eine Einspaltentabelle zurück, die die unterschiedlichen Werte aus der angegebenen Tabelle oder Spalte enthält. Doppelte Werte werden entfernt, und es werden nur eindeutige Werte zurückgegeben.

Sie haben z. B. gerade eine Aufgabe bekommen, bei der Sie zeigen müssen, bei welchem Spieler in einem Sportteam noch die Begleichung einer Geldstrafe aussteht.

Im Folgenden finden Sie die Datentabelle (mit dem Namen „Team Fine Details“), die Sie verwenden:

Datentabelle, auf die im Beispiel der VALUES-Funktion verwiesen wird.

Sie müssen testen, ob es nur noch einen Spieler gibt, der seine Geldstrafe begleichen muss. Wenn ja, zeigen Sie seinen Namen an. Andernfalls wird die Meldung „more than one player“ (mehrere Spieler) angezeigt.

Sie können dies mit der VALUES-Funktion erreichen:

LastPlayer = IF(
  COUNTROWS( VALUES( 'Team Fine Details'[SportsTeam] ) ) = 1,
  VALUES( 'Team Fine Details'[PlayerName] ),
  "More than one player"
)

Tipp

KORRELATION MIT TABLEAU: So würden Sie dieselbe Berechnung in Tableau durchführen: LastPlayer = IF COUNTD([SportsTeam]) = 1 THEN [PlayerName] ELSE "More than one player" END

Dieses Measure würde in etwa wie der folgende Bericht bzw. die folgende Visualisierung aussehen:

Beispielbericht mit eingeschlossener LastPlayer-Berechnung.

Anwenden der ALL-Funktion

Die ALL-Funktion weist Power BI an, eine bestimmte Tabelle zu betrachten, alle Werte daraus zu nehmen (nicht die Tabelle zu filtern) und diese Teilmenge von Werten in einem Ausdruck zu verwenden.

Die ALL-Funktion wird häufig verwendet, um den Prozentsatz der Summe eines aggregierten Measures zu erfahren.

Betrachten Sie z. B. das Geldstrafenbetrags-Szenario im Sportteam. Ihr Vorgesetzter ist mit Ihren Ergebnissen aus der vorherigen Aufgabe zufrieden, möchte aber wissen, bei welchem Team der Prozentsatz ausstehender Geldstrafenzahlungen am höchsten ist.

Aktueller Bericht mit eingeschlossener LastPlayer-Berechnung.

Im ersten Schritt wird ein Measure für die Gesamtsumme der ausstehenden Geldstrafenzahlungen erstellt:

TotalAllFineAmount = CALCULATE( [TotalFineAmount], ALL( 'Team Fine Details'[SportsTeam] ) )

Tipp

KORRELATION MIT TABLEAU: So würden Sie dieselbe Berechnung in Tableau mithilfe des FIXED LOD-Ausdrucks durchführen. Sie aggregieren die Gesamtsumme TotalFineAmount auf Tabellenebene: TotalAllFineAmount = { FIXED : SUM([TotalFineAmount]) }

Im zweiten und letzten Schritt wird der Prozentsatz des Gesamtmeasures mithilfe der DIVIDE-Funktion erstellt:

FineAmountPercentOfTotal = DIVIDE( [TotalFineAmount], [TotalAllFineAmount] )

Tipp

KORRELATION MIT TABLEAU: So würden Sie dieselbe Berechnung in Tableau durchführen: FineAmountPercentOfTotal = SUM([TotalFineAmount]) / SUM([TotalAllFineAmount])