Læs på engelsk

Del via


GENERATE

gælder for:beregnet kolonneberegnet tabelMeasurevisualiseringsberegning

Returnerer en tabel med den kartesiske product mellem hver række i table1and den tabel, der er resultatet af evalueringen af table2 i konteksten af den aktuelle række fra table1.

Syntaks

GENERATE(<table1>, <table2>)  

Parametre

Udtryk Definition
table1 Ethvert DAX udtryk, der returnerer en tabel.
table2 Ethvert DAX udtryk, der returnerer en tabel.

Returner value

En tabel med den kartesiske product mellem hver række i table1and den tabel, der er resultatet af evalueringen af table2 i konteksten af den aktuelle række fra table1

Bemærkninger

  • If evalueringen af table2- for den aktuelle række i table1 returnerer en tom tabel, indeholder resultattabellen not den aktuelle række fra tabel1. Dette er forskelligt fra GENERATEALL(), hvor den aktuelle række fra table1 medtages i resultaterne and kolonner, der svarer til table2 vil have null-values for den pågældende række.

  • All kolonnenavne fra table1andtable2 skal være forskellige, or der returneres en error.

  • Denne funktion understøttes not til brug i DirectQuery-tilstand, når den bruges i beregnede kolonner or RLS-regler (row-level security).

Eksempel

I følgende eksempel ønsker brugeren en oversigtstabel over salg efter område andProduct kategori 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
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:

GENERATE(  
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])  
,SUMMARIZE(ProductCategory   
, [ProductCategoryName]  
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  
)  
)  
  1. Sætningen firstSUMMARIZE, SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup]), opretter en tabel over områdegrupper, hvor hver række er en områdegruppe, som vist nedenfor:

    SalesTerritory[SalesTerritoryGroup]
    Nordamerika
    Europa
    Stillehavet
    NA
  2. Sætningen secondSUMMARIZE, SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])), opretter en tabel med Product kategorigrupper 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 andevaluate den i konteksten for hver række fra tabellen med områdegrupper, får du forskellige resultater for hvert område.