Zu Hauptinhalt springen

Filtern von Daten in DAX-Formeln

Hinweis: Wir möchten Ihnen die aktuellsten Hilfeinhalte so schnell wie möglich in Ihrer eigenen Sprache bereitstellen. Diese Seite wurde automatisiert übersetzt und kann Grammatikfehler oder Ungenauigkeiten enthalten. Unser Ziel ist es, Ihnen hilfreiche Inhalte bereitzustellen. Teilen Sie uns bitte über den Link am unteren Rand dieser Seite mit, ob die Informationen für Sie hilfreich sind. Hier finden Sie den englischen Artikel als Referenz.

In diesem Abschnitt wird beschrieben, wie Sie Filter in DAX-Formeln (Data Analysis Expressions) erstellen. Sie können Filter in Formeln erstellen, um die Werte aus den Quelldaten einzuschränken, die in Berechnungen verwendet werden. Geben Sie dazu eine Tabelle als Eingabe für die Formel an, und definieren Sie dann einen Filterausdruck. Der von Ihnen bereitgestellte Filterausdruck wird verwendet, um die Daten abzufragen und nur eine Teilmenge der Quelldaten zurückzugeben. Der Filter wird jedes Mal dynamisch angewendet, wenn die Ergebnisse der Formel aktualisiert werden, je nach dem aktuellen Kontext Ihrer Daten.

Inhalt dieses Artikels

Erstellen eines Filters für eine in einer Formel verwendete Tabelle

Filter, die Duplikate entfernen

Wie sich der Kontext auf Filter auswirkt

Entfernen von Filtern

Überschreiben aller Filter mit der Funktion ALL

Überschreiben bestimmter Filter mit der Funktion ALLEXCEPT

Erstellen eines Filters für eine in einer Formel verwendete Tabelle

Sie können einen Filter in einer Formel anwenden, für die eine Tabelle als Eingabe verwendet wird. Statt einen Tabellennamen einzugeben, verwenden Sie die FILTER-Funktion, um eine Teilmenge der Zeilen aus der angegebenen Tabelle zu definieren. Anschließend wird diese Teilmenge an eine andere Funktion für Vorgänge wie etwa benutzerdefinierte Aggregationen übergeben.

Nehmen Sie beispielsweise an, Sie haben eine Tabelle mit Bestellinformationen zu Wiederverkäufern, und Sie möchten berechnen, wie viel jeder Wiederverkäufer verkauft hat. Allerdings soll der jeweilige Umsatzbetrag nur für die Wiederverkäufer angezeigt werden, die mehrere Einheiten Ihrer höherwertigen Produkte verkauft haben. Die folgende Formel zeigt auf Grundlage der DAX-Beispielarbeitsmappe ein Beispiel dafür, wie Sie diese Berechnung erstellen können, wenn Sie einen Filter verwenden:

= SUMX (
     FILTER (' ResellerSales_USD ', ' ResellerSales_USD ' [Quantity] > 5
&&      ' ResellerSales_USD ' [ProductStandardCost_USD] > 100)
     ' ResellerSales_USD ' [SalesAmt]
     )

  • Der erste Teil der Formel gibt eine der Power Pivot-Aggregationsfunktionen an, die eine Tabelle als Argument annimmt. SUMX berechnet eine Summe für eine Tabelle.

  • Im zweiten Teil der Formel teilt FILTER(table, expression),SUMX mit, welche Daten verwendet werden sollen. SUMX erfordert eine Tabelle oder einen Ausdruck, der zu einer Tabelle führt. Statt alle Daten in einer Tabelle zu verwenden, verwenden Sie hier die Funktion FILTER , um anzugeben, welche der Zeilen aus der Tabelle verwendet werden sollen.

    Der Filterausdruck besteht aus zwei Teilen: der erste Teil benennt die Tabelle, auf die der Filter angewendet wird. Der zweite Teil definiert einen Ausdruck, der als Filterbedingung verwendet werden soll. In diesem Fall filtern Sie nach Wiederverkäufern, die mehr als 5 Einheiten und Produkte verkauft haben, die mehr als $100 Kosten. Der Operator, &&, ist ein logischer Operator und gibt an, dass beide Teile der Bedingung wahr sein müssen, damit die Zeile der gefilterten Teilmenge gehört.

  • Im dritten Teil der Formel wird für die Funktion SUMX angegeben, welche Werte summiert werden sollen. In diesem Fall wird nur der Umsatzbetrag (SalesAmt) verwendet.

    Beachten Sie, dass Funktionen, wie z. b. "FILTER", die eine Tabelle zurückgeben, die Tabelle oder Zeilen nie direkt zurückgeben, aber immer in eine andere Funktion eingebettet sind. Weitere Informationen zu filtern und anderen Funktionen, die für das Filtern verwendet werden, einschließlich weiterer Beispiele, finden Sie unter Filterfunktionen (DAX).

    Hinweis: Der Filterausdruck wird durch den Kontext beeinflusst, in dem er verwendet wird. Wenn Sie beispielsweise einen Filter in einem Measure verwenden, und das Measure wird in einer PivotTable oder einem PivotChart verwendet, unterliegt die Teilmenge der Daten, die zurückgegeben werden, möglicherweise zusätzlichen Filtern oder Datenschnitten, die der Benutzer in der PivotTable angewendet hat. Weitere Informationen zum Kontext finden Sie unter Kontext in DAX-Formeln.

Filter, die Duplikate entfernen

Zusätzlich zum Filtern nach bestimmten Werten können Sie einen eindeutigen Satz von Werten aus einer anderen Tabelle oder Spalte zurückgeben. Dies ist hilfreich, wenn Sie die Anzahl der eindeutigen Werte in einer Spalte zählen oder eine Liste mit eindeutigen Werten für andere Vorgänge verwenden möchten. DAX stellt zwei Funktionen für die Rückgabe unterschiedlicher Werte bereit: Distinct-Funktion und- Werte.

  • Von der Funktion DISTINCT wird eine einzelne Spalte ausgewertet, die Sie als Argument für die Funktion angeben, und eine neue Spalte zurückgegeben, die nur die eindeutigen Werte enthält.

  • Die VALUES-Funktion gibt außerdem eine Liste mit eindeutigen Werten zurück, gibt aber auch das unbekannte Element zurück. Dies ist hilfreich, wenn Sie Werte aus zwei Tabellen verwenden, die von einer Beziehung miteinander verknüpft sind, und ein Wert in einer Tabelle fehlt und im anderen vorhanden ist. Weitere Informationen über das unbekannte Element finden Sie unter Kontext in DAX-Formeln.

Von beiden dieser Funktionen wird eine komplette Spalte mit Werten zurückgegeben. Daher werden diese Funktionen dazu verwendet, eine Liste mit Werten abzurufen, die anschließend an eine andere Funktion übergeben wird. Sie können beispielsweise mithilfe der folgenden Formel anhand des eindeutigen Product Keys eine Liste der unterschiedlichen Produkte abrufen, die von einem bestimmten Wiederverkäufer verkauft wurden, und anschließend die in der Liste enthaltenen Produkte mit der Funktion COUNTROWS zählen:

= COUNTROWS (DISTINCT (' ResellerSales_USD ' [ProductKey]))

Seitenanfang

Wie sich der Kontext auf Filter auswirkt

Wenn Sie einer PivotTable oder einem PivotChart eine DAX-Formel hinzufügen, können die Ergebnisse der Formel durch den Kontext beeinflusst werden. Wenn Sie in einer Power Pivot-Tabelle arbeiten, ist der Kontext die aktuelle Zeile und deren Werte. Wenn Sie in einer PivotTable oder einem PivotChart arbeiten, bedeutet der Kontext die Gruppe oder Teilmenge von Daten, die durch Vorgänge wie segmentieren oder Filtern definiert wird. Der Entwurf des PivotTable-oder PivotChart-Layouts stellt auch einen eigenen Kontext dar. Wenn Sie beispielsweise eine PivotTable erstellen, in der Umsätze nach Region und Jahr gruppiert werden, werden in der PivotTable nur die Daten angezeigt, die für diese Regionen und Jahre gelten. Daher werden alle Measures, die Sie der PivotTable hinzufügen, im Kontext der Spalten-und Zeilenüberschriften sowie aller Filter in der Measure-Formel berechnet.

Weitere Informationen hierzu finden Sie unter Kontext in DAX-Formeln.

Seitenanfang

Entfernen von Filtern

Beim Arbeiten mit komplexen Formeln möchten Sie möglicherweise genau wissen, wie die aktuellen Filter funktionieren, oder den Filterteil der jeweiligen Formel ändern. DAX stellt mehrere Funktionen bereit, mit denen Sie Filter entfernen und steuern können, welche Spalten als Teil des aktuellen Filterkontexts beibehalten werden. Dieser Abschnitt enthält eine Übersicht, wie sich diese Funktionen auf Ergebnisse in einer Formel auswirken.

Überschreiben aller Filter mit der Funktion ALL

Sie können die ALL -Funktion verwenden, um alle zuvor angewendeten Filter außer Kraft zu setzen und alle Zeilen in der Tabelle an die Funktion zurückzugeben, die das Aggregat oder einen anderen Vorgang ausführt. Wenn Sie eine oder mehrere Spalten anstelle einer Tabelle als Argumente für ALLverwenden, gibt die Funktion ALL alle Zeilen zurück, wobei alle Kontextfilter ignoriert werden.

Hinweis: Wenn Sie mit der Terminologie für relationale Datenbanken vertraut sind, können Sie sich die Funktion ALL als Element vorstellen, von dem die natürliche linke äußere Verknüpfung aller Tabellen generiert wird.

Angenommen, Sie haben die Tabellen "Sales" und "Products" und möchten eine Formel erstellen, die die Summe der Umsätze für das aktuelle Produkt geteilt durch die Umsätze aller Produkte berechnet. Wird die Formel in einem Measure verwendet, müssen Sie berücksichtigen, dass der Benutzer der PivotTable möglicherweise einen Datenschnitt verwendet, um über die Produktnamen in den Zeilen nach einem bestimmten Produkt zu filtern. Sie müssen daher die Funktion ALL hinzufügen, um alle Filter zu überschreiben, sodass der tatsächliche Wert des Nenners unabhängig von Filtern oder Datenschnitten ermittelt wird. Die folgende Formel ist ein Beispiel, wie ALL verwendet werden kann, um alle Auswirkungen vorheriger Filter zu überschreiben:

= Summe (Umsätze [Betrag])/SUMX (Umsätze [Betrag], FILTER (Umsätze; alle (Produkte)))

  • Im ersten Teil der Formel, SUM (Sales[Amount]), wird der Zähler berechnet.

  • Für diese Summe wird der aktuelle Kontext berücksichtigt. Das heißt: Wenn Sie die Formel in eine berechnete Spalte einfügen, wird der Zeilenkontext angewendet, und wenn Sie die Formel als Measure in eine PivotTable einfügen, werden alle Filter angewendet, die in der PivotTable (dem Filterkontext) angewendet werden.

  • Der zweite Teil der Formel berechnet den Nenner. Die Funktion ALL überschreibt alle Filter, die auf die Products -Tabelle angewendet werden können.

Weitere Informationen einschließlich detaillierter Beispiele finden Sie unter All-Funktion.

Überschreiben bestimmter Filter mit der Funktion ALLEXCEPT

Die allEXCEPT-Funktion überschreibt auch vorhandene Filter, Sie können jedoch angeben, dass einige der vorhandenen Filter beibehalten werden sollen. Die Spalten, die Sie als Argumente für die allEXCEPT-Funktion angeben, legen fest, welche Spalten weiterhin gefiltert werden sollen. Wenn Sie die Filter von den meisten Spalten außer Kraft setzen möchten, ist allEXCEPT praktischer als alle. Die allEXCEPT-Funktion ist besonders hilfreich, wenn Sie PivotTables erstellen, die möglicherweise in vielen verschiedenen Spalten gefiltert werden, und Sie die Werte steuern möchten, die in der Formel verwendet werden. Weitere Informationen, einschließlich eines detaillierten Beispiels zur Verwendung von allEXCEPT in einer PivotTable, finden Sie unter ALLexcept-Funktion.

Seitenanfang

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Office Insider werden

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×