SUMMARIZE

Si applica a:Calcolo visivo misuratabella calcolata colonnacalcolata

Restituisce una tabella di riepilogo per i totali richiesti su un set di gruppi.

Sintassi

SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)

Parametri

Termine Definizione
table Qualsiasi espressione DAX che restituisce una tabella di dati.
groupBy_ColumnName (Facoltativo) Nome completo di una colonna esistente da usare per creare gruppi di riepilogo in base ai valori trovati. Questo parametro non può essere un'espressione.
name Nome assegnato a una colonna di totale o di riepilogo, racchiuso tra virgolette doppie.
expression Qualsiasi espressione DAX che restituisce un singolo valore scalare, dove l'espressione deve essere valutata più volte (per ogni riga/contesto).

Valore restituito

Una tabella con le colonne selezionate per gli argomenti groupBy_columnName e le colonne riepilogative definite dagli argomenti name.

Osservazioni:

  • Ogni colonna per la quale si definisce un nome deve avere un'espressione corrispondente, altrimenti viene restituito un errore. Il primo argomento, name, definisce il nome della colonna nei risultati. Il secondo argomento, expression, definisce il calcolo eseguito per ottenere il valore di ogni riga della colonna.

  • groupBy_columnName deve essere presente in table o in una tabella correlata a table.

  • Ogni nome deve essere racchiuso tra virgolette doppie.

  • La funzione raggruppa un set selezionato di righe in un set di righe di riepilogo in base ai valori di una o più colonne groupBy_columnName. Viene restituita una riga per ogni gruppo.

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

Esempio

L'esempio seguente restituisce un riepilogo delle vendite del rivenditore raggruppate in base all'anno di calendario e al nome della categoria di prodotto. Questa tabella dei risultati consente di eseguire l'analisi sulle vendite del rivenditore per anno e per categoria di prodotto.

SUMMARIZE(ResellerSales_USD  
      , DateTime[CalendarYear]  
      , ProductCategory[ProductCategoryName]  
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])  
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])  
      )  

Nella tabella seguente viene mostrata un'anteprima dei dati come ricevuta da qualsiasi funzione che prevede la ricezione di una tabella:

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (USD)]
2008 Bikes 12968255.42 36167.6592
2005 Bikes 6958251.043 4231.1621
2006 Bikes 18901351.08 178175.8399
2007 Bikes 24256817.5 276065.992
2008 Componenti 2008052.706 39.9266
2005 Componenti 574256.9865 0
2006 Componenti 3428213.05 948.7674
2007 Componenti 5195315.216 4226.0444
2008 Clothing 366507.844 4151.1235
2005 Clothing 31851.1628 90.9593
2006 Clothing 455730.9729 4233.039
2007 Clothing 815853.2868 12489.3835
2008 Accessori 153299.924 865.5945
2005 Accessori 18594.4782 4.293
2006 Accessori 86612.7463 1061.4872
2007 Accessori 275794.8403 4756.6546

Con ROLLUP

L'aggiunta della sintassi ROLLUP modifica il comportamento della funzione SUMMARIZE aggiungendo le righe di rollup al risultato nelle colonne groupBy_columnName. ROLLUP può essere usato solo all'interno di un'espressione SUMMARIZE.

Esempio

L'esempio seguente aggiunge righe di rollup alle colonne Group-By della chiamata alla funzione SUMMARIZE:

SUMMARIZE(ResellerSales_USD  
      , ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])  
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])  
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])  
)  

Restituisce la tabella seguente:

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (USD)]
2008 Bikes 12968255.42 36167.6592
2005 Bikes 6958251.043 4231.1621
2006 Bikes 18901351.08 178175.8399
2007 Bikes 24256817.5 276065.992
2008 Componenti 2008052.706 39.9266
2005 Componenti 574256.9865 0
2006 Componenti 3428213.05 948.7674
2007 Componenti 5195315.216 4226.0444
2008 Clothing 366507.844 4151.1235
2005 Clothing 31851.1628 90.9593
2006 Clothing 455730.9729 4233.039
2007 Clothing 815853.2868 12489.3835
2008 Accessori 153299.924 865.5945
2005 Accessori 18594.4782 4.293
2006 Accessori 86612.7463 1061.4872
2007 Accessori 275794.8403 4756.6546
2008 15496115.89 41224.3038
2005 7582953.67 4326.4144
2006 22871907.85 184419.1335
2007 30543780.84 297538.0745
76494758.25 527507.9262

Con ROLLUPGROUP

L'aggiunta di ROLLUPGROUP all'interno di una sintassi ROLLUP può tuttavia essere usata per evitare subtotali parziali nelle righe di rollup. ROLLUPGROUP può essere usato solo all'interno di un'espressione ROLLUP, ROLLUPADDISSUBTOTAL o ROLLUPISSUBTOTAL.

Esempio

L'esempio seguente mostra solo il totale complessivo di tutti gli anni e le categorie senza il subtotale di ogni anno con tutte le categorie:

SUMMARIZE(ResellerSales_USD  
      , ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]))  
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])  
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])  
)  

Restituisce la tabella seguente:

DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (USD)]
2008 Bikes 12968255.42 36167.6592
2005 Bikes 6958251.043 4231.1621
2006 Bikes 18901351.08 178175.8399
2007 Bikes 24256817.5 276065.992
2008 Componenti 2008052.706 39.9266
2005 Componenti 574256.9865 0
2006 Componenti 3428213.05 948.7674
2007 Componenti 5195315.216 4226.0444
2008 Clothing 366507.844 4151.1235
2005 Clothing 31851.1628 90.9593
2006 Clothing 455730.9729 4233.039
2007 Clothing 815853.2868 12489.3835
2008 Accessori 153299.924 865.5945
2005 Accessori 18594.4782 4.293
2006 Accessori 86612.7463 1061.4872
2007 Accessori 275794.8403 4756.6546
76494758.25 527507.9262

Con ISSUBTOTAL

Con ISSUBTOTAL è possibile creare un'altra colonna nell'espressione SUMMARIZE, che restituisce True se la riga contiene i valori dei subtotali per la colonna specificata come argomento di ISSUBTOTAL. In caso contrario, restituisce False. ISSUBTOTAL può essere usato solo all'interno di un'espressione SUMMARIZE.

Esempio

L'esempio seguente genera una colonna ISSUBTOTAL per ognuna delle colonne ROLLUP nella chiamata alla funzione SUMMARIZE specificata:

SUMMARIZE(ResellerSales_USD  
      , ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])  
      , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])  
      , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])  
      , "Is Sub Total for DateTimeCalendarYear", ISSUBTOTAL(DateTime[CalendarYear])  
      , "Is Sub Total for ProductCategoryName", ISSUBTOTAL(ProductCategory[ProductCategoryName])  
)  

Restituisce la tabella seguente:

[Is Sub Total for DateTimeCalendarYear] [Is Sub Total for ProductCategoryName] DateTime[CalendarYear] ProductCategory[ProductCategoryName] [Sales Amount (USD)] [Discount Amount (USD)]
FALSE FALSO
FALSO FALSE 2008 Bikes 12968255.42 36167.6592
FALSE FALSE 2005 Bikes 6958251.043 4231.1621
FALSE FALSE 2006 Bikes 18901351.08 178175.8399
FALSE FALSE 2007 Bikes 24256817.5 276065.992
FALSE FALSE 2008 Componenti 2008052.706 39.9266
FALSE FALSE 2005 Componenti 574256.9865 0
FALSE FALSE 2006 Componenti 3428213.05 948.7674
FALSE FALSE 2007 Componenti 5195315.216 4226.0444
FALSE FALSE 2008 Clothing 366507.844 4151.1235
FALSE FALSE 2005 Clothing 31851.1628 90.9593
FALSE FALSE 2006 Clothing 455730.9729 4233.039
FALSE FALSE 2007 Clothing 815853.2868 12489.3835
FALSE FALSE 2008 Accessori 153299.924 865.5945
FALSE FALSE 2005 Accessori 18594.4782 4.293
FALSE FALSE 2006 Accessori 86612.7463 1061.4872
FALSE FALSE 2007 Accessori 275794.8403 4756.6546
FALSE TRUE
FALSO TRUE 2008 15496115.89 41224.3038
FALSE TRUE 2005 7582953.67 4326.4144
FALSE TRUE 2006 22871907.85 184419.1335
FALSE TRUE 2007 30543780.84 297538.0745
TRUE TRUE 76494758.25 527507.9262

SUMMARIZECOLUMNS