Læs på engelsk

Del via


GENERATEALL

gælder for:beregnet kolonneberegnet tabelberegning af målingvisualisering

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 table1ikke 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])  
)  
)  
  1. Den første SUMMARIZE opretter en tabel med områdegrupper, hvor hver række er en områdegruppe, f.eks. dem, der er angivet nedenfor:

    SalesTerritory[SalesTerritoryGroup]
    Nordamerika
    Europa
    Stillehavet
    NA
  2. 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
  3. 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.