CALCULATE in Power BI: cos'è, sintassi ed esempi pratici

CALCULATE è forse la funzione più importante e popolare all’interno di Power BI. Questo perché è semplice da applicare. Comoda e versatile, grazie a questa funzione potrai amplificare la portata dell’analisi dei dati e creare report ancora più interessanti. Per questo motivo, nel seguente articolo, ti faremo scoprire cos’è la funzione CALCULATE di Power BI, come utilizzarla e qual è la sua sintassi. Naturalmente non potranno mancare degli esempi pratici.

Cosa troverai in questo articolo

  • Introduzione a DAX in Power BI
  • Cosa sono le funzioni DAX in Power BI
  • Cos’è la funzione CALCULATE in Power BI?
  • CALCULATE di Power BI: sintassi
  • Come usare CALCULATE in Power BI?
  • CALCULATE di Power BI: esempi pratici
CALCULATE in Power BI: cos'è, sintassi ed esempi pratici

Introduzione a DAX in Power BI

Le Data Analysis Expressions (DAX) rappresentano formule avanzate per l'analisi e il calcolo dei dati. In Power BI, DAX è il motore che gestisce tutti i calcoli, offrendo un insieme di strumenti flessibili e potenti. Grazie a DAX, è possibile generare nuovi campi e tabelle direttamente nel modello dati.

Power BI, insieme ad altri strumenti di business intelligence, utilizza in modo efficace i dati disponibili grazie soprattutto alla potenza delle formule DAX integrate in Power BI.

Cosa significa che DAX è un linguaggio funzionale? Significa che ogni frammento di codice agisce come una funzione. Ciò significa che è possibile includere dichiarazioni condizionali, funzioni nidificate, riferimenti a valori e altri componenti, tutti utilizzabili all'interno di un'espressione DAX per l'esecuzione.

Le formule DAX possono gestire due principali tipi di dati: numerici e non numerici. L'interpretazione delle espressioni DAX avviene partendo dalla funzione più interna per poi procedere verso l'esterno. Per questo motivo, è essenziale strutturare una formula DAX in modo chiaro e organizzato.

Anche se DAX è strettamente legato a Power BI, viene utilizzato anche in Power Pivot per Excel e nei servizi di analisi di SQL Server (SSAS).

Menu principale per la creazione di una misura Dax in Power BI

È possibile eseguire calcoli in Power BI?

Ovviamente è possibile fare calcoli in Power BI, grazie alle formule DAX. Queste formule DAX somigliano alle formule di Excel, condividendo molte delle stesse funzioni. Tuttavia, a differenza di Excel, le funzioni DAX sono progettate per operare su dati che vengono interattivamente sezionati o filtrati all'interno di un report, come quelli in Power BI Desktop.

In Excel, ogni riga in una tabella può avere una formula unica. Tuttavia, in Power BI, una formula DAX creata per una nuova colonna genera un risultato per ogni riga della tabella. I valori di queste colonne vengono aggiornati automaticamente ogni volta che i dati sottostanti vengono aggiornati o modificati.

Quando un problema aziendale richiede calcoli complessi o personalizzati che vanno oltre le semplici funzioni di SOMMA o MEDIA, è fondamentale creare formule DAX. Anche se una conoscenza di base dell'interfaccia di Power BI permette di creare e condividere report online in modo efficiente, comprendere l'uso delle funzioni DAX in Power BI è fondamentale per eseguire calcoli più complessi e per condurre analisi dimensionali avanzate.

Cosa sono le funzioni DAX in Power BI

Il linguaggio DAX, Data Analysis Expressions, non è altro che un insieme di funzioni e operatori attraverso cui è possibile creare formule per espressioni in Power BI Desktop, ma anche in Excel Power Pivot e in Microsft SQL Server Analysis Services.

DAX comprende una libreria di circa 200 funzioni, operatori e costrutti, tramite cui è possibile creare svariate formule per calcolare risultati per ogni genere di problema o esigenza dell’analisi del dato. Ciò mira a creare una grande flessibilità del linguaggio DAX.

Una funzione DAX è essenzialmente una formula predefinita progettata per eseguire calcoli specifici utilizzando gli argomenti forniti. Questi argomenti devono seguire una sequenza precisa e possono includere vari tipi di input come riferimenti a colonne, valori numerici, testo, costanti, altre formule o funzioni, o valori logici come VERO o FALSO.

Ogni funzione DAX è progettata per eseguire una specifica operazione sui valori forniti come argomenti. In una formula DAX, hai la flessibilità di includere più argomenti, permettendo così una gamma di calcoli e analisi complesse.

Vediamo alcune delle funzioni Power BI DAX:

  • Le funzioni di intelligenza temporale in DAX sono progettate per sfruttare le informazioni intrinseche sul calendario e sulle date, facilitando calcoli avanzati. Integrando intervalli di tempo e date con aggregazioni o altre elaborazioni, queste funzioni permettono confronti dettagliati tra vendite, inventario e altre metriche su intervalli di tempo equivalenti.
  • Le funzioni di data e ora sono utilizzate per eseguire calcoli che coinvolgono valori di data e ora.
  • Le funzioni logiche sono progettate per valutare espressioni o argomenti, restituendo VERO o FALSO in base al soddisfacimento della condizione specificata. D'altra parte, le funzioni matematiche e trigonometriche vengono utilizzate per eseguire una serie di operazioni matematiche sui valori forniti.

Le formule DAX sono essenziali in Power BI per realizzare calcoli sia nelle colonne calcolate che nelle misure. Inoltre, DAX è cruciale per applicare misure di sicurezza a livello di riga, garantendo così la protezione dei dati all'interno di report e dashboard.

Per creare colonne calcolate e misure, puoi utilizzare la barra delle formule che si trova nella parte superiore della finestra di progettazione del modello oppure l'editor DAX. Per impostare formule relative alla sicurezza a livello di riga, è necessario accedere al Role Manager o alla finestra di dialogo Gestione ruoli.

Cos’è la funzione CALCULATE in Power BI?

Secondo la documentazione di Microsoft Power BI, la funzione CALCULATE è categorizzata sotto le funzioni di filtro. Essa è definita come "valutare un'espressione all'interno di un contesto di filtro modificato." Un'espressione, che tipicamente rappresenta una misura, include funzioni come SOMMA, MEDIA e CONTA. Questa espressione viene valutata nel contesto di uno o più filtri.

In Power BI, i filtri possono essere applicati ai report semplicemente utilizzando i selettori (slicers), senza la necessità di creare una misura con la funzione CALCULATE. Tuttavia, ci sono numerosi scenari in cui l'uso della funzione CALCULATE risulta più vantaggioso. È particolarmente efficace quando viene utilizzata come parte di una funzione o di un calcolo più ampio.

Una delle funzioni più versatili per arricchire i tuoi report con approfondimenti più dettagliati è la funzione CALCULATE. Questa funzione di Power BI ti consente di modificare il contesto di calcolo all'interno di una misura, con il contesto definito dall'ambiente in cui avviene il calcolo.

Con la funzione CALCULATE di Power BI, puoi passare senza problemi ai calcoli basati sul tempo. Questa funzione ti permette di generare informazioni perspicaci e di alta qualità sfruttando le diverse capacità di calcolo di Power BI.

Hai bisogno di una mano con i report di Power BI?

Dev4Side Software è specializzata nell'elaborazione di report personalizzati tramite Microsoft Power BI, trasformando dati complessi in dashboard e report intuitivi per supportare decisioni aziendali informate.

Operando in maniera verticale sull'intero ecosistema Power Platform di Microsoft, abbiamo sviluppato una ottima competenza su Power BI che ci permette di offrire soluzioni di business intelligence per evidenziare insight critici e promuovere l'efficienza operativa.

Contattaci per trasformare i dati della tua azienda in azioni concrete.

CALCULATE di Power BI: sintassi

Dopo aver analizzato cosa sia la funzione CALCULATE Power BI, vediamo di seguito la sua sintassi di base.

CALCULATE( <expression> [, <filter1> [, <filter2> [, ...]]])
Scrivendo CALCULATE l’intelligence in Power BI suggerisce i parametri DAX da inserire

La funzione CALCULATE di Power BI opera valutando un'espressione all'interno di un contesto di filtro modificato. L'argomento principale definisce l'espressione da valutare, mentre gli argomenti aggiuntivi, che sono opzionali, forniscono filtri che possono adattare il modo in cui l'espressione viene valutata.

I filtri possono essere applicati per modificare il contesto di filtro di un'espressione, consentendo calcoli basati su condizioni particolari o su sottoinsiemi di dati. Questa capacità è particolarmente utile per derivare valori che soddisfano criteri specifici o per concentrarsi su segmenti distinti di dati.

Ad esempio, il seguente codice calcola il totale delle vendite per l'anno 2024, ma specificamente per la categoria di prodotto "Elettronica": “pythonCALCULATE(SUM(Sales[Amount]), Sales[Year] = 2024, Sales[Category] = "Electronics").

In questo esempio, SUM(Sales[Amount]) è l'espressione utilizzata per determinare il totale delle vendite. I filtri Sales[Year] = 2024 e Sales[Category] = "Electronics" sono applicati all'espressione per modificare il contesto di filtro e includere solo i dati delle vendite per l'anno 2024 e per la categoria Elettronica.

Il risultato di questo calcolo sarà il totale delle vendite per la categoria Elettronica nell'anno 2024.

La funzione CALCULATE di Power BI è composta da due elementi principali:

  1. Espressione: questa parte rappresenta il componente di aggregazione, formulato in modo simile a una misura, utilizzando funzioni come SOMMA, MEDIA e CONTA.
  2. Filtri: questo componente consente di definire uno o più filtri che determinano il contesto entro il quale viene applicata l'aggregazione.

La funzione CALCULATE supporta tre tipi di filtri:

  1. Espressioni di Filtro Booleano: sono filtri semplici che valutano a TRUE o FALSE.
  2. Espressioni di Filtro su Tabelle: sono filtri più complessi che restituiscono una tabella di risultati.
  3. Funzioni di Modifica dei Filtri: questa categoria include filtri come ALL e KEEPFILTERS, che offrono un maggiore controllo sul contesto del filtro applicato.

Puoi includere più filtri nel componente di filtro della funzione CALCULATE Power BI separandoli con virgole. Questi filtri vengono valutati collettivamente e la loro sequenza non influisce sui risultati.

Puoi gestire come i filtri vengono valutati utilizzando operatori logici. Utilizzando l'operatore AND (`&&`), tutte le condizioni specificate devono essere TRUE affinché la valutazione abbia successo. Questo è anche il comportamento predefinito per i filtri. Al contrario, l'operatore OR (`||`) richiede che almeno una delle condizioni sia TRUE affinché il risultato venga restituito.

Come usare CALCULATE in Power BI?

Per utilizzare la funzione CALCULATE in Power BI, inizia aprendo Power BI Desktop. Successivamente, vai al riquadro Dati sul lato destro dell'interfaccia e scegli la tabella in cui intendi creare una nuova misura. Fai clic con il pulsante destro del mouse su questa tabella e seleziona l'opzione per una Nuova misura. Ad esempio, aggiungeremo questa misura alla tabella Vendite.

Se preferisci evitare una sintassi complessa, inizia creando una misura Totale Vendite utilizzando la formula: SUM(Sales[SalesAmount]). Successivamente, puoi definire la tua misura Vendite 2023 in questo modo:

2023 Sales = CALCULATE(SUM(Sales[SalesAmount]), 'Calendar'[Year]=2023)

Se preferisci evitare una sintassi lunga, inizia creando una misura Totale Vendite utilizzando la formula: `SUM(Sales[SalesAmount])`. Poi, puoi definire la misura Vendite 2023 in questo modo:

2023 Sales = CALCULATE([Total Sales], 'Calendar'[Year]=2023)

Dopo di che, puoi personalizzare l'aspetto della tua misura nella scheda Strumenti Misura. Ad esempio, puoi formattarla per visualizzarla come valuta con due decimali. Se poi crei una tabella che mostra le categorie di prodotto insieme a due misure - Totale Vendite e la nuova misura Vendite 2023 - questa ultima sarà sempre filtrata per mostrare le vendite dell'anno 2023.

Ecco tre aspetti importanti della formula.

L'argomento `<expression>` utilizza una misura chiamata [Totale Vendite]. Puoi anche utilizzare qualsiasi formula che possa definire una misura, come `SUM(Sales[SalesAmount])`.

Per l'argomento `<filter>`, non racchiudiamo 2023 tra virgolette perché la colonna Anno è di tipo numerico. Se fosse di tipo testuale, dovresti scriverlo come `"2023"`.

In questo esempio, utilizziamo solo un `<filter>`, ma puoi includere più filtri all'interno di una singola formula CALCULATE se necessario. Ora che abbiamo incorporato CALCULATE in una misura, esploriamo come funziona questa funzione.

Supponiamo di aggiungere un filtro a discesa (slicer) che filtra la tabella per l'anno 2020. In questo caso, la formula CALCULATE in Power BI sovrascriverà questo filtro, mostrando le vendite per il 2023 invece.

Questo accade perché gli argomenti `<filter>` nella funzione CALCULATE vengono valutati durante la fase di "filtraggio" del calcolo della misura. Essi modificano il contesto di filtro fornito dalla visualizzazione. Questo aggiustamento avviene prima che questi filtri vengano applicati alle tabelle di origine e prima dell'inizio della fase di calcolo.

Inoltre, il filtro nella formula CALCULATE in Power BI aggiunge uno strato extra al contesto di filtro. Questo nuovo filtro (Anno = 2023) viene combinato con quello esistente (CategoriaProdotto). Il risultato è l'intersezione di questi due filtri, mostrando le vendite per ciascuna categoria di prodotto specificamente per l'anno 2023.

In sintesi, la funzione CALCULATE in Power BI ti consente di modificare il contesto delle tue calcolazioni sui dati, offrendo un controllo maggiore sull'analisi dei tuoi dati.

CALCULATE di Power BI: esempi pratici

Fino ad ora abbiamo esplorato il mondo delle funzioni DAX e, nello specifico, la formula CALCULATE Power BI, la sua sintassi e come usarla. Adesso, non ci rimane che applicare la formula in alcuni esempi pratici e mostrare tutto il suo potenziale di una delle formule più usate in Power BI.

Esempio Dataset E-Commerce

Per questo esempio di CALCULATE Power BI utilizzeremo un dataset di e-commerce su cui applicare la nostra formula.

Questo dataset include dettagli su ogni acquisto effettuato dai clienti, come il paese di origine, la descrizione del prodotto, la data e l'ora dell'acquisto, nonché la quantità e il prezzo di ciascun articolo acquistato.

Se volessimo sapere come confrontare il fatturato mensile totale dell’Italia con quello dei restanti paesi, allora dovremmo procedere nel seguente modo.

Per iniziare, stabiliremo due misure utilizzando la funzione CALCULATE. La nostra prima misura prevede l'applicazione di un filtro booleano di base per calcolare il fatturato totale specifico per l'Italia. Questo sarà realizzato utilizzando la funzione SUM per aggregare i dati di fatturato per quel paese.

Italy Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
             'Online Retail'[Country] = "Italy")

La funzione CALCULATE viene utilizzata per modificare il contesto in cui viene eseguita la funzione SUM. La funzione SUM, a sua volta, somma i valori della colonna "Revenue" nella tabella "Online Retail".

La funzione CALCULATE richiede due argomenti: il primo è l'espressione da valutare (come la funzione SUM), e il secondo è un filtro che altera il contesto in cui questa espressione viene valutata.

Nel codice, il filtro è `'Online Retail'[Country] = "Italy"`, che restringe la tabella "Online Retail" per includere solo le righe in cui la colonna "Country" corrisponde a "Italy".

Pertanto, il codice calcola il totale della colonna "Revenue" nella tabella "Online Retail", ma include solo le righe in cui la colonna "Country" è impostata su "Italy". Il risultato viene poi salvato in una variabile chiamata "Italy Revenue".

Successivamente, costruiremo una misura comparabile, ma questa volta utilizzando la funzione FILTER. La funzione FILTER itera su ciascuna riga nella colonna Country e produce una tabella che include solo le righe che soddisfano i criteri di filtro specificati. Questo approccio è necessario perché, a differenza di un filtro TRUE o FALSE semplice, FILTER restituisce una tabella con più valori che soddisfano la condizione.

Non-Italy Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
                   FILTER('Online Retail',
                       'Online Retail'[Country] <> "Italy"))

E il gioco è fatto.

Fomula DAX del nostro esempio nell'editor di Power BI

Se invece vi stesse chiedendo, considerando lo stesso dataset di e-commerce, come ottenere la percentuale del fatturato totale proveniente dall’Italia, sappiate che questo tipo di domanda è frequentemente incontrato da sviluppatori e utenti di Power BI, rendendolo uno scenario ideale per l'applicazione della funzione CALCULATE.

Per calcolare la percentuale di un totale, dobbiamo prima ottenere il valore totale non influenzato da altri contesti di filtro nel report. Questo si realizza utilizzando un modificatore di filtro chiamato funzione ALL. Applicando questa funzione, indichiamo quale colonna deve essere completamente ignorata in termini di filtraggio durante il calcolo.

In questo esempio, vogliamo determinare la percentuale del fatturato totale specificamente per l'Italia. Questo richiede che il nostro calcolo ignori qualsiasi filtro applicato alla colonna Country.

Total Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
                 ALL('Online Retail'[Country]))

In questo scenario, calcola la somma della colonna 'Revenue' nel dataset 'Online Retail', ignorando qualsiasi filtro applicato alla colonna 'Country' tramite l'uso della funzione ALL. Questo porta al fatturato totale del dataset 'Online Retail', indipendentemente da eventuali filtri specifici per paese.

Ricorda che il nome della variabile 'Total Revenue' dovrebbe essere scritto senza spazi, quindi dovrebbe essere 'TotalRevenue'.

Questo è cruciale perché CALCULATE può operare all'interno di un contesto di filtro che sta già applicando un filtro a Product[Color]. Quando si utilizza ALL in questo scenario, essa sovrascrive il filtro esistente su Product[Color] e applica il nuovo filtro specificato all'interno di CALCULATE. Questo comportamento è particolarmente evidente se cambi il filtro a discesa (slicer) da Brand a Color nella matrice.

Con il fatturato totale stabilito, possiamo ora creare una misura per visualizzare la percentuale del fatturato totale. Poiché il nostro focus è sull'Italia, utilizzeremo ancora la funzione CALCULATE, ma questa volta applicando un filtro booleano semplice.

Italy % of Revenue = CALCULATE(SUM('Online Retail'[Revenue]) / [Total Revenue],
                   'Online Retail'[Country] = "Italy")

Il segmento '/[Total Revenue]' del codice divide il fatturato per l'Italia per il fatturato totale di tutti i paesi nel dataset. Nel frattempo, la parte finale del codice, `'Online Retail'[Country] = "Italy"`, restringe il dataset per includere solo i record provenienti dall'Italia.

Nel complesso, questo codice calcola la percentuale del fatturato contribuito dall'Italia all'interno del dataset 'Online Retail'.

Ora che conosci anche la percentuale totale del fatturato dell’Italia, vorresti sapere quale sia il fatturato quotidiano cumulativo, perché analizzare il fatturato cumulativo può fornire preziose intuizioni sulle tendenze di fatturato. Tracciando questo fatturato cumulativo, è possibile valutare visivamente se la crescita del fatturato è accelerata nel tempo o ha seguito un incremento più graduale.

Per risolvere questa query, dobbiamo costruire una misura che combini la funzione CALCULATE con diverse funzioni di filtro: ALLSELECTED, FILTER e una valutazione utilizzando la funzione MAX.

Cumulative Revenue = CALCULATE(SUM('Online Retail'[Revenue]),
               FILTER( ALLSELECTED('Online Retail'[InvoiceDate]),
               'Online Retail'[InvoiceDate] <= MAX('Online Retail'[InvoiceDate])))
Formula DAX del nostro esempio nell'editor di Power BI

La funzione FILTER viene utilizzata per restringere il dataset in base a una condizione specificata. In questo caso, la condizione è che 'InvoiceDate' deve essere minore o uguale alla data di fattura massima nel dataset. Nel frattempo, la funzione ALLSELECTED viene impiegata per eliminare eventuali filtri esistenti sulla colonna 'InvoiceDate'.

In sintesi, il codice calcola il fatturato totale per tutte le date fino e inclusa la data di fattura massima nel dataset, ottenendo così il fatturato cumulativo.

Esploriamo il significato di questi filtri.

La funzione FILTER è fondamentale perché valuta ciascuno dei due filtri specificati su base riga per riga. Restituisce una tabella che include solo le righe in cui le condizioni sono soddisfatte.

La funzione ALLSELECTED reimposta il filtro su 'InvoiceDate' all'interno della query corrente—come nel grafico a linee mostrato qui sotto—preservando comunque eventuali filtri esterni applicati, come quelli provenienti dai selettori.

La funzione MAX viene impiegata nella valutazione per determinare la data massima nella query. Utilizziamo questo valore per sommare il fatturato per tutte le date che sono pari o precedenti alla data corrente nella query.

Conclusioni

La funzione CALCULATE Power BI amplifica notevolmente le capacità e l'adattabilità dell'analisi e della reportistica dei dati. Modificando il contesto dei filtri durante la valutazione delle espressioni, CALCULATE consente agli utenti di eseguire calcoli dinamici e ottenere approfondimenti più dettagliati dai propri dataset.

In questo articolo, abbiamo esplorato i fondamenti di DAX, approfondito la sintassi e l'applicazione della funzione CALCULATE in Power BI, e presentato esempi pratici per illustrare le sue capacità. Dalle aggregazioni semplici ai calcoli complessi, la versatilità e la potenza di CALCULATE la rendono uno strumento cruciale per gli utenti di Power BI.

In conclusione, la funzione CALCULATE è essenziale per sbloccare tutto il potenziale di Power BI. La sua capacità di adattare i contesti dei filtri e di eseguire calcoli complessi la rende una pietra miliare della modellazione e dell'analisi avanzata dei dati. Integrare CALCULATE nel tuo toolkit DAX aprirà la strada a decisioni basate sui dati più approfondite e a una reportistica più completa in Power BI.

FAQ sulla funzione CALCULATE in Power BI

Cos'è la funzione CALCULATE in Power BI?

La funzione CALCULATE viene utilizzata per valutare un'espressione in un contesto di filtro modificato, essenziale per l'analisi dinamica dei dati.

In cosa differisce CALCULATE dalle altre funzioni DAX?

CALCULATE può modificare il contesto di filtro dei dati analizzati, consentendo calcoli più complessi.

Qual è la sintassi di CALCULATE?

La sintassi base è CALCULATE(<espressione>, <filtro1>, <filtro2>, ...), dove <espressione> è il calcolo da eseguire, e i filtri aggiustano il contesto.

CALCULATE può gestire più filtri?

Sì, è possibile applicare più filtri per perfezionare il contesto del calcolo.

Quali sono i casi d'uso comuni per CALCULATE?

Viene spesso utilizzato per calcoli basati sul tempo, filtraggio di dati per condizioni specifiche e confronto di metriche su diverse dimensioni.

Come funzionano i filtri Booleani con CALCULATE?

I filtri Booleani in CALCULATE restituiscono TRUE o FALSE, determinando quali righe di dati vengono incluse nel calcolo.

Come modifica CALCULATE il contesto?

CALCULATE modifica il contesto di filtro in cui viene valutata un'espressione, offrendo un controllo più preciso sui dati inclusi.

Entra in contatto con il team

Modern Work

Il team Modern Work risponde in maniera efficace e veloce alle necessità IT, in cui lo sviluppo software rappresenta la componente principale. Le figure tecniche hanno tutte una formazione incentrata sulla realizzazione di progetti software su stack tecnologici Microsoft e possiedono competenze nella gestione di progetti agili o di lunga durata.