Excel DAX - Durchführen komplexer Berechnungen

DAX-Formeln können komplexe Berechnungen durchführen, die benutzerdefinierte Aggregationen, Filterung und die Verwendung von bedingten Werten umfassen. Mit DAX können Sie Folgendes tun:

  • Erstellen Sie benutzerdefinierte Berechnungen für eine PivotTable.
  • Wenden Sie einen Filter auf eine DAX-Formel an.
  • Entfernen Sie Filter selektiv, um ein dynamisches Verhältnis zu erstellen.
  • Verwenden Sie einen Wert aus einer äußeren Schleife.

Erstellen von benutzerdefinierten Berechnungen für eine PivotTable

DAX-Funktionen CALCULATE und CALCULATETABLE sind leistungsstark und flexibel. Sie sind nützlich, um berechnete Felder zu definieren. Mit diesen DAX-Funktionen können Sie den Kontext ändern, in dem die Berechnung durchgeführt wird. Sie können auch die Art der Aggregation oder der mathematischen Operation anpassen, die ausgeführt werden soll.

CALCULATE-Funktion

BERECHNEN (<Ausdruck>, [<Filter1>], [<Filter2>]…)

Die Funktion CALCULATE wertet den angegebenen Ausdruck in einem Kontext aus, der durch null oder mehr angegebene Filter geändert wird.

Wenn Ihre Daten gefiltert wurden, ändert die Funktion BERECHNEN den Kontext, in dem die Daten gefiltert werden, und wertet den Ausdruck in dem neuen Kontext aus, den Sie durch die Filter angeben. Das heißt, alle vorhandenen Filter in der angegebenen Spalte werden entfernt und stattdessen der im Filterargument verwendete Filter angewendet.

Beispiel

Angenommen, Sie möchten den Prozentsatz der sportlich gefilterten Medaillen nach Ländernamen anzeigen. Bei Ihrer Berechnung sollte der Prozentwert den Filter überschreiben, den Sie in der PivotTable für Land anwenden.

  • Definieren Sie ein berechnetes Feld - Prozentsatz der Medaillenanzahl, wie im folgenden Screenshot gezeigt.

Bei dieser DAX-Formel werden alle Zeilen in der Ergebnistabelle in der Funktion BERECHNEN berücksichtigt, wobei der Filter die Funktion ALL enthält. Auf diese Weise haben Sie die Gesamtzahl im Nenner.

Ihre PivotTable wird wie im folgenden Screenshot gezeigt.

Im obigen Screenshot wird Land nach USA gefiltert und die Top 18-Werte werden in der PivotTable angezeigt. Als Nächstes können Sie Werte in der PivotTable dynamisch filtern. Die Berechnungen werden jedoch durch die von Ihnen verwendete benutzerdefinierte DAX-Formel korrekt sein.

Die Funktion CALCULATETABLE nimmt eine Wertetabelle und führt dieselbe Aktion aus wie die Funktion CALCULATE.

Filtern von Daten in Formeln

Sie können Filter in DAX-Formeln erstellen, um die Werte aus den Quelldaten zur Verwendung in Berechnungen auszuwählen. Sie können dies tun, indem Sie einen Filterausdruck definieren und ihn zusammen mit der Tabelle verwenden, die eine Eingabe für die DAX-Formel ist.

Mit dem Filterausdruck können Sie eine Teilmenge der Quelldaten abrufen. Der Filter wird jedes Mal dynamisch angewendet, wenn Sie die Ergebnisse der DAX-Formel aktualisieren. Dies hängt vom aktuellen Kontext Ihrer Daten ab und Sie können sich auf genaue und erwartete Ergebnisse verlassen.

Der Filterausdruck enthält normalerweise eine DAX-Filterfunktion, die nur ausgewählte Zeilen der Tabelle zurückgibt, die dann als Argument für eine andere DAX-Funktion verwendet werden können, die Sie für die Datenaggregation verwenden.

Beispiel

Der folgende Screenshot zeigt die Definition eines berechneten Feldes, das nur für den Sommersport die Medaillenzahl angibt.

Mit diesem berechneten Feld sieht die PivotTable wie im folgenden Screenshot gezeigt aus.

Wie Sie sehen können, stimmen die Werte in der PivotTable auf der rechten Seite mit dem neu berechneten Feld mit denen in der PivotTable auf der linken Seite überein, wobei der Filter für das Feld Saison explizit angewendet wird.

Note - DAX-Filter- und Wertfunktionen geben eine Tabelle zurück, geben jedoch niemals die Tabelle oder Zeilen direkt an das Datenmodell zurück und sind daher immer in eine andere DAX-Funktion eingebettet.

Einzelheiten zu diesen DAX-Funktionen finden Sie im Kapitel - DAX-Filterfunktionen.

Dynamisches Hinzufügen und Entfernen von Filtern

DAX-Formeln, die Sie in einer PivotTable verwenden, können vom PivotTable-Kontext beeinflusst werden. Sie können den Kontext jedoch selektiv ändern, indem Sie Filter hinzufügen oder entfernen. Mit den DAX-Funktionen ALL und ALLEXCEPT können Sie die Zeilen unabhängig vom PivotTable-Kontext dynamisch auswählen.

Darüber hinaus können Sie die DAX-Funktionen DISTINCT und VALUES verwenden, um unterschiedliche Werte zurückzugeben.

Verwenden eines Werts aus einer äußeren Schleife

Sie können einen Wert aus einer vorherigen Schleife verwenden, um eine Reihe verwandter Berechnungen mit der DAX EARLIER-Funktion zu erstellen. Diese DAX-Funktion unterstützt bis zu zwei Ebenen verschachtelter Schleifen.