• Power BI e DAX
  • SUMMARIZE in DAX per riepiloghi affidabili in Power BI

SUMMARIZE in DAX per riepiloghi affidabili in Power BI

Bruno De luca 16 agosto 2026
DAX per riassumere età media e numero di animali: maiale (3 anni, 1), criceto (1,7 anni, 5), gatto (2,5 anni, 2).

Indice

Quando un report Power BI deve mostrare vendite per anno, categoria o cliente, il problema non è soltanto sommare i valori: bisogna costruire una tabella riepilogativa coerente con il modello dati. In questa guida chiarisco come funziona SUMMARIZE in DAX, quando conviene usarla, quali alternative scegliere e quali errori evitare per ottenere risultati affidabili.

La sintesi essenziale per usare SUMMARIZE in DAX

  • SUMMARIZE raggruppa i dati e restituisce una nuova tabella.
  • È utile per creare riepiloghi per anno, prodotto, area o cliente.
  • Le colonne di raggruppamento devono appartenere alla tabella indicata o a una tabella correlata.
  • Per molti scenari moderni, SUMMARIZECOLUMNS è una scelta più lineare.
  • Il risultato dipende dal contesto di filtro e dalle relazioni del modello.

DAX per riassumere età media e numero di animali: maiale (3 anni, 1), criceto (1,7 anni, 5), gatto (2,5 anni, 2).

DAX in Power BI serve a trasformare i dati in misure

DAX, acronimo di Data Analysis Expressions, è il linguaggio usato in Power BI, Power Pivot ed Analysis Services per creare misure, colonne calcolate e tabelle calcolate. Non è semplicemente una versione più complessa delle formule di Excel: lavora soprattutto sul modello semantico, sulle relazioni tra tabelle e sul contesto in cui una formula viene valutata.

Una misura come Totale vendite = SUM(Vendite[Importo]) restituisce un valore scalare. SUMMARIZE, invece, restituisce una tabella con una riga per ogni combinazione distinta delle colonne indicate. Questa differenza è fondamentale: una misura alimenta direttamente una visualizzazione, mentre una tabella riepilogativa può diventare l’input di altre funzioni DAX.

Io consiglio di imparare SUMMARIZE dopo aver compreso almeno tre concetti: relazioni, contesto di filtro e funzioni di aggregazione. Senza queste basi, il rischio è ottenere una tabella formalmente corretta ma con totali che non rispondono alla domanda analitica.

Come funziona SUMMARIZE e qual è la sintassi

La struttura generale della funzione è la seguente:

SUMMARIZE(
    ,
    ,
    ,
    "Nome misura", 
)

Il primo argomento definisce la tabella di partenza. Dopo si indicano una o più colonne per il raggruppamento e, se necessario, coppie formate da un nome e da un’espressione che calcola una colonna aggiuntiva.

Supponiamo di avere una tabella Vendite con le colonne Anno, Categoria e Importo. Una sintesi semplice può essere scritta così:

SUMMARIZE(
    Vendite,
    Vendite[Anno],
    Vendite[Categoria],
    "Totale vendite", SUM(Vendite[Importo])
)

Il risultato conterrà una riga per ogni coppia anno-categoria, insieme al totale calcolato per quel gruppo. Se il modello contiene tre anni e quattro categorie effettivamente presenti nei dati, il numero di righe non sarà necessariamente 12, perché SUMMARIZE considera le combinazioni realmente disponibili.

In base alle impostazioni locali di Power BI, il separatore degli argomenti può essere la virgola oppure il punto e virgola. Se una formula copiata da un esempio genera un errore di sintassi, questo è uno dei primi elementi da controllare.

Un esempio pratico con vendite per anno e categoria

Immaginiamo un modello con una tabella dei fatti Vendite e dimensioni separate per Prodotto, Cliente e Calendario. In un modello ben strutturato, le categorie dovrebbero provenire dalla dimensione prodotto e gli anni dalla dimensione calendario, non essere duplicate inutilmente nella tabella delle transazioni.

Una tabella calcolata di riepilogo potrebbe usare le dimensioni collegate:

Riepilogo vendite =
SUMMARIZE(
    Vendite,
    Calendario[Anno],
    Prodotto[Categoria],
    "Ricavi", SUM(Vendite[Importo]),
    "Quantità", SUM(Vendite[Quantità])
)

Questo approccio permette di leggere i risultati secondo la logica del modello. La colonna Ricavi mostra l’importo aggregato, mentre Quantità consente di distinguere una crescita dovuta a più pezzi venduti da una crescita generata soltanto da prezzi medi più alti.

Per calcolare un indicatore più significativo, si può aggiungere una misura derivata:

Riepilogo vendite =
ADDCOLUMNS(
    SUMMARIZE(
        Vendite,
        Calendario[Anno],
        Prodotto[Categoria]
    ),
    "Ricavi", CALCULATE(SUM(Vendite[Importo])),
    "Quantità", CALCULATE(SUM(Vendite[Quantità]))
)

Qui ADDCOLUMNS aggiunge colonne alla tabella di gruppi. L’uso di CALCULATE rende esplicita la trasformazione del contesto di riga in contesto di filtro, un dettaglio che spesso decide se il risultato sarà corretto oppure identico su tutte le righe.

Per una misura percentuale, invece, spesso non serve costruire una tabella calcolata. È più efficiente creare una misura dinamica, capace di reagire ai filtri applicati dall’utente nel report:

Margine percentuale =
DIVIDE(
    [Margine],
    [Ricavi],
    0
)

La mia regola pratica è semplice: uso una tabella riepilogativa quando mi serve davvero una struttura tabellare riutilizzabile. Se devo soltanto mostrare un totale o una percentuale in una scheda, preferisco una misura.

SUMMARIZE, SUMMARIZECOLUMNS e GROUPBY non fanno la stessa cosa

Le funzioni di raggruppamento possono sembrare intercambiabili, ma hanno comportamenti diversi. Scegliere quella giusta evita formule più complesse del necessario e riduce i problemi legati al contesto.

Funzione Uso principale Caratteristica da ricordare
SUMMARIZE Creare una tabella raggruppata a partire da una tabella esistente Flessibile, ma richiede attenzione al contesto delle colonne calcolate
SUMMARIZECOLUMNS Raggruppare colonne del modello e calcolare espressioni Spesso più adatta alle query e ai riepiloghi moderni
GROUPBY Aggregare risultati intermedi prodotti da espressioni DAX Permette di usare CURRENTGROUP() e non applica automaticamente CALCULATE
SELECTCOLUMNS Selezionare o rinominare colonne Non è una funzione di aggregazione vera e propria

Un esempio con SUMMARIZECOLUMNS è più compatto:

SUMMARIZECOLUMNS(
    Calendario[Anno],
    Prodotto[Categoria],
    "Ricavi", [Ricavi],
    "Margine", [Margine]
)

Questa funzione lavora direttamente con colonne qualificate del modello e include solo le combinazioni per cui le espressioni non risultano vuote, salvo l’uso di funzioni specifiche come IGNORE. Per questo motivo può produrre un risultato diverso da una semplice combinazione di valori distinti.

GROUPBY è invece più adatta quando si parte da una tabella intermedia. Il suo comportamento è intenzionalmente diverso: nelle colonne aggiuntive non esegue il CALCULATE implicito associato a SUMMARIZE e permette di lavorare con CURRENTGROUP(). Non la sceglierei come prima funzione da imparare, ma diventa utile per aggregazioni successive su risultati già elaborati.

Gli errori più comuni e come evitarli

Confondere una misura con una tabella calcolata

SUMMARIZE restituisce una tabella, quindi non può sostituire automaticamente una misura. Se il risultato deve aggiornarsi quando l’utente seleziona un anno, un cliente o un’area geografica, una misura dinamica è spesso la soluzione migliore.

Ignorare le relazioni del modello

Se Calendario[Anno] non filtra correttamente Vendite, il raggruppamento può sembrare plausibile ma restituire valori non distinti per anno. Prima di correggere la formula, verifico sempre la direzione del filtro, la cardinalità e la presenza di una relazione attiva.

Aggiungere troppe espressioni dentro SUMMARIZE

Le colonne calcolate direttamente dentro SUMMARIZE possono diventare difficili da leggere e da controllare. In molti casi è più chiaro separare i passaggi con SUMMARIZE seguito da ADDCOLUMNS, usando CALCULATE in modo esplicito.

Usare colonne non adatte al raggruppamento

Raggruppare per una descrizione testuale molto dettagliata, come un codice transazione o un indirizzo completo, può creare una tabella enorme. Prima di aggiungere una colonna, mi chiedo sempre se rappresenta davvero una dimensione analitica oppure soltanto un dettaglio operativo.

Leggi anche: DATEADD DAX per confrontare periodi in Power BI

Dimenticare i valori vuoti

Un gruppo senza vendite può restituire BLANK() invece di zero. Se il report richiede uno zero esplicito, bisogna gestirlo con attenzione, per esempio tramite COALESCE([Ricavi], 0). Non conviene sostituire automaticamente tutti i vuoti, perché un valore mancante e un valore realmente pari a zero possono avere significati diversi.

Un metodo pratico per costruire riepiloghi DAX affidabili

Per lavorare senza perdere tempo, parto dalla domanda aziendale e non dalla funzione. “Quanto abbiamo venduto?” richiede una misura; “come sono distribuite le vendite per anno e categoria?” può richiedere una tabella raggruppata.

  1. Definisci il livello di dettaglio, per esempio anno, mese, prodotto o cliente.
  2. Controlla il modello e verifica che le dimensioni filtrino correttamente la tabella dei fatti.
  3. Crea prima le misure base, come ricavi, quantità e margine.
  4. Costruisci il raggruppamento con SUMMARIZE o SUMMARIZECOLUMNS.
  5. Confronta i totali con una visualizzazione o con una misura indipendente.
  6. Testa i filtri su più periodi, categorie e clienti prima di pubblicare il report.

Per verificare una tabella intermedia, la DAX Query View o uno strumento come DAX Studio sono molto utili. Posso eseguire una query con EVALUATE, osservare le righe restituite e capire subito se il problema nasce dal raggruppamento, dalla relazione o dall’espressione aggregata.

Le prestazioni dipendono soprattutto dalla qualità del modello. Una tabella dei fatti molto grande, colonne ad alta cardinalità e formule ripetute possono aumentare i tempi di calcolo; una corretta separazione tra dimensioni e fatti, invece, rende il riepilogo più leggero e prevedibile.

La scelta giusta dipende dalla domanda analitica

SUMMARIZE è una funzione importante per comprendere il raggruppamento in DAX, ma non è una risposta universale. Serve quando occorre ottenere una tabella organizzata per gruppi; per una metrica visualizzata nel report, una misura resta normalmente più adatta.

Il passaggio che fa davvero la differenza è imparare a leggere il contesto. Una formula breve può produrre risultati sbagliati se il modello non ha relazioni solide o se il contesto di filtro non viene trasformato nel modo atteso.

Quando il riepilogo cresce di complessità, conviene valutare SUMMARIZECOLUMNS e separare le misure dalle tabelle intermedie. In questo modo il modello rimane più leggibile, i controlli diventano più semplici e il report può evolvere senza trasformare ogni modifica in una ricerca dell’errore.

Domande frequenti

SUMMARIZE è utile quando serve una nuova tabella organizzata per gruppi, ad esempio anno e categoria, da riutilizzare in altre espressioni DAX. Se invece devi mostrare soltanto un totale o una percentuale che reagisce ai filtri del report, una misura dinamica è generalmente più adatta.

Puoi usare le colonne correlate delle dimensioni, come Calendario[Anno] e Prodotto[Categoria], partendo dalla tabella Vendite. È fondamentale che le relazioni siano attive e che le dimensioni filtrino correttamente la tabella dei fatti.

SUMMARIZE crea una tabella raggruppata a partire da una tabella esistente. SUMMARIZECOLUMNS lavora direttamente con colonne qualificate del modello ed è spesso più lineare per query e riepiloghi moderni. GROUPBY è più adatta alle tabelle intermedie, usa CURRENTGROUP() e non applica automaticamente CALCULATE.

Separare il raggruppamento dall'aggiunta delle aggregazioni può rendere la formula più leggibile e controllabile. CALCULATE trasforma esplicitamente il contesto di riga in contesto di filtro, evitando che il valore calcolato risulti identico su tutte le righe.

Valuta l'articolo

Valutazione: 0.00 Numero di voti: 0

Tag

groupby
relazioni
summarize
summarizecolumns
Autor Bruno De luca
Bruno De luca
Mi chiamo Bruno De Luca e da 9 anni mi dedico con passione all'analisi dei dati, alla Business Intelligence e alla Data Science. Quello che mi affascina di questo campo è la capacità di trasformare numeri grezzi in storie comprensibili, aiutando a prendere decisioni più informate e strategiche. Sul sito mondobi.it, il mio obiettivo è condividere conoscenze, semplificare concetti complessi e offrire prospettive aggiornate, basandomi su un approccio rigoroso di verifica delle fonti e organizzazione delle informazioni. Cerco sempre di rendere i contenuti accessibili e utili, per chiunque voglia navigare nel mondo dei dati con maggiore consapevolezza.

Condividi post

Scrivi un commento