Power BI

Visual Calculation in Power BI

Spesso, nel lavorare con DAX, affrontiamo sfide quali la creazione di misure in grado di restituire una Running Sum o una Moving Average.
Sebbene siano entrambi concetti non difficili a livello logico, quando si tratta di trasformarli in misure il procedimento non è così immediato. Per tradurre questi concetti in DAX, infatti, abbiamo bisogno di una approfondita conoscenza di alcuni concetti base come il row context, il filter context e la funzione CALCULATE.
In questo articolo vedremo cosa sono le Visual Calculation in Power BI e come ci possono aiutare, i limiti e i vantaggi che questa nuova feature può offrirci.

Come aggiungere le Visual Calculation a Power BI Desktop

Nell’aggiornamento di febbraio 2024, Microsoft ha arricchito Power BI Desktop con nuovi shortcut, rendendo più fluido e intuitivo il processo di creazione di misure (come quelle discusse sopra), grazie all’introduzione delle visual calculation. Per attivare questa funzionalità su PowerBI Desktop, è sufficiente navigare in:
File –> Option and Setting –> Options –> Preview Feature –> selezionare visual calculation nella sezione global e poi fare click su OK. Successivamente, cliccando su un visual che supporta le visual calculation, l’icona corrispondente verrà visualizzata sul banner di navigazione superiore, come illustrato nell’immagine.

Visual Calculation

Non appena avremmo cliccato su “New Calculation” il canvas sul quale stiamo lavorando verrà diviso in tre sezioni principali:

  • Visual Preview: rappresentazione del solo visual su cui stiamo usando le visual calculation.
  • Viasual Matrix: il grafico viene ridotto a matrice per facilitarci i calcoli che stiamo implementando.
  • Formula bar: sezione in cui è possibile specificare la visual calculation, con la possibilità di scegliere dei template già disponibili.
Sezioni "New Calculation"

Visual Calculation e Templates disponibili

Ci sono vari aspetti che distinguono le visual calculation dalle misure DAX. Innanzitutto, le visual calculation, a differenza delle misure DAX, una volta applicate, non diventano parte del modello dati ma rimangono specifiche per ciascun visual su cui sono implementate. Questo significa che possono fare riferimento solo ai campi o misure presenti nel visual specifico, unendo la semplicità del row context delle colonne calcolate alla flessibilità offerta dalle misure. In secondo luogo, le visual calculation operano su dati già aggregati in precedenza da misure DAX, risultando in un vantaggio in termini di prestazioni poiché il loro calcolo non grava significativamente sulle risorse computazionali. È importante sottolineare che alcune funzioni disponibili nelle visual calculation non sono al momento impiegabili nella creazione di formule DAX standard, essendo esclusive di questa funzionalità.

E’ possibile creare una nuova visual calculation selezionando uno dei templates disponibili tramite il tasto “FX”:

  • Running Sum: permette di fare la somma cumulata sfruttando la funzione RUNNINGSUM con la possibilità di specificare un rest parameter nel momento in cui si vuole che il calcolo riparta da zero.
  • Moving Average: grazie alla funzione MOVINGAVERAGE è possibile specificare la window size sulla quale la media deve essere calcolata.
  • Percent of parent/Percent of grand total: queste due funzioni permettono di calcolare rispettivamente le percentuali relative rispetto ad una scala gerarchica specificata o rispetto a tutti i valori, sfruttando le funzioni COLLAPSE e COLLAPSEALL.
  • Average of children: calcola la media su un set di child values utilizzando la funzione EXPAND.
  • Le funzioni Versus previous, Versus next, Versus first e Versus last servono per comparare valori tra loro, utilizzando le funzioni PREVIOUS, NEXT, FIRST e LAST.
 

Alcune di queste funzioni, come per esempio Percent of Parent o Percent of Grand total, richiedono di specificare l’axis parameter permettendo di scegliere la direzione che il calcolo deve seguire all’interno della visual matrix.
Le opzioni consistono in:

  • Rows: ovvero il calcolo viene eseguito top to bottom riga per riga.
  • Columns: il calcolo viene eseguito orizzontalmente tra le colonne da sinistra a destra.
  • Row Columns: il calcolo viene eseguito prima top to bottom tra le righe e poi colonna per colonna da sinistra a destra.
  • Columns Rows: il calcolo viene eseguito prima orizzontalmente tra le colonne e poi top down sulle righe.
 

Di seguito è stato riportato un esempio dove sono state create due visual calculation. La prima “Sales-Row” che fa la running sum sulle righe e, la seconda “Sales-Column” che fa la stessa cosa ma sulle colonne da sx a dx.

Visual Calculation

Oltre all’axis parameter c’è anche un parametro utile da specificare quando la visual calculation si deve resettare a zero, come potrebbe essere nel caso di una Running Sum. Questo si chiama reset parameter e può essere utilizzato solo se più livelli dimensionali sono presenti su un asse.
Se non specificato diversamente nel template, il calcolo non si azzererebbe automaticamente. Pertanto, ogni volta che desideriamo definire una configurazione di calcolo diversa da quella predefinita, come secondo parametro della RUNNINGSUM possiamo indicare uno dei due valori: HIGHESTPARENT o LOWESTPARENT.

Per capire questi due concetti possiamo fare un esempio pratico con una gerarchia composta da Anno, Quarter e Mese. In questo caso se decidiamo di fare una RUNNINGSUM che si resetta ad ogni Quarter allora bisognerà specificare il valore di LOWESTPARENT. Se invece vogliamo una running sum che aggrega per Anno allora specificheremo il valore di HIGHESTPARENT.
Nel caso di una gerarchia composta da più di tre livelli gerarchici possiamo specificare il reset parameter con i numeri. Questo significa che nel caso sopra citato l’equivalente di HIGESTPARENT sarà 1 e, 2 per il LOWESTPARENT continuando in questo modo fino all’ultimo livello di parentela.

Come riportato in figura vediamo che la visual calculation “Running sum HP” si resetta per ogni anno mentre la “Running sum LP” ogni quarto.

Visual Calculation

Inoltre, nel riquadro rosso è possibile notare che, nel caso ci fosse bisogno, c’è anche la possibilità di nascondere i campi che non ci servono. In questo caso, si possono lasciare solo le Running Sum, anche se si basano entrambe sul campo profit che non è più visibile.

Conclusioni

Sebbene le visual calculation rappresentino una valida soluzione per semplificare alcuni calcoli e diano dei vantaggi in termini prestazionali, come discusso sopra, presentano alcune limitazioni. Tra queste, figura l’impossibilità di usare numeric parameter e field parameter al loro interno, nonché la loro inapplicabilità nei campi del conditional formatting. Inoltre, non ereditano la formattazione dalle misure di origine, rendendo necessario l’uso della funzione FORMAT per specificare il loro formato.

Un ulteriore limite riguarda il supporto non universale alle visual calculation da parte di tutti i visual: ad esempio, line and stacked bar chart, line e column chart, scatter chart e le mappe non le supportano. Essendo le visual calculation una funzionalità ancora in preview, ci si augura che i futuri aggiornamenti possano risolvere queste restrizioni. Nonostante le sfide, questa innovazione rappresenta un significativo avanzamento nell’usabilità di PowerBI Desktop, spingendo sempre più verso il concetto di self-service BI.

 

Impara a creare le tue Dashboard con Power BI

Se vuoi apprendere le basi di Power BI per connettere e visualizzare i dati e creare dashboard interattive di impatto, iscriviti al nostro corso. 

Visualitics Team
Questo articolo è stato scritto e redatto da uno dei nostri consulenti.

Condividi ora sui tuoi canali social o via email: