GENERATEALL
Gilt für:berechnete Spaltenberechnete TabellenMeasuresvisuelle Berechnungen
Gibt eine Tabelle mit dem kartesischen Produkt zwischen jeder Zeile in table1 und der Tabelle zurück, die sich aus der Auswertung von table2 im Kontext der aktuellen Zeile aus table1 ergibt.
Syntax
GENERATEALL(<table1>, <table2>)
Parameter
Begriff | Definition |
---|---|
table1 | DAX-Ausdruck, der eine Tabelle zurückgibt. |
table2 | DAX-Ausdruck, der eine Tabelle zurückgibt. |
Rückgabewert
Eine Tabelle mit dem kartesischen Produkt zwischen jeder Zeile in table1 und der Tabelle, die sich aus der Auswertung von table2 im Kontext der aktuellen Zeile aus table1 ergibt
Bemerkungen
Wenn die Auswertung von table2 für die aktuelle Zeile in table1 eine leere Tabelle zurückgibt, dann wird die aktuelle Zeile aus table1 in die Ergebnisse einbezogen. Spalten, die table2 entsprechen, weisen für diese Zeile NULL-Werte auf. Dies ist anders als bei der GENERATE()-Funktion, bei der die aktuelle Zeile aus table1nicht in die Ergebnisse einbezogen wird.
Alle Spaltennamen von table1 und table2 müssen unterschiedlich sein, sonst wird ein Fehler zurückgegeben.
Die Verwendung dieser Funktion im DirectQuery-Modus wird nicht unterstützt, wenn sie in berechneten Spalten oder RLS-Regeln (Row-Level Security) eingesetzt wird.
Beispiel
Im folgenden Beispiel möchte der Benutzer eine Übersichtstabelle der Verkäufe nach Region und Produktkategorie für den Kanal „Reseller“ anzeigen, wie in der folgenden Tabelle dargestellt:
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [Reseller Sales] |
---|---|---|
Europa | Accessories | USD 142.227,27 |
Europa | Bikes | USD 9.970.200,44 |
Europa | Clothing | USD 365.847,63 |
Europa | Komponenten | USD 2.214.440,19 |
Nicht verfügbar | Accessories | |
Nicht verfügbar | Bikes | |
Nicht verfügbar | Clothing | |
Nicht verfügbar | Komponenten | |
Nordamerika | Accessories | USD 379.305,15 |
Nordamerika | Bikes | USD 52.403.796,85 |
Nordamerika | Clothing | USD 1.281.193,26 |
Nordamerika | Komponenten | USD 8,882,848.05 |
Pacific | Accessories | USD 12,769.57 |
Pacific | Bikes | USD 710.677,75 |
Pacific | Clothing | USD 22.902,38 |
Pacific | Komponenten | USD 108.549,71 |
Die folgende Formel erzeugt die oben angezeigte Tabelle:
GENERATEALL(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
Der erste SUMMARIZE-Befehl erzeugt eine Tabelle mit den Gebietsgruppen, wobei jede Zeile eine Gebietsgruppe ist, wie unten aufgeführt:
SalesTerritory[SalesTerritoryGroup] Nordamerika Europa Pacific Nicht verfügbar Der zweite SUMMARIZE-Befehl erzeugt eine Tabelle der Produktkategoriegruppen mit den Resellerverkäufen für jede Gruppe, wie unten gezeigt:
ProductCategory[ProductCategoryName] [Reseller Sales] Bikes USD 63.084.675,04 Komponenten USD 11.205.837,96 Clothing USD 1.669.943,27 Accessories USD 534.301,99 Wenn Sie jedoch die obige Tabelle nehmen und die Tabelle im Kontext jeder Zeile aus der Tabelle der Gebietsgruppen auswerten, erhalten Sie für jedes Gebiet andere Ergebnisse.