GENERATEALL
gjelder:beregnet kolonneberegnet tabellmålevisualobjektberegning
Returnerer en tabell med det kartesiske produktet mellom hver rad i tabell1 og tabellen som er et resultat av å evaluere tabell2 i konteksten til gjeldende rad fra tabell1.
Syntaks
GENERATEALL(<table1>, <table2>)
Parametere
Vilkår | Definisjon |
---|---|
table1 |
Alle DAX uttrykk som returnerer en tabell. |
table2 |
Alle DAX uttrykk som returnerer en tabell. |
Returverdi
En tabell med det kartesiske produktet mellom hver rad i tabell1 og tabellen som kommer av evaluering av tabell2 i konteksten til gjeldende rad fra tabell1
Merknader
Hvis evalueringen av tabell2 for gjeldende rad i tabell1 returnerer en tom tabell, vil gjeldende rad fra tabell1 inkluderes i resultatene, og kolonnene som tilsvarer tabell2 vil ha nullverdier for denne raden. Dette er forskjellig fra GENERATE() der gjeldende rad fra tabell1 ikke inkluderes i resultatene.
Alle kolonnenavn fra tabell1 og tabell2 må være forskjellige, ellers returneres en feil.
Denne funksjonen støttes ikke for bruk i DirectQuery-modus når den brukes i beregnede kolonner eller regler for sikkerhet på radnivå (RLS).
Eksempel
I eksemplet nedenfor ønsker brukeren en sammendragstabell over salg etter område og produktkategori for forhandlerkanalen, for eksempel følgende tabell:
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [Forhandlersalg] |
---|---|---|
Europa | Tilbehør | $ 142,227.27 |
Europa | Sykler | $ 9 970 200,44 |
Europa | Klær | $ 365,847.63 |
Europa | Komponenter | $ 2 214 440,19 |
NA | Tilbehør | |
NA | Sykler | |
NA | Klær | |
NA | Komponenter | |
Nord-Amerika | Tilbehør | $ 379,305.15 |
Nord-Amerika | Sykler | $ 52 403 796,85 |
Nord-Amerika | Klær | $ 1,281,193.26 |
Nord-Amerika | Komponenter | $ 8882 848,05 |
Fredelig | Tilbehør | $ 12 769,57 |
Fredelig | Sykler | $ 710,677.75 |
Fredelig | Klær | $ 22 902,38 |
Fredelig | Komponenter | $ 108 549,71 |
Følgende formel produserer tabellen ovenfor:
GENERATEALL(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
Den første SUMMARIZE produserer en tabell med distriktsgrupper, der hver rad er en distriktsgruppe, som de som er oppført nedenfor:
SalesTerritory[SalesTerritoryGroup] Nord-Amerika Europa Fredelig NA Den andre SUMMARIZE produserer en tabell med produktkategorigrupper med forhandlersalg for hver gruppe, som vist nedenfor:
ProductCategory[ProductCategoryName] [Forhandlersalg] Sykler $ 63,084,675.04 Komponenter $ 11 205 837,96 Klær $ 1 669 943,27 Tilbehør $ 534,301.99 Når du imidlertid tar tabellen ovenfor og evaluerer tabellen under konteksten for hver rad fra tabellen distriktsgrupper, får du forskjellige resultater for hvert distrikt.