GENERATE
Dotyczy:kolumna obliczeniowatabela obliczeniowaMeasureobliczenia wizualne
Zwraca tabelę z kartezjańskimi product między każdym wierszem w tabeli table1and tabeli, która wynika z oceny table2 w kontekście bieżącego wiersza z tabeli table1.
Składnia
GENERATE(<table1>, <table2>)
Parametry
Termin | Definicja |
---|---|
table1 |
Dowolne wyrażenie DAX zwracające tabelę. |
table2 |
Dowolne wyrażenie DAX zwracające tabelę. |
Zwracanie value
Tabela z kartezjańskimi product między każdym wierszem w tabeli table1and tabeli, która wynika z oceny table2 w kontekście bieżącego wiersza z tabeli 1
Uwagi
If ocena tabeli 2 dla bieżącego wiersza w tabeli table1 zwraca pustą tabelę, a następnie tabela wyników będzie not zawierać bieżący wiersz z tabeli table1. Różni się to od GENERATEALL(), w której bieżący wiersz z tabeli table1 zostanie uwzględniony w kolumnach wyników and odpowiadających table2 będzie zawierać values o wartości null dla tego wiersza.
All nazwy kolumn z table1andtable2 muszą być różne, or zwracany jest error.
Ta funkcja jest not obsługiwana do użycia w trybie DirectQuery w przypadku użycia w kolumnach obliczeniowych or reguł zabezpieczeń na poziomie wiersza.
Przykład
W poniższym przykładzie użytkownik chce uzyskać tabelę podsumowania sprzedaży według regionu andProduct Category dla kanału Resellers( Sprzedawca), podobnie jak w poniższej tabeli:
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [Reseller Sales] |
---|---|---|
Europa | Akcesoria | $ 142,227,27 |
Europa | Rowery | $ 9,970,200,44 |
Europa | Odzież | $ 365,847,63 |
Europa | Składniki | $ 2,214,440,19 |
Ameryka Północna | Akcesoria | $ 379,305,15 |
Ameryka Północna | Rowery | $ 52,403,796,85 |
Ameryka Północna | Odzież | $ 1,281,193,26 |
Ameryka Północna | Składniki | $ 8,882,848,05 |
Pacyficzny | Akcesoria | $ 12,769,57 |
Pacyficzny | Rowery | $ 710,677,75 |
Pacyficzny | Odzież | $ 22,902,38 |
Pacyficzny | Składniki | $ 108,549,71 |
Poniższa formuła tworzy powyższą tabelę:
GENERATE(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
Instrukcja firstSUMMARIZE,
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
, tworzy tabelę grup terytorium, w której każdy wiersz jest grupą terytorium, jak pokazano poniżej:SalesTerritory[SalesTerritoryGroup] Ameryka Północna Europa Pacyficzny NIE Instrukcja secondSUMMARIZE,
SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))
, tworzy tabelę grup kategorii Product z sprzedażą Reseller dla każdej grupy, jak pokazano poniżej:ProductCategory[ProductCategoryName] [Reseller Sales] Rowery $ 63,084,675,04 Składniki $ 11,205,837,96 Odzież $ 1,669,943,27 Akcesoria $ 534,301,99 Jeśli jednak po pobraniu powyższej tabeli andevaluate ją w kontekście każdego wiersza z tabeli grup terytorium, uzyskasz różne wyniki dla każdego terytorium.