GENERATEALL
gælder for:beregnet kolonne
beregnet tabel
beregning af måling
visualisering
Returnerer en tabel med det kartesiske produkt mellem hver række i table1 og den tabel, der er resultatet af evalueringen af table2 i konteksten af den aktuelle række fra table1.
Syntaks
GENERATEALL(<table1>, <table2>)
Parametre
Udtryk | Definition |
---|---|
table1 |
Ethvert DAX udtryk, der returnerer en tabel. |
table2 |
Ethvert DAX udtryk, der returnerer en tabel. |
Returværdi
En tabel med det kartesiske produkt mellem hver række i table1 og den tabel, der er resultatet af evalueringen af table2 i konteksten af den aktuelle række fra table1
Bemærkninger
Hvis evalueringen af table2 for den aktuelle række i table1 returnerer en tom tabel, medtages den aktuelle række fra table1 i resultaterne og kolonnerne, der svarer til table2 har null-værdier for den pågældende række. Dette er anderledes end GENERATE(), hvor den aktuelle række fra table1 ikke medtages i resultaterne.
Alle kolonnenavne fra table1 og table2- skal være forskellige, eller der returneres en fejl.
Denne funktion understøttes ikke til brug i DirectQuery-tilstand, når den bruges i beregnede kolonner eller RLS-regler (row-level security).
Eksempel
I følgende eksempel ønsker brugeren en oversigtstabel over salg efter område og produktkategori for forhandlerkanalen, f.eks. følgende tabel:
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [Forhandlersalg] |
---|---|---|
Europa | Tilbehør | 142.227,27 USD |
Europa | Cykler | 9.970.200,44 USD |
Europa | Tøj | 365.847,63 USD |
Europa | Komponenter | 2.214.440,19 USD |
NA | Tilbehør | |
NA | Cykler | |
NA | Tøj | |
NA | Komponenter | |
Nordamerika | Tilbehør | 379.305,15 USD |
Nordamerika | Cykler | 52.403.796,85 USD |
Nordamerika | Tøj | 1.281.193,26 USD |
Nordamerika | Komponenter | 8.882.848,05 USD |
Stillehavet | Tilbehør | 12.769,57 USD |
Stillehavet | Cykler | 710.677,75 USD |
Stillehavet | Tøj | 22.902,38 USD |
Stillehavet | Komponenter | 108.549,71 USD |
Følgende formel opretter ovenstående tabel:
GENERATEALL(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
Den første SUMMARIZE opretter en tabel med områdegrupper, hvor hver række er en områdegruppe som dem, der er angivet nedenfor:
SalesTerritory[SalesTerritoryGroup] Nordamerika Europa Stillehavet NA Den anden SUMMARIZE opretter en tabel over produktkategorigrupper med Forhandlersalg for hver gruppe, som vist nedenfor:
ProductCategory[ProductCategoryName] [Forhandlersalg] Cykler 63.084.675,04 USD Komponenter 11.205.837,96 USD Tøj 1.669.943,27 USD Tilbehør 534.301,99 USD Men når du tager ovenstående tabel og evaluerer tabellen under konteksten for hver række fra tabellen med områdegrupper, får du forskellige resultater for hvert område.