Udostępnij za pośrednictwem


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])
)
)
  1. 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
  2. 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
  3. 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.