Freigeben über


ALL

Gilt für:Berechnete SpalteBerechnete TabelleMeasurevisuelle Berechnung

Gibt alle Zeilen in einer Tabelle oder alle Werte in einer Spalte zurück, wobei alle Filter ignoriert werden, die möglicherweise angewendet wurden. Diese Funktion ist nützlich, um Filter zu löschen und Berechnungen für alle Zeilen in einer Tabelle zu erstellen.

Syntax

ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )

Parameter

Ausdruck Definition
table Die Tabelle, nach der Filter gelöscht werden sollen.
column Die Spalte, nach der Filter gelöscht werden sollen.

Das Argument für die funktion ALL muss entweder ein Verweis auf eine Basistabelle oder ein Verweis auf eine Basisspalte sein. Tabellenausdrücke oder Spaltenausdrücke können nicht mit der ALL-Funktion verwendet werden.

Rückgabewert

Die Tabelle oder Spalte mit entfernten Filtern.

Bemerkungen

  • Diese Funktion wird nicht selbst verwendet, dient aber als Zwischenfunktion, die verwendet werden kann, um die Ergebnismenge zu ändern, über die eine andere Berechnung ausgeführt wird.

  • Das normale Verhalten für DAX Ausdrücke, die die funktion ALL() enthalten, besteht darin, dass alle angewendeten Filter ignoriert werden. Es gibt jedoch einige Szenarien, in denen dies aufgrund von auto-existnicht der Fall ist, eine DAX Technologie, die die Filterung optimiert, um die für bestimmte DAX Abfragen erforderliche Verarbeitungsmenge zu verringern. Ein Beispiel, bei dem automatisch vorhanden und ALL() unerwartete Ergebnisse liefern, ist das Filtern nach zwei oder mehr Spalten derselben Tabelle (z. B. bei Verwendung von Datenschnitten), und es gibt ein Measure für dieselbe Tabelle, die ALL() verwendet. In diesem Fall wird automatisch vorhanden sein, zusammenzuführen, die mehreren Filter in einem Filter zusammenzuführen und nur nach vorhandenen Kombinationen von Werten zu filtern. Aufgrund dieses Zusammenführungsvorgangs wird das Measure auf den vorhandenen Kombinationen von Werten berechnet, und das Ergebnis basiert auf gefilterten Werten anstelle aller Werte wie erwartet. Weitere Informationen zum automatischen Existieren und seinen Auswirkungen auf Berechnungen finden Sie in microsoft MVP Alberto Ferraris Understanding DAX Auto-Exist Artikel zu sql.bi.com.

  • In der folgenden Tabelle wird beschrieben, wie Sie die funktionen ALL und ALLEXCEPT in verschiedenen Szenarien verwenden können.

    Funktion und Verwendung Beschreibung
    ALL() Entfernt alle Filter überall. ALL() kann nur verwendet werden, um Filter zu löschen, aber keine Tabelle zurückzugeben.
    ALL(Tabelle) Entfernt alle Filter aus der angegebenen Tabelle. In Kraft, ALL(Tabelle) gibt alle Werte in der Tabelle zurück, wobei alle Filter aus dem Kontext entfernt werden, die andernfalls angewendet wurden. Diese Funktion ist nützlich, wenn Sie mit vielen Gruppierungsebenen arbeiten und eine Berechnung erstellen möchten, die ein Verhältnis eines aggregierten Werts zum Gesamtwert erstellt. Im ersten Beispiel wird dieses Szenario veranschaulicht.
    ALL (Spalte[, Spalte[, ...]]) Entfernt alle Filter aus den angegebenen Spalten in der Tabelle; Alle anderen Filter für andere Spalten in der Tabelle gelten weiterhin. Alle Spaltenargumente müssen aus derselben Tabelle stammen. Die variante ALL(Column) ist nützlich, wenn Sie die Kontextfilter für eine oder mehrere bestimmte Spalten entfernen und alle anderen Kontextfilter beibehalten möchten. Die zweiten und dritten Beispiele veranschaulichen dieses Szenario.
    ALLEXCEPT(Tabelle, Spalte1 [;Spalte2]...) Entfernt alle Kontextfilter in der Tabelle mit Ausnahme von Filtern, die auf die angegebenen Spalten angewendet werden. Dies ist eine praktische Verknüpfung für Situationen, in denen Sie die Filter für viele, aber nicht alle Spalten in einer Tabelle entfernen möchten.
  • Diese Funktion wird für die Verwendung im DirectQuery-Modus nicht unterstützt, wenn sie in berechneten Spalten oder Sicherheitsregeln auf Zeilenebene (RLS) verwendet wird.

Beispiel 1

Berechnen des Verhältniss zwischen Kategorieumsatz und Gesamtumsatz

Gehen Sie davon aus, dass Sie den Umsatz für die aktuelle Zelle in Ihrer PivotTable dividiert durch den Gesamtumsatz für alle Wiederverkäufer ermitteln möchten. Um sicherzustellen, dass der Nenner unabhängig davon, wie der PivotTable-Benutzer die Daten filtern oder gruppieren kann, identisch ist, definieren Sie eine Formel, die ALL verwendet, um die richtige Gesamtsumme zu erstellen.

In der folgenden Tabelle werden die Ergebnisse angezeigt, wenn ein neues Measure "All Reseller Sales Ratio" mithilfe der im Codeabschnitt gezeigten Formel erstellt wird. Um zu sehen, wie dies funktioniert, fügen Sie das Feld "CalendarYear" zum Zeilenbeschriftungen Bereich der PivotTable hinzu, und fügen Sie das Feld "ProductCategoryName" zum bereich Spaltenbeschriftungen hinzu. Ziehen Sie dann das Measure Alle Reseller Sales Ratioin den bereich Werte der PivotTable. Um die Ergebnisse als Prozentsätze anzuzeigen, verwenden Sie die Formatierungsfeatures von Excel, um eine Prozentzahlformatierung auf die Zellen anzuwenden, die das Measure enthalten.

Zeilenbeschriftungen Zubehör Fahrräder Kleidung Komponenten Gesamtsumme
2005 0.02% 9.10% 0.04% 0.75% 9.91%
2006 0.11% 24.71% 0,60% 4.48% 29.90%
2007 0.36% 31.71% 1.07% 6.79% 39.93%
2008 0.20% 16.95% 0.48% 2.63% 20.26%
Gesamtsumme 0.70% 82.47% 2.18% 14.65% 100.00%

Formel-

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])

Die Formel wird wie folgt erstellt:

  1. Der Zähler, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), ist die Summe der Werte in ResellerSales_USD[SalesAmount_USD] für die aktuelle Zelle in der PivotTable, wobei Kontextfilter auf CalendarYear und ProductCategoryName angewendet werden.

  2. Für den Nenner geben Sie zunächst eine Tabelle, ResellerSales_USD an, und verwenden Sie die ALL-Funktion, um alle Kontextfilter in der Tabelle zu entfernen.

  3. Anschließend verwenden Sie die funktion SUMX, um die Werte in der Spalte ResellerSales_USD[SalesAmount_USD] zu addieren. Mit anderen Worten, Sie erhalten die Summe von ResellerSales_USD[SalesAmount_USD] für alle Händlerverkäufe.

Beispiel 2

Berechnen des Verhältniss des Produktumsatzes zum Gesamtumsatz bis zum aktuellen Jahr

Gehen Sie davon aus, dass Sie eine Tabelle erstellen möchten, die den Prozentsatz des Umsatzes im Vergleich zu den Jahren für jede Produktkategorie (ProductCategoryName) anzeigt. Um den Prozentsatz für jedes Jahr über jeden Wert von ProductCategoryName zu erhalten, müssen Sie die Summe des Umsatzes für dieses bestimmte Jahr und die Produktkategorie durch die Summe des Umsatzes für dieselbe Produktkategorie in allen Jahren dividieren. Mit anderen Worten, Sie möchten den Filter auf "ProductCategoryName" beibehalten, aber den Filter für das Jahr entfernen, wenn der Nenner des Prozentsatzes berechnet wird.

Die folgende Tabelle zeigt die Ergebnisse, wenn ein neues Measure, Reseller Sales Year, mithilfe der im Codeabschnitt gezeigten Formel erstellt wird. Um zu sehen, wie dies funktioniert, fügen Sie das Feld "CalendarYear" zum Zeilenbeschriftungen Bereich einer PivotTable hinzu, und fügen Sie das Feld "ProductCategoryName" zum bereich Spaltenbeschriftungen hinzu. Um die Ergebnisse als Prozentsätze anzuzeigen, verwenden Sie die Formatierungsfeatures von Excel, um ein Prozentzahlenformat auf die Zellen anzuwenden, die das Measure enthalten, Reseller Sales Year.

Zeilenbeschriftungen Zubehör Fahrräder Kleidung Komponenten Gesamtsumme
2005 3.48% 11.03% 1.91% 5.12% 9.91%
2006 16.21% 29.96% 27.29% 30.59% 29.90%
2007 51.62% 38.45% 48.86% 46.36% 39.93%
2008 28.69% 20.56% 21.95% 17.92% 20.26%
Gesamtsumme 100.00% 100.00% 100.00% 100.00% 100.00%

Formel-

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))

Die Formel wird wie folgt erstellt:

  1. Der Zähler, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), ist die Summe der Werte in ResellerSales_USD[SalesAmount_USD] für die aktuelle Zelle in der Pivottabelle, wobei Kontextfilter auf die Spalten "CalendarYear" und "ProductCategoryName" angewendet werden.

  2. Für den Nenner entfernen Sie den vorhandenen Filter für CalendarYear mithilfe der Funktion ALL(Spalte). Dadurch wird die Summe über die verbleibenden Zeilen in der ResellerSales_USD Tabelle berechnet, nachdem die vorhandenen Kontextfilter aus den Spaltenbeschriftungen angewendet wurden. Der Nettoeffekt ist, dass für den Nenner die Summe über den ausgewählten ProductCategoryName (den impliziten Kontextfilter) und für alle Werte im Jahr berechnet wird.

Beispiel 3

Berechnen des Beitrags von Produktkategorien zum Gesamtumsatz pro Jahr

Angenommen, Sie möchten eine Tabelle erstellen, die den Prozentsatz des Umsatzes für jede Produktkategorie auf Jahresbasis anzeigt. Um den Prozentsatz für jede Produktkategorie in einem bestimmten Jahr zu erhalten, müssen Sie die Summe des Umsatzes für diese bestimmte Produktkategorie (ProductCategoryName) im Jahr n berechnen und dann den resultierenden Wert durch die Summe des Umsatzes für das Jahr n über alle Produktkategorien dividieren. Mit anderen Worten, Sie möchten den Filter für jahr beibehalten, aber den Filter auf ProductCategoryName beim Berechnen des Nenners des Prozentsatzes entfernen.

Die folgende Tabelle zeigt die Ergebnisse, wenn ein neues Measure, Reseller Sales CategoryName, mithilfe der im Codeabschnitt gezeigten Formel erstellt wird. Um zu sehen, wie dies funktioniert, fügen Sie das Feld "CalendarYear" zum Zeilenbeschriftungen Bereich der PivotTable hinzu, und fügen Sie das Feld "ProductCategoryName" zum bereich Spaltenbeschriftungen hinzu. Fügen Sie dann das neue Measure zum bereich Werte der PivotTable hinzu. Um die Ergebnisse als Prozentsätze anzuzeigen, verwenden Sie die Formatierungsfeatures von Excel, um ein Prozentzahlenformat auf die Zellen anzuwenden, die das neue Measure enthalten, Reseller Sales CategoryName.

Zeilenbeschriftungen Zubehör Fahrräder Kleidung Komponenten Gesamtsumme
2005 0.25% 91.76% 0.42% 7.57% 100.00%
2006 0.38% 82.64% 1.99% 14.99% 100.00%
2007 0,90% 79.42% 2.67% 17.01% 100.00%
2008 0,99% 83.69% 2.37% 12.96% 100.00%
Gesamtsumme 0.70% 82.47% 2.18% 14.65% 100.00%

Formel-

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))

Die Formel wird wie folgt erstellt:

  1. Der Zähler, SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]), ist die Summe der Werte in ResellerSales_USD[SalesAmount_USD] für die aktuelle Zelle in der PivotTable, wobei Kontextfilter auf die Felder, CalendarYear und ProductCategoryName angewendet werden.

  2. Für den Nenner verwenden Sie die Funktion ALL(Spalte), um den Filter nach ProductCategoryName zu entfernen und die Summe über die verbleibenden Zeilen in der ResellerSales_USD Tabelle zu berechnen, nachdem sie die vorhandenen Kontextfilter aus den Zeilenbeschriftungen angewendet haben. Der Nettoeffekt ist, dass die Summe für den Nenner über das ausgewählte Jahr (der implizite Kontextfilter) und für alle Werte von ProductCategoryName berechnet wird.

FilterfunktionenALL FunktionALLEXCEPT FunktionFILTER Funktion