GENERATE
Gilt für:Berechnete Spalteberechnete TabelleMeasurevisuelle Berechnung
Gibt eine Tabelle mit dem kartesischen product zwischen jeder Zeile in Tabelle1and 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. |
value zurückgeben
Eine Tabelle mit dem kartesischen product zwischen jeder Zeile in Tabelle1and der Tabelle, die aus der Auswertung Tabelle2 im Kontext der aktuellen Zeile aus Tabelle1
Bemerkungen
If die Auswertung Tabelle2 für die aktuelle Zeile in Tabelle1 zurück, eine leere Tabelle zurückgibt, wird die Ergebnistabelle not die aktuelle Zeile aus Tabelle1enthalten. Dies unterscheidet sich von GENERATEALL(), wobei die aktuelle Zeile aus Tabelle1 in die Ergebnisse einbezogen wird, and Spalten, die Tabelle2 entsprechen, null values für diese Zeile.
All Spaltennamen aus Tabelle1andTabelle 2 müssen unterschiedlich sein, or ein error zurückgegeben wird.
Diese Funktion wird not für die Verwendung im DirectQuery-Modus unterstützt, wenn sie in berechneten Spalten or 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 andProduct Kategorie 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 firstSUMMARIZE 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 secondSUMMARIZE-Anweisung,
SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))
, erzeugt eine Tabelle mit Product Kategoriegruppen mit den Vertriebsmitarbeitern 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 andevaluate sie unter dem Kontext jeder Zeile aus der Tabelle "Gebietsgruppen" verwenden, erhalten Sie für jedes Gebiet unterschiedliche Ergebnisse.