Filtern von Daten in DAX-Formeln

Wichtig :  Dieser Artikel wurde maschinell übersetzt. Bitte beachten Sie den Haftungsausschluss. Die englische Version des Artikels ist als Referenz hier verfügbar: hier.

In diesem Abschnitt beschreibt das Erstellen von Filtern in Formeln Data Analysis Expressions (DAX). Sie können Filter innerhalb von Formeln, um die Werte aus den Quelldaten einzuschränken, die in Berechnungen verwendet werden, erstellen. Hierzu angeben einer Tabelle als Eingabe in die Formel, und klicken Sie dann Definieren eines Filterausdrucks. Der Filter-Ausdruck, die, den Sie bereitstellen, wird verwendet, um die Daten Abfragen und nur eine Teilmenge der Quelldaten zurückzugeben. Der dynamisch jedes Mal Filter, dass Sie das Ergebnis der Formel, je nach den aktuellen Kontext Ihrer Daten aktualisieren.

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" [Menge] > 5 & &
'ResellerSales_USD' [ProductStandardCost_USD] > 100),
'ResellerSales_USD' [SalesAmt]
)

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

  • Der zweite Teil der Formel, teilt FILTER(table, expression),SUMX welche Daten zur Verfügung. SUMX erfordert eine Tabelle oder ein Ausdruck, der in einer Tabelle ergibt. Hier verwenden alle Daten in einer Tabelle verwenden, Sie die Funktion FILTER um anzugeben, welche Zeilen aus der Tabelle verwendet werden.

    Der Filterausdruck besteht aus zwei Teilen: der erste Teil gibt den Namen der Tabelle der Filters gilt. Die zweite Komponente definiert einen Ausdruck als Bedingung Filter verwenden. In diesem Fall sind Sie Wiederverkäufern filtern, die mehr als 5 Einheiten und Produkten, die mehr als 100 € Kosten verkauft. Der Operator & &, ist ein logisches AND, was bedeutet, dass beide Teile der Bedingung sein müssen, damit die Zeile der gefilterten Teilmenge gehören soll.

  • 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 FILTER, die eine Tabelle zurückgeben, die Tabelle oder die Zeilen nicht direkt zurückgeben, sondern stets in eine andere Funktion eingebettet sind. Weitere Informationen zur Funktion FILTER und zu anderen Funktionen, die zum Filtern verwendet werden, sowie weitere 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 eine eindeutige Menge von Werten aus einer anderen Tabelle oder Spalte zurückgeben. Dies kann nützlich sein, wenn Sie die Anzahl von eindeutigen Werten in einer Spalte zählen oder eine Liste von eindeutigen Werten für andere Vorgänge verwenden möchten. DAX stellt zwei Funktionen zum Zurückgeben von eindeutigen Werten bereit: DISTINCT-Funktion und VALUES-Funktion.

  • 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.

  • VALUES-Funktion gibt außerdem eine Liste mit eindeutigen Werten, aber es gibt auch unbekannte Element. Dies ist nützlich, wenn Sie die Werte aus zwei Tabellen verwenden, die durch eine Beziehung verknüpft sind, und ein Wert ist, fehlt in einer Tabelle und in anderen präsentieren. Weitere Informationen zu unbekannten 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 eine DAX-Formel in einer PivotTable oder PivotChart hinzufügen, können das Ergebnis der Formel nach dem Kontext beeinflusst. Wenn Sie in einer Tabelle Power Pivot arbeiten, ist der Kontext der aktuellen Zeile und die zugehörigen Werte. Wenn Sie in einem PivotTable- oder PivotChart-arbeiten, bedeutet im Kontext der festlegen oder eine Teilmenge der Daten, die von JOIN-Operationen wie segmentieren oder Filtern definiert ist. Das Design der PivotTable oder PivotChart wendet eine auch eigenen Kontext. Wenn Sie eine PivotTable, in dem Umsätze nach Region und Jahr gruppiert erstellen, werden nur die Daten, die für diese Bereiche und Jahren gilt beispielsweise in der PivotTable. Daher sind keine Maßnahmen, die Sie in der PivotTable hinzufügen im Kontext der Spalten- und Zeilenüberschriften sowie alle Filter in der Formel Measure 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 mit der ALL -Funktion können Sie keine der Filter, die zuvor angewendet wurden, außer Kraft setzen und alle Zeilen in der Tabelle für die Funktion, die die aggregate oder eine andere Operation durchführt zurückgeben. Wenn Sie eine oder mehrere Spalten statt in einer Tabelle als Argumente für ALLverwenden, gibt die Funktion ALL alle Zeilen, die alle Kontextfilter ignorieren.

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 (Sales [Amount]) / SUMX (Sales [Amount], FILTER (Umsatz, ALL(Products)))

  • 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 ALL-Funktion überschreibt alle Filter, die in der Tabelle Products angewendet werden können.

Weitere Informationen und ausführliche Beispiele hierzu finden Sie unter ALL-Funktion.

Überschreiben bestimmter Filter mit der Funktion ALLEXCEPT

Mit der Funktion ALLEXCEPT werden ebenfalls vorhandene Filter überschrieben, Sie können jedoch angeben, dass einige der vorhandenen Filter beibehalten werden sollen. Über die Spaltennamen, die Sie als Argumente für die Funktion ALLEXCEPT verwenden, geben Sie an, welche Spalten weiterhin gefiltert werden sollen. Wenn Sie die Filter für die meisten, aber nicht für alle Spalten überschreiben möchten, ist die Funktion ALLEXCEPT besser geeignet als die Funktion ALL. Die Funktion ALLEXCEPT ist besonders nützlich, wenn Sie PivotTables erstellen, in denen möglicherweise nach vielen unterschiedlichen Spalten gefiltert wird, und Sie die Werte steuern möchten, die in der Formel verwendet werden. Weitere Informationen und ein ausführlicheres Beispiel für die Verwendung von ALLEXCEPT in einer PivotTable finden Sie unter ALLEXCEPT-Funktion.

Seitenanfang

Hinweis : Haftungsausschluss für maschinelle Übersetzungen: Dieser Artikel wurde mithilfe eines Computersystems und ohne jegliche Bearbeitung durch Personen übersetzt. Microsoft bietet solche maschinellen Übersetzungen als Hilfestellung für Benutzer ohne Englischkenntnisse an, damit Sie von den Informationen zu Produkten, Diensten und Technologien von Microsoft profitieren können. Da es sich bei diesem Artikel um eine maschinelle Übersetzung handelt, enthält er möglicherweise Fehler in Bezug auf (Fach-)Terminologie, Syntax und/oder Grammatik.

Teilen Facebook Facebook Twitter Twitter E-Mail E-Mail

War diese Information hilfreich?

Sehr gut. Noch anderes Feedback?

Was können wir verbessern?

Vielen Dank für Ihr Feedback!

×