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.
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).
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.
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 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.
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.
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.
Dopo aver analizzato cosa sia la funzione CALCULATE Power BI, vediamo di seguito la sua sintassi di base.
CALCULATE( <expression> [, <filter1> [, <filter2> [, ...]]])
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:
La funzione CALCULATE supporta tre tipi di filtri:
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.
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.
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.
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.
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])))
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.
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.
La funzione CALCULATE viene utilizzata per valutare un'espressione in un contesto di filtro modificato, essenziale per l'analisi dinamica dei dati.
CALCULATE può modificare il contesto di filtro dei dati analizzati, consentendo calcoli più complessi.
La sintassi base è CALCULATE(<espressione>, <filtro1>, <filtro2>, ...)
, dove <espressione>
è il calcolo da eseguire, e i filtri aggiustano il contesto.
Sì, è possibile applicare più filtri per perfezionare il contesto del calcolo.
Viene spesso utilizzato per calcoli basati sul tempo, filtraggio di dati per condizioni specifiche e confronto di metriche su diverse dimensioni.
I filtri Booleani in CALCULATE restituiscono TRUE
o FALSE
, determinando quali righe di dati vengono incluse nel calcolo.
CALCULATE modifica il contesto di filtro in cui viene valutata un'espressione, offrendo un controllo più preciso sui dati inclusi.
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.