Applies ToExcel für Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016 Excel 2013

In diesem Abschnitt wird beschrieben, wie Filter in DAX-Formeln (Data Analysis Expressions) erstellt werden. Sie können Filter innerhalb von Formeln erstellen, um die Werte aus den Quelldaten einzuschränken, die in Berechnungen verwendet werden. Dazu geben Sie eine Tabelle als Eingabe für die Formel an und definieren 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 dynamisch jedes Mal angewendet, wenn Sie die Ergebnisse der Formel aktualisieren, abhängig vom aktuellen Kontext Ihrer Daten.

Inhalt dieses Artikels

Erstellen eines Filters für eine Tabelle, die in einer Formel verwendet wird

Sie können Filter in Formeln anwenden, die eine Tabelle als Eingabe verwenden. Anstatt einen Tabellennamen einzugeben, verwenden Sie die FILTER-Funktion, um eine Teilmenge der Zeilen aus der angegebenen Tabelle zu definieren. Diese Teilmenge wird dann für Vorgänge wie benutzerdefinierte Aggregationen an eine andere Funktion übergeben.

Angenommen, Sie verfügen über eine Tabelle mit Daten, die Bestellinformationen zu Wiederverkäufern enthält, und Sie möchten berechnen, wie viel die einzelnen Handelspartner verkauft haben. Sie möchten jedoch den Umsatzbetrag nur für diejenigen Handelspartner anzeigen, die mehrere Einheiten Ihrer höherwertigen Produkte verkauft haben. Die folgende Formel, die auf der DAX-Beispielarbeitsmappe basiert, zeigt ein Beispiel dafür, wie Sie diese Berechnung mithilfe eines Filters erstellen können:

=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 akzeptiert. SUMX berechnet eine Summe über einer Tabelle.

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

    Der Filterausdruck umfasst zwei Teile: Der erste Teil benennt die Tabelle, auf die der Filter angewendet wird. Im zweiten Teil wird ein Ausdruck definiert, der als Filterbedingung verwendet werden soll. In diesem Fall filtern Sie nach Handelspartnern, die mehr als 5 Einheiten verkauft haben, und Nach Produkten, die mehr als 100 US-Dollar kosteten. Der Operator( &&) ist ein logischer AND-Operator, der angibt, dass beide Teile der Bedingung true sein müssen, damit die Zeile zur gefilterten Teilmenge gehört.

  • Der dritte Teil der Formel teilt der SUMX Funktion mit, welche Werte summiert werden sollen. In diesem Fall verwenden Sie nur den Umsatzbetrag.

    Beachten Sie, dass Funktionen wie FILTER, die eine Tabelle zurückgeben, die Tabelle oder Zeilen nie direkt zurückgeben, sondern immer in eine andere Funktion eingebettet sind. Weitere Informationen zu FILTER und anderen funktionen, die zum 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 in einer PivotTable oder einem PivotChart verwendet wird, kann die zurückgegebene Teilmenge von Daten durch zusätzliche Filter oder Slicer beeinflusst werden, 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 kann hilfreich sein, wenn Sie die Anzahl eindeutiger Werte in einer Spalte zählen oder eine Liste eindeutiger Werte für andere Vorgänge verwenden möchten. DAX bietet zwei Funktionen zum Zurückgeben unterschiedlicher Werte: DISTINCT-Funktion und VALUES-Funktion.

  • Die DISTINCT-Funktion untersucht eine einzelne Spalte, die Sie als Argument für die Funktion angeben, und gibt eine neue Spalte zurück, die nur die unterschiedlichen Werte enthält.

  • Die VALUES-Funktion gibt auch eine Liste eindeutiger Werte zurück, aber auch das Unknown-Element. Dies ist nützlich, wenn Sie Werte aus zwei Tabellen verwenden, die durch eine Beziehung verknüpft sind, und ein Wert in einer Tabelle fehlt und in der anderen vorhanden ist. Weitere Informationen zum Unbekannten Element finden Sie unter Kontext in DAX-Formeln.

Beide Funktionen geben eine ganze Spalte mit Werten zurück. Daher verwenden Sie die Funktionen, um eine Liste von Werten abzurufen, die dann an eine andere Funktion übergeben wird. Sie können z. B. die folgende Formel verwenden, um eine Liste der unterschiedlichen Produkte abzurufen, die von einem bestimmten Wiederverkäufer mit dem eindeutigen Product Key verkauft werden, und dann die Produkte in dieser Liste mit der Funktion COUNTROWS zu zählen:

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

Seitenanfang

Auswirkungen des Kontexts auf Filter

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

Weitere Informationen finden Sie unter Kontext in DAX-Formeln.

Seitenanfang

Entfernen von Filtern

Wenn Sie mit komplexen Formeln arbeiten, möchten Sie möglicherweise genau wissen, was die aktuellen Filter sind, oder Sie möchten den Filterteil der Formel ändern. DAX bietet mehrere Funktionen, mit denen Sie Filter entfernen und steuern können, welche Spalten als Teil des aktuellen Filterkontexts beibehalten werden. Dieser Abschnitt enthält eine Übersicht darüber, wie sich diese Funktionen auf die Ergebnisse in einer Formel auswirken.

Überschreiben aller Filter mit der ALL-Funktion

Sie können die funktion ALL 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 anstelle einer Tabelle eine oder mehrere Spalten als Argumente für ALLverwenden, gibt die ALL -Funktion alle Zeilen zurück, wobei Kontextfilter ignoriert werden.

Hinweis: Wenn Sie mit der Terminologie relationaler Datenbanken vertraut sind, können Sie sich ALL als Generieren des natürlichen linken äußeren Joins aller Tabellen vorstellen.

Angenommen, Sie verfügen über die Tabellen Sales und Products, und Sie möchten eine Formel erstellen, die die Summe der Verkäufe für das aktuelle Produkt dividiert durch den Umsatz für alle Produkte berechnet. Sie müssen berücksichtigen, dass, wenn die Formel in einem Measure verwendet wird, der Benutzer der PivotTable möglicherweise einen Slicer verwendet, um nach einem bestimmten Produkt mit dem Produktnamen in den Zeilen zu filtern. Um den true-Wert des Nenners unabhängig von Filtern oder Slicern abzurufen, müssen Sie daher die ALL-Funktion hinzufügen, um alle Filter außer Kraft zu setzen. Die folgende Formel ist ein Beispiel für die Verwendung von ALL, um die Auswirkungen vorheriger Filter zu überschreiben:

=SUMME (Sales[Amount])/SUMX(Sales[Amount], FILTER(Sales, ALL(Products)))

  • Der erste Teil der Formel, SUMME (Sales[Amount]), berechnet den Zähler.

  • Die Summe berücksichtigt den aktuellen Kontext, d. h., wenn Sie die Formel einer berechneten Spalte hinzufügen, wird der Zeilenkontext angewendet, und wenn Sie die Formel einer PivotTable als Measure hinzufügen, werden alle in der PivotTable angewendeten Filter (der Filterkontext) angewendet.

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

Weitere Informationen, einschließlich ausführlicher Beispiele, finden Sie unter ALL Function.

Überschreiben bestimmter Filter mit der ALLEXCEPT-Funktion

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 benennen, geben an, welche Spalten weiterhin gefiltert werden sollen. Wenn Sie Filter aus den meisten Spalten außer Kraft setzen möchten, ist ALLEXCEPT praktischer als ALL. Die ALLEXCEPT-Funktion ist besonders nützlich, wenn Sie PivotTables erstellen, die nach vielen verschiedenen Spalten gefiltert werden können, und Wenn Sie die werte steuern möchten, die in der Formel verwendet werden. Weitere Informationen, einschließlich eines ausführlichen Beispiels zur Verwendung von ALLEXCEPT in einer PivotTable, finden Sie unter ALLEXCEPT-Funktion.

Seitenanfang

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.