GENERATE
Gilt für:Berechnete Spalte
Berechnete Tabelle
Measure
visuelle 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
GENERATE(<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, enthält die Ergebnistabelle nicht die aktuelle Zeile aus Tabelle1. Dies unterscheidet sich von GENERATEALL(), wobei die aktuelle Zeile aus Tabelle1 in die Ergebnisse und Spalten einbezogen wird, die Tabelle2 entsprechen, null werte für diese Zeile.
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 wie in der folgenden Tabelle eine Zusammenfassungstabelle der Umsätze nach Region und Produktkategorie für den Händlerkanal 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 |
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:
GENERATE(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
Die erste SUMMARIZE Erklärung,
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
, erzeugt ein Tabellenverzeichnis von Gebietsgruppen, wobei jede Zeile eine Gebietsgruppe ist, wie unten dargestellt:SalesTerritory[SalesTerritoryGroup] Nordamerika Europa Pazifik NA Die zweite SUMMARIZE Anweisung,
SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))
, erzeugt eine Tabelle mit Produktkategoriegruppen mit dem Händlerumsatz 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 Wenn Sie jedoch die obige Tabelle verwenden und diese unter dem Kontext jeder Zeile aus der Tabelle "Gebietsgruppen" auswerten, erhalten Sie für jedes Gebiet unterschiedliche Ergebnisse.