Condividi tramite


GENERATEALL

Si applica a:colonna calcolatatabella calcolata calcolo visivomisura

Restituisce una tabella con il prodotto cartesiano tra ogni riga in table1 e la tabella risultante dalla valutazione di table2 nel contesto della riga corrente da table1.

Sintassi

GENERATEALL(<table1>, <table2>)

Parametri

Termine Definizione
table1 Qualsiasi espressione DAX che restituisce una tabella.
table2 Qualsiasi espressione DAX che restituisce una tabella.

Valore restituito

Tabella con il prodotto cartesiano tra ogni riga di table1 e la tabella risultante dalla valutazione di table2 nel contesto della riga corrente da table1

Osservazioni

  • Se la valutazione di table2 per la riga corrente in table1 restituisce una tabella vuota, la riga corrente di table1 verrà inclusa nei risultati e nelle colonne corrispondenti a table2 avranno valori Null per tale riga. È diverso da GENERATE() in cui la riga corrente da table1 non verrà essere inclusa nei risultati.

  • Tutti i nomi di colonna di table1 e table2 devono essere diversi o viene restituito un errore.

  • Questa funzione non è supportata per l'uso in modalità DirectQuery quando viene usata nelle colonne calcolate o nelle regole di sicurezza a livello di riga.

Esempio

Nell'esempio seguente, l'utente vuole una tabella di riepilogo delle vendite per area e categoria prodotto per il canale Resellers, come nella tabella seguente:

SalesTerritory[SalesTerritoryGroup] ProductCategory[ProductCategoryName] [Reseller Sales]
Europa Accessoristica $ 142.227,27
Europa Biciclette $ 9.970.200,44
Europa Abbigliamento $ 365.847,63
Europa Componenti $ 2.214.440,19
NA Accessoristica
NA Biciclette
NA Abbigliamento
NA Componenti
Nord America Accessoristica $ 379.305,15
Nord America Biciclette $ 52.403.796,85
Nord America Abbigliamento $ 1.281.193,26
Nord America Componenti $ 8.882.848,05
Pacifico Accessoristica $ 12.769,57
Pacifico Biciclette $ 710.677,75
Pacifico Abbigliamento $ 22.902,38
Pacifico Componenti $ 108.549,71

La formula seguente produce la tabella precedente:

GENERATEALL(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
  1. La prima SUMMARIZE produce una tabella di gruppi di territorio, in cui ogni riga è un gruppo di territorio, come quelli elencati di seguito:

    SalesTerritory[SalesTerritoryGroup]
    Nord America
    Europa
    Pacifico
    NA
  2. Il secondo SUMMARIZE produce una tabella di gruppi di categorie di prodotti con le vendite Reseller per ogni gruppo, come illustrato di seguito:

    ProductCategory[ProductCategoryName] [Reseller Sales]
    Biciclette $ 63.084.675,04
    Componenti $ 11.205.837.96
    Abbigliamento $ 1.669.943,27
    Accessoristica $ 534.301,99
  3. Tuttavia, quando si accetta la tabella precedente e si valuta la tabella nel contesto di ogni riga della tabella dei gruppi di territorio, si ottengono risultati diversi per ogni territorio.