Freigeben über


ALLSELECTED-Funktion (DAX)

Entfernt Kontextfilter aus Spalten und Zeilen in der aktuellen Abfrage, während alle anderen Kontextfilter oder expliziten Filter beibehalten werden.

Die ALLSELECTED-Funktion ruft den Kontext ab, der alle Zeilen und Spalten in der Abfrage darstellt, während andere explizite Filter und Kontexte als Zeilen- und Spaltenfilter beibehalten werden. Diese Funktion kann verwendet werden, um sichtbare Gesamtwerte in Abfragen abzurufen.

Syntax

ALLSELECTED([<tableName> | <columnName>])

Parameter

  • tableName
    Der Name einer vorhandenen Tabelle mit Standard-DAX-Syntax. Dieser Parameter kann kein Ausdruck sein. Dieser Parameter ist optional.

  • columnName
    Der Name einer vorhandenen Spalte mit Standard-DAX-Syntax, normalerweise vollqualifiziert. Kann kein Ausdruck sein. Dieser Parameter ist optional.

Rückgabewert

Der Kontext der Abfrage ohne Spalten- und Zeilenfilter.

Hinweise

  • Diese Funktion akzeptiert ein oder keine Argumente. Wenn ein Argument vorhanden ist, ist das Argument entweder tableName oder columnName.

  • Diese Funktion unterscheidet sich von ALL(), da sie alle innerhalb der Abfrage explizit festgelegten Filter beibehält und alle Kontextfilter außer Zeilen- und Spaltenfilter beibehält.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie mithilfe von DAX-Ausdrücken verschiedene sichtbare Gesamtwerte in einem Tabellenbericht generiert werden. Im Bericht wurden zwei (2) vorherige Filter auf die Reseller Sales-Daten angewendet: ein Filter auf "Sales Territory Group = Europe" und der zweite auf "Promotion Type = Volume Discount". Sobald die Filter angewendet wurden, können sichtbare Gesamtwerte für den gesamten Bericht, für alle Jahre (All Years) oder für alle Produktkategorien (All Product Categories) berechnet werden. Darüber hinaus wird zur Veranschaulichung das Gesamtergebnis für alle Verkäufe von Wiederverkäufern (All Reseller Sales) abgerufen, wobei alle Filter im Bericht entfernt werden. Die Auswertung des folgenden DAX-Ausdrucks ergibt eine Tabelle mit sämtlichen Informationen, die zum Erstellen einer Tabelle mit sichtbaren Gesamtwerten erforderlich sind.

define
measure 'Reseller Sales'[Reseller Sales Amount]=sum('Reseller Sales'[Sales Amount])
measure 'Reseller Sales'[Reseller Grand Total]=calculate(sum('Reseller Sales'[Sales Amount]), ALL('Reseller Sales'))
measure 'Reseller Sales'[Reseller Visual Total]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED())
measure 'Reseller Sales'[Reseller Visual Total for All of Calendar Year]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED('Date'[Calendar Year]))
measure 'Reseller Sales'[Reseller Visual Total for All of Product Category Name]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED('Product Category'[Product Category Name]))
evaluate
CalculateTable(
    //CT table expression
    summarize( 
//summarize table expression
crossjoin(distinct('Product Category'[Product Category Name]), distinct('Date'[Calendar Year]))
//First Group by expression
, 'Product Category'[Product Category Name]
//Second Group by expression
, 'Date'[Calendar Year]
//Summary expressions
, "Reseller Sales Amount", [Reseller Sales Amount]
, "Reseller Grand Total", [Reseller Grand Total]
, "Reseller Visual Total", [Reseller Visual Total]
, "Reseller Visual Total for All of Calendar Year", [Reseller Visual Total for All of Calendar Year]
, "Reseller Visual Total for All of Product Category Name", [Reseller Visual Total for All of Product Category Name]
)
//CT filters
, 'Sales Territory'[Sales Territory Group]="Europe", 'Promotion'[Promotion Type]="Volume Discount"
)
order by [Product Category Name], [Calendar Year]

Nachdem der oben aufgeführte Ausdruck in SQL Server Management Studio für AdventureWorks DW Tabular Model 2012 ausgeführt wurde, erhalten Sie folgende Ergebnisse:

[Product Category Name]

[Calendar Year]

[Reseller Sales Amount]

[Reseller Grand Total]

[Reseller Visual Total]

[Reseller Visual Total for All of Calendar Year]

[Reseller Visual Total for All of Product Category Name]

Accessories

2000

80450596.9823

877006.7987

38786.018

Accessories

2001

80450596.9823

877006.7987

38786.018

Accessories

2002

625.7933

80450596.9823

877006.7987

38786.018

91495.3104

Accessories

2003

26037.3132

80450596.9823

877006.7987

38786.018

572927.0136

Accessories

2004

12122.9115

80450596.9823

877006.7987

38786.018

212584.4747

Accessories

2005

80450596.9823

877006.7987

38786.018

Accessories

2006

80450596.9823

877006.7987

38786.018

Bikes

2000

80450596.9823

877006.7987

689287.7939

Bikes

2001

80450596.9823

877006.7987

689287.7939

Bikes

2002

73778.938

80450596.9823

877006.7987

689287.7939

91495.3104

Bikes

2003

439771.4136

80450596.9823

877006.7987

689287.7939

572927.0136

Bikes

2004

175737.4423

80450596.9823

877006.7987

689287.7939

212584.4747

Bikes

2005

80450596.9823

877006.7987

689287.7939

Bikes

2006

80450596.9823

877006.7987

689287.7939

Clothing

2000

80450596.9823

877006.7987

95090.7757

Clothing

2001

80450596.9823

877006.7987

95090.7757

Clothing

2002

12132.4334

80450596.9823

877006.7987

95090.7757

91495.3104

Clothing

2003

58234.2214

80450596.9823

877006.7987

95090.7757

572927.0136

Clothing

2004

24724.1209

80450596.9823

877006.7987

95090.7757

212584.4747

Clothing

2005

80450596.9823

877006.7987

95090.7757

Clothing

2006

80450596.9823

877006.7987

95090.7757

Components

2000

80450596.9823

877006.7987

53842.2111

Components

2001

80450596.9823

877006.7987

53842.2111

Components

2002

4958.1457

80450596.9823

877006.7987

53842.2111

91495.3104

Components

2003

48884.0654

80450596.9823

877006.7987

53842.2111

572927.0136

Components

2004

80450596.9823

877006.7987

53842.2111

212584.4747

Components

2005

80450596.9823

877006.7987

53842.2111

Components

2006

80450596.9823

877006.7987

53842.2111

Die Spalten im Bericht sind:

  • Reseller Sales Amount
    Der Istwert von "Reseller Sales" für das Jahr und die Produktkategorie. Dieser Wert wird in einer Zelle in der Mitte des Berichts am Schnittpunkt von Jahr und Kategorie angezeigt.

  • Reseller Visual Total for All of Calendar Year
    Der Gesamtwert einer Produktkategorie übergreifend über sämtliche Jahre. Dieser Wert wird am Ende einer Spalte oder Zeile für eine bestimmte Produktkategorie und über sämtliche Jahre im Bericht angezeigt.

  • Reseller Visual Total for All of Product Category Name
    Der Gesamtwert eines Jahres übergreifend über sämtliche Produktkategorien. Dieser Wert wird am Ende einer Spalte oder Zeile für ein bestimmtes Jahr und über sämtliche Produktkategorien im Bericht angezeigt.

  • Reseller Visual Total
    Der Gesamtwert für alle Jahre und Produktkategorien. Dieser Wert wird normalerweise in der unteren rechten Ecke der Tabelle angezeigt.

  • Reseller Grand Total
    Dies ist das Gesamtergebnis für alle Verkäufe von Wiederverkäufern, bevor Filter angewendet wurden. Beachten Sie die Differenz zu [Reseller Visual Total]. Wie bereits erwähnt, enthält dieser Bericht zwei (2) Filter: einen für "Product Category Group" und einen weiteren für "Promotion Type".

Im folgenden Beispiel wird die Verwendung von ALLSELECTED() ohne Argumente gezeigt, um anzuzeigen, wie ein Verhältnis für den in einer Tabelle dargestellten Gesamtwert, gefiltert mithilfe horizontaler und vertikaler Slicer, berechnet wird. In diesem Beispiel werden SQL Server 2012, PowerPivot für Excel und PowerPivot Sample Data (DAX_AdventureWorks) verwendet.

  • Ziehen Sie in der PowerPivot-Feldliste die Spalte ResellerSales[SalesAmount_USD] in den Bereich Werte.

  • Ziehen Sie Promotion[PromotionType] in den Bereich Slicer vertikal. Wählen Sie die Slicer für Discontinued Product, Excess Inventory und Seasonal Discount aus.

  • Ziehen Sie SalesTerritory[SalesTerritoryGroup] in den Bereich Slicer horizontal. Wählen Sie den Slicer für Europe aus.

  • Der Wert von Sum Of SalesAmount_USD sollte $19,614.37 lauten.

  • Ziehen Sie ProductCategory[ProductCategoryName] in den Bereich Zeilenbezeichnungen und DateTime[CalendarYear] in den Bereich Spaltenbezeichnungen.

    Die Tabelle sollte etwa wie folgt aussehen:

     

    SalesTerritoryGroup

     

     

     

     

     

     

    Europe

    North America

     

     

     

     

     

    Pacific

    NA

     

     

     

     

     

     

     

     

     

     

     

    PromotionType

     

     

     

     

     

     

    Discontinued Product

     

    Sum of SalesAmount_USD

    Spaltenbezeichnungen

     

     

     

    Excess Inventory

     

    Zeilenbezeichnungen

    2006

    2007

    2008

    Gesamtergebnis

    New Product

     

    Accessories

    $1,111.22

    $3,414.43

     

    $4,525.66

    No Discount

     

    Bikes

    $8,834.94

    $6,253.78

    $15,088.72

    Seasonal Discount

     

    Grand Total

    $9,946.16

    $3,414.43

    $6,253.78

    $19,614.37

    Volume Discount

     

     

     

     

     

     

  • Überprüfen Sie manuell, dass der Betrag $3,414.43 (für Accessories in Jahr 2007) 17,41 % von $19,614.37 darstellt.

  • Überprüfen Sie manuell, dass der Betrag $6,253.78 (für Bikes im Jahr 2008) 31,88 % von $19,614.37 darstellt.

  • Überprüfen Sie manuell, dass der Betrag $15,088.72 (für das Gesamtergebnis von Bikes) 76,93% von $19,614.37 darstellt.

  • Entfernen Sie ResellerSales[SalesAmount_USD] aus dem Bereich Werte.

  • Erstellen Sie ein Measure mit der Bezeichnung Reseller Sales Ratio in der Tabelle "ResellerSales" mithilfe der folgenden Formel (formatieren Sie das Ergebnis als Prozentwert):

=SUM(ResellerSales_USD[SalesAmount_USD])/ CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), ALLSELECTED())

Die Tabelle sollte wie folgt aussehen:

SalesTerritoryGroup

Europe

North America

Pacific

NA

PromotionType

Discontinued Product

Reseller Sales Ratio

Spaltenbezeichnungen

Excess Inventory

Zeilenbezeichnungen

2006

2007

2008

Gesamtergebnis

New Product

Accessories

5.67 %

17.41 %

23.07 %

No Discount

Bikes

45.04 %

31.88 %

76.93 %

Seasonal Discount

Grand Total

50.71 %

17.41 %

31.88 %

100.00 %

Volume Discount

  • Vergleichen Sie die manuellen Rechenergebnisse mit den Ergebnissen aus Reseller Sales Ratio, diese sollten übereinstimmen. Der Wert des Nenners ist als der Wert am unteren Rand der Tabelle festgelegt.

  • Da die CALCULATE-Formel im Nenner die ALLSELECTED-Funktion verwendet, stellt der Nenner das Gesamtergebnis von Verkäufen am unteren Rand der Tabelle dar, nachdem die vertikalen, horizontalen und Seitenslicer, jedoch bevor die Zeilen- und Spaltenslicer angewendet wurden.

    Hinweis: Wenn im Ausdruck explizite Filter enthalten sind, werden diese Filter ebenfalls auf den Ausdruck angewendet.