GENERATEALL

Gäller för:Beräknad kolumnBeräknad tabellMåttVisuell beräkning

Returnerar en tabell med kartesiansk produkt mellan varje rad i table1 och tabellen som är resultatet av utvärderingen av table2 i kontexten för den aktuella raden från table1.

Syntax

GENERATEALL(<table1>, <table2>)  

Parametrar

Period Definition
table1 Alla DAX-uttryck som returnerar en tabell.
table2 Alla DAX-uttryck som returnerar en tabell.

Returvärde

En tabell med kartesiansk produkt mellan varje rad i table1 och tabellen som är resultatet av utvärderingen av table2 i kontexten för den aktuella raden från table1

Kommentarer

  • Om utvärderingen av table2 för den aktuella raden i table1 returnerar en tom tabell inkluderas den aktuella raden från table1 i resultatet och kolumnerna som motsvarar table2 har null-värden för den raden. Detta skiljer sig från GENERATE() där den aktuella raden från table1 inte inkluderas i resultatet.

  • Alla kolumnnamn från table1 och table2 måste vara olika eller så returneras ett fel.

  • Den här funktionen stöds inte för användning i DirectQuery-läge när den används i beräknade kolumner eller säkerhetsregler på radnivå (RLS).

Exempel

I följande exempel vill användaren ha en sammanfattningstabell över försäljningen per region och produktkategori för kanalen Återförsäljare, som i följande tabell:

SalesTerritory[SalesTerritoryGroup] ProductCategory[ProductCategoryName] [Reseller Sales]
Europa Accessoarer $ 142,227.27
Europa Cyklar $ 9 970 200,44
Europa Kläder $ 365,847.63
Europa Komponenter $ 2 214 440,19
NA Accessoarer
NA Cyklar
NA Kläder
NA Komponenter
Nordamerika Accessoarer $ 379,305.15
Nordamerika Cyklar $ 52,403,796.85
Nordamerika Kläder $ 1 281 193,26
Nordamerika Komponenter $ 8 882 848,05
Stillahavsområdet Accessoarer $ 12,769.57
Stillahavsområdet Cyklar $ 710,677.75
Stillahavsområdet Kläder $ 22,902.38
Stillahavsområdet Komponenter $ 108,549.71

Följande formel genererar tabellen ovan:

GENERATEALL(  
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])  
,SUMMARIZE(ProductCategory
, [ProductCategoryName]  
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  
)  
)  
  1. Den första SUMMARIZE skapar en tabell med områdesgrupper, där varje rad är en områdesgrupp, som de som anges nedan:

    SalesTerritory[SalesTerritoryGroup]
    Nordamerika
    Europa
    Stillahavsområdet
    NA
  2. Den andra SUMMARIZE skapar en tabell med produktkategorigrupper med återförsäljares försäljning för varje grupp, enligt nedan:

    ProductCategory[ProductCategoryName] [Reseller Sales]
    Cyklar $ 63,084,675.04
    Komponenter $ 11,205,837.96
    Kläder $ 1 669 943,27
    Accessoarer $ 534,301.99
  3. Men när du tar tabellen ovan och utvärderar tabellen under kontexten för varje rad från tabellen områdesgrupper får du olika resultat för varje område.