Zdieľať cez


GENERATE

Vzťahuje sa na:vypočítaný stĺpecvypočítanej tabuľkyvizuálového výpočtu

Vráti tabuľku s kartézskym súčinom medzi jednotlivými riadkami v tabuľke table1 a tabuľkou, ktorá je výsledkom vyhodnotenia tabuľky table2 v kontexte aktuálneho riadka z tabuľky tabuľke1.

Syntax

GENERATE(<table1>, <table2>)

Parametre

Termín Definícia
table1 Akýkoľvek DAX výraz, ktorý vráti tabuľku.
table2 Akýkoľvek DAX výraz, ktorý vráti tabuľku.

Vrátená hodnota

Tabuľka s kartézskym súčinom medzi jednotlivými riadkami v tabuľke tabuľke1 a tabuľkou, ktorá je výsledkom vyhodnocovania tabuľky table2, v kontexte aktuálneho riadka z tabuľky tabuľke1

Poznámky

  • Ak vyhodnotenie tabuľky table2 pre aktuálny riadok v tabuľke table1 vráti prázdnu tabuľku, potom výsledná tabuľka nebude obsahovať aktuálny riadok z tabuľky1. Je to iné ako GENERATEALL(), kde bude aktuálny riadok z tabuľky1 zahrnutý vo výsledkoch a stĺpce zodpovedajúce tabuľke2, budú mať hodnoty null pre tento riadok.

  • Všetky názvy stĺpcov zo tabuľky table1 a tabuľke2 musia byť odlišné alebo sa vráti chyba.

  • Táto funkcia nie je podporovaná na použitie v režime DirectQuery, keď sa používa vo vypočítaných stĺpcoch alebo v pravidlách zabezpečenia na úrovni riadkov (RLS).

Príklad

V nasledujúcom príklade chce používateľ súhrnnú tabuľku predaja podľa oblasti a kategórie produktov pre kanál predajcov, ako je napríklad táto tabuľka:

SalesTerritory[SalesTerritoryGroup] ProductCategory[NázovKategórieProduktov] [Reseller Sales]
Európa Príslušenstvo 142 227,27 $
Európa Bicykle 9 970 200,44 EUR
Európa Oblečenie 365 847,63 $
Európa Komponenty 2 214 440,19 $
Severná Amerika Príslušenstvo 379 305,15 $
Severná Amerika Bicykle 52 403 796,85 $
Severná Amerika Oblečenie 1 281 193,26 $
Severná Amerika Komponenty 8 882 848,05 $
Tichomorský Príslušenstvo 12 769,57 $
Tichomorský Bicykle 710 677,75 $
Tichomorský Oblečenie 22 902,38 $
Tichomorský Komponenty 108 549,71 $

Vyššie uvedená tabuľka je vypočítaná pomocou nasledujúceho vzorca:

GENERATE(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory 
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
  1. Prvý príkaz SUMMARIZESUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])vytvorí tabuľku skupín území, kde každý riadok je skupinou území, ako je to znázornené nižšie:

    SalesTerritory[SalesTerritoryGroup]
    Severná Amerika
    Európa
    Tichomorský
    NA (NA)
  2. Druhý príkaz SUMMARIZE, SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])), vytvorí tabuľku skupín kategórií produktov s predajom predajcu pre každú skupinu, ako je to znázornené nižšie:

    ProductCategory[NázovKategórieProduktov] [Reseller Sales]
    Bicykle 63 084 675,04 $
    Komponenty 11 205 837,96 $
    Oblečenie 1 669 943,27 $
    Príslušenstvo 534 301,99 $
  3. Ak však použijete vyššie uvedenú tabuľku a vyhodnotíte ju v kontexte každého riadka z tabuľky skupín území, získate pre každé územie odlišné výsledky.