GENEROVAT
Platí pro: Výpočet počítané tabulky Počítaná tabulka Výpočet vizuálu
Vrátí tabulku s kartézským součinem mezi jednotlivými řádky v tabulce1 a tabulkou, která je výsledkem vyhodnocení tabulky2 v kontextu aktuálního řádku z tabulky1.
Syntaxe
GENERATE(<table1>, <table2>)
Parametry
Pojem | definice |
---|---|
tabulka 1 | Libovolný výraz DAX, který vrací tabulku. |
tabulka 2 | Libovolný výraz DAX, který vrací tabulku. |
Vrácená hodnota
Tabulka s kartézským součinem mezi jednotlivými řádky v tabulce1 a tabulkou, která je výsledkem vyhodnocení tabulky2 v kontextu aktuálního řádku z tabulky1
Poznámky
Pokud vyhodnocení tabulky 2 pro aktuální řádek v tabulce1 vrátí prázdnou tabulku, výsledná tabulka nebude obsahovat aktuální řádek z tabulky1. To se liší od funkce GENERATEALL(), kde bude aktuální řádek z tabulky1 zahrnut do výsledků a sloupce odpovídající tabulce2 budou mít pro tento řádek hodnoty null.
Všechny názvy sloupců z tabulky1 a table2 se musí lišit nebo se vrátí chyba.
Tato funkce není podporována pro použití v režimu DirectQuery při použití v počítaných sloupcích nebo pravidlech zabezpečení na úrovni řádků (RLS).
Příklad
V následujícím příkladu chce uživatel souhrnnou tabulku prodeje podle oblastí a kategorie produktů pro kanál prodejců, například následující tabulka:
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [Reseller Sales] |
---|---|---|
Evropě | Accessories | $ 142,227,27 |
Evropě | Bikes | $ 9,970,200,44 |
Evropě | Clothing | $ 365,847,63 |
Evropě | Komponenty | $ 2,214,440,19 |
Severní Amerika | Accessories | $ 379,305,15 |
Severní Amerika | Bikes | $ 52,403,796,85 |
Severní Amerika | Clothing | $ 1,281,193,26 |
Severní Amerika | Komponenty | $ 8,882,848,05 |
Tichomoří | Accessories | $ 12,769,57 |
Tichomoří | Bikes | $ 710,677.75 |
Tichomoří | Clothing | $ 22,902,38 |
Tichomoří | Komponenty | $ 108,549,71 |
Následující vzorec vytvoří výše uvedenou tabulku:
GENERATE(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
První příkaz
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
SUMMARIZE vytvoří tabulku skupin oblastí, kde každý řádek je skupina oblastí, jak je znázorněno níže:SalesTerritory[SalesTerritoryGroup] Severní Amerika Evropě Tichomoří NA Druhý příkaz
SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))
SUMMARIZE vytvoří tabulku skupin Kategorií produktů s prodejem prodejců pro každou skupinu, jak je znázorněno níže:ProductCategory[ProductCategoryName] [Reseller Sales] Bikes $ 63,084,675,04 Komponenty $ 11,205,837,96 Clothing $ 1,669,943,27 Accessories $ 534,301,99 Kč Když ale vezmete výše uvedenou tabulku a vyhodnotíte ji v kontextu každého řádku z tabulky skupin oblastí, získáte pro každou oblast jiné výsledky.