Freigeben über


GENERATEALL

Gilt für:Berechnete SpalteBerechnete TabelleMeasurevisuelle Berechnung

Gibt eine Tabelle mit dem kartesischen Produkt zwischen jeder Zeile in Tabelle1 und der Tabelle zurück, die sich aus der Auswertung Tabelle2 im Kontext der aktuellen Zeile aus Tabelle1ergibt.

Syntax

GENERATEALL(<table1>, <table2>)

Parameter

Ausdruck Definition
table1 Ein beliebiger DAX Ausdruck, der eine Tabelle zurückgibt.
table2 Ein beliebiger DAX Ausdruck, der eine Tabelle zurückgibt.

Rückgabewert

Eine Tabelle mit dem kartesischen Produkt zwischen jeder Zeile in Tabelle1 und der Tabelle, die aus der Auswertung Tabelle2 im Kontext der aktuellen Zeile aus Tabelle1

Bemerkungen

  • Wenn die Auswertung von Tabelle2 für die aktuelle Zeile in Tabelle1 eine leere Tabelle zurückgibt, wird die aktuelle Zeile aus Tabelle1 in die Ergebnisse und Spalten, die Tabelle2 entsprechen, nullwerte für diese Zeile enthalten. Dies unterscheidet sich von GENERATE(), bei dem die aktuelle Zeile aus Tabelle1 nicht nicht in die Ergebnisse einbezogen werden.

  • Alle Spaltennamen aus Tabelle1 und Tabelle2 müssen unterschiedlich sein oder ein Fehler zurückgegeben wird.

  • 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

Im folgenden Beispiel möchte der Benutzer eine Zusammenfassungstabelle der Umsätze nach Region und Produktkategorie für den Händlerkanal wie die folgende Tabelle verwenden:

SalesTerritory[SalesTerritoryGroup] ProductCategory[ProductCategoryName] [Reseller Sales]
Europa Zubehör $ 142,227,27
Europa Fahrräder $ 9.970.200.44
Europa Kleidung $ 365,847,63
Europa Komponenten $ 2.214.440.19
NA Zubehör
NA Fahrräder
NA Kleidung
NA Komponenten
Nordamerika Zubehör $ 379,305.15
Nordamerika Fahrräder $ 52,403,796,85
Nordamerika Kleidung $ 1,281,193,26
Nordamerika Komponenten $ 8,882,848,05
Pazifik Zubehör $ 12.769,57
Pazifik Fahrräder $ 710,677,75
Pazifik Kleidung $ 22.902.38
Pazifik Komponenten $ 108,549,71

Die folgende Formel erzeugt die obige Tabelle:

GENERATEALL(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
  1. Die erste SUMMARIZE erzeugt ein Gebietsverzeichnis, in dem jede Zeile eine Gebietsgruppe ist, wie die unten aufgeführten:

    SalesTerritory[SalesTerritoryGroup]
    Nordamerika
    Europa
    Pazifik
    NA
  2. Die zweite SUMMARIZE erzeugt eine Tabelle der Produktkategoriegruppen mit den Vertriebsverkäufen für jede Gruppe, wie unten dargestellt:

    ProductCategory[ProductCategoryName] [Reseller Sales]
    Fahrräder $ 63.084.675.04
    Komponenten $ 11,205,837,96
    Kleidung $ 1,669,943,27
    Zubehör $ 534,301.99
  3. Wenn Sie jedoch die obige Tabelle verwenden und die Tabelle unter dem Kontext jeder Zeile aus der Tabelle der Gebietsgruppen bewerten, erhalten Sie für jedes Gebiet unterschiedliche Ergebnisse.