Calcoli visivi

SI APPLICA A: Power BI Desktop Servizio Power BI

Un calcolo visivo è un calcolo DAX definito ed eseguito direttamente in un oggetto visivo, anziché aggiungerlo al modello semantico. Poiché un calcolo visivo funziona con i dati già visualizzati nella visualizzazione, è possibile esprimere calcoli aziendali comuni, ad esempio totali progressivi, medie mobili e confronti tra periodi, senza dover gestire il contesto di filtro o le relazioni del modello. Il risultato è solitamente un codice DAX più breve, più facile da mantenere e spesso con prestazioni migliori rispetto a una misura equivalente.

Questo articolo illustra quali calcoli visivi sono, come si comportano nella matrice visiva, come funzionano i parametri che li controllano e in che modo differiscono dalle misure e dalle colonne calcolate, in modo da decidere quando un calcolo visivo è la scelta giusta.

Ecco un esempio di calcolo visivo che definisce una somma in esecuzione per Sales Amount. Il dax richiesto è semplice:

Running sum = RUNNINGSUM([Sales Amount])

Screenshot di DAX per i calcoli visivi.

Un calcolo può fare riferimento a qualsiasi dato nella visualizzazione, incluse le colonne, le misure o altri calcoli visivi. Questa capacità rimuove la complessità del modello semantico e semplifica il processo di scrittura di DAX. Puoi usare calcoli visivi per completare calcoli aziendali comuni, ad esempio somme cumulative o medie mobili.

I calcoli visivi differiscono dalle altre opzioni di calcolo in DAX:

  • I calcoli visivi non vengono archiviati nel modello. Invece, li memorizzi nel visual. Questa limitazione indica che i calcoli visivi possono fare riferimento solo a ciò che si verifica nell'oggetto visivo. È necessario aggiungere all'oggetto visivo qualsiasi elemento del modello prima che il calcolo visivo possa farvi riferimento. Questa restrizione libera i calcoli visivi dalla complessità del contesto di filtro e del modello.
  • I calcoli visivi combinano la semplicità del contesto dalle colonne calcolate con la flessibilità di calcolo su richiesta delle misure.
  • Rispetto alle misure, i calcoli visivi operano sui dati aggregati anziché sul livello di dettaglio, che spesso comporta vantaggi in termini di prestazioni. Quando un calcolo può essere ottenuto da una nuova misura o da un calcolo visivo, quest'ultimo spesso porta a prestazioni migliori.
  • Poiché i calcoli visivi fanno parte dell'oggetto visivo, possono fare riferimento alla struttura visiva, che comporta una maggiore flessibilità.

Per un confronto più approfondito delle modalità di aggiunta di calcoli in Power BI, vedere Usare le opzioni di calcolo in Power BI Desktop.

Le visualizzazioni tabella e matrice rendono disponibili anche i calcoli visivi tramite la funzionalità dei totali personalizzati, che consente di modificare ciò che mostra la riga del totale senza scrivere DAX. Per ulteriori informazioni, vedi gli articoli sugli oggetti visivi tabella e matrice.

Per informazioni su come aggiungere o modificare un calcolo visivo, vedere Creare calcoli visivi.

Funzionamento dei calcoli visivi

I calcoli visivi vengono creati in modalità di modifica , che si apre sull'oggetto visivo selezionato. La superficie di modifica include tre parti: un'anteprima dell'oggetto visivo, una barra della formula per l'espressione DAX e una matrice visiva che visualizza i risultati durante la digitazione.

Screenshot che mostra le aree della schermata di modifica dei calcoli visivi.

Poiché si archivia un calcolo visivo nell'oggetto visivo, può fare riferimento a qualsiasi elemento dell'oggetto visivo, ovvero colonne, misure o altri calcoli visivi, ma non altro nel modello. La maggior parte dei calcoli visivi valuta riga per riga rispetto alla matrice visiva, quindi le funzioni di aggregazione come SUM non sono in genere necessarie. Non è possibile usare funzioni che dipendono dalle relazioni tra modelli: USERELATIONSHIP, RELATED e RELATEDTABLE.

Dopo aver aggiunto un calcolo visivo, viene visualizzato nell'elenco dei campi dell'oggetto visivo ed esegue il rendering sull'oggetto visivo stesso.

Screenshot dei calcoli visivi mostrati sulla schermata.

Funzioni DAX disponibili nei calcoli visivi

Molte funzioni DAX esistenti funzionano nei calcoli visivi. Poiché i calcoli visivi funzionano entro i limiti della matrice visiva, le funzioni che si basano sulle relazioni del modello, ad esempio USERELATIONSHIP, RELATED o RELATEDTABLE , non sono disponibili.

I calcoli visivi introducono anche un set di funzioni specifiche per i calcoli visivi. Molte di queste funzioni sono collegamenti più facili da usare per le funzioni della finestra DAX.

Funzione Descrizione Esempio Collegamento a
COLLAPSE Il calcolo viene valutato a un livello superiore dell'asse. Percentuale del genitore = DIVIDE([Sales Amount], COLLAPSE([Sales Amount], ROWS)) N/D
COLLAPSEALL Il calcolo viene valutato al livello totale dell'asse. Percentuale del totale complessivo = DIVIDE([Sales Amount], COLLAPSEALL([Sales Amount], ROWS)) N/D
EXPAND Il calcolo viene valutato a un livello inferiore dell'asse. Media dei figli = EXPAND(AVERAGE([Sales Amount]), ROWS) N/D
EXPANDALL Il calcolo viene valutato a livello foglia dell'asse. Media del livello fogliare = EXPANDALL(MEDIA([Sales Amount]), ROWS) N/D
FIRST Fa riferimento alla prima riga di un asse. ProfitVSFirst = [Profit] - FIRST([Profit]) INDEX(1)
ISATLEVEL Indica se una colonna specificata è presente a livello corrente. IsFiscalYearAtLevel = ISATLEVEL([Anno Fiscale]) N/D
LAST Fa riferimento all'ultima riga di un asse. ProfitVSLast = [Profit] - LAST([Profit]) INDEX(-1)
LOOKUP Valuta un'espressione nella matrice visiva usando il contesto corrente. LookupSalesFor2025WithContext = LOOKUP(SUM([Sales]), [Year], "2025") N/D
LOOKUPWITHTOTALS Valuta un'espressione nella matrice visiva con totali. LookupSalesFor2025WithTotals = LOOKUPWITHTOTALS(SOMMA([Vendite]), [Anno], "2025") N/D
MOVINGAVERAGE Aggiunge una media mobile su un asse. MovingAverageSales = MOVINGAVERAGE([Importo delle Vendite], 2) WINDOW
NEXT Fa riferimento a una riga successiva di un asse. ProfitVSNext = [Profit] - NEXT([Profit]) OFFSET(1)
PREVIOUS Fa riferimento a una riga precedente di un asse. ProfitVSPrevious = [Profit] - PREVIOUS([Profit]) OFFSET(-1)
RANGE Fa riferimento a uno spezzone di righe di un asse. AverageSales = AVERAGEX(RANGE(1), [Importo Vendite]) WINDOW
RUNNINGSUM Aggiunge una somma cumulativa su un asse. RunningSumSales = RUNNINGSUM([Importo delle Vendite]) WINDOW

Parametri che controllano il flusso di calcolo

Alcune funzioni di calcolo visivo accettano parametri facoltativi che controllano il modo in cui il calcolo attraversa la matrice visiva:

  • Axis e Reset sono specifici per i calcoli visivi. Fanno riferimento alla struttura visiva anziché a campi specifici.
  • OrderBy e PartitionBy funzionano anche in colonne e misure calcolate. Fanno riferimento direttamente ai campi.

Le sezioni seguenti descrivono ogni parametro e quando usarli uno rispetto all'altro.

Axis

Molte funzioni hanno un parametro facoltativo Axis , che è possibile usare solo nei calcoli visivi. Il Axis parametro influenza il modo in cui il calcolo visivo attraversa la matrice visiva. Il parametro Axis è impostato per impostazione predefinita sul primo asse del visual. Per molti oggetti visivi, il primo asse è ROWS, il che significa che il calcolo visivo viene valutato riga per riga nella matrice visiva, dall'alto verso il basso. La tabella seguente mostra i valori validi per il parametro Axis:

Icona Axis Axis Nome Descrizione
ROWS Calcola verticalmente le righe dall'alto verso il basso.
COLUMNS Calcola orizzontalmente le colonne da sinistra a destra.
ROWS COLUMNS Calcola verticalmente attraverso le righe dall'alto verso il basso, continuando colonna per colonna da sinistra a destra.
COLUMNS ROWS Calcola orizzontalmente le colonne da sinistra a destra, continuando riga per riga dall'alto verso il basso.

Nota

Se si specifica un asse che non è presente nell'oggetto visivo, il calcolo ignora l'asse.

Reset

Molte funzioni includono un parametro facoltativo Reset che è possibile usare solo nei calcoli visivi. Il Reset parametro controlla se e quando la funzione reimposta il valore su 0 o passa a un ambito diverso durante l'attraversamento della matrice visiva. Controlla questo comportamento partizionando la colonna di destinazione. Quando si verificano calcoli all'interno di una partizione, il modo in cui la colonna viene divisa in partizioni determina se un calcolo viene reimpostato.

Il valore predefinito per il Reset parametro è NONE, ovvero il calcolo visivo non viene mai riavviato.

Il Reset parametro accetta diversi tipi di valori:

  • Numeri interi
  • Riferimenti a colonne
  • Sinonimi speciali: HIGHESTPARENT, LOWESTPARENT,NONE

In ogni caso, il parametro specifica un singolo livello nella gerarchia di calcolo visiva (livello di destinazione). Tuttavia, il modo in cui il calcolo interpreta questo livello può variare.

Il Reset comportamento opera in due modalità diverse: assoluto e relativo.

Quando si usano valori interi per il parametro o i relativi equivalenti NONE, HIGHESTPARENTe LOWESTPARENT, è possibile scegliere tra queste due modalità dal segnale del numero intero: i valori positivi eseguono una reimpostazione in modalità assoluta e i valori negativi eseguono una reimpostazione in modalità relativa (e zero non reimposta affatto, il comportamento predefinito).

Se si specifica un riferimento a una colonna, si sta anche operando in modalità assoluta. Questi valori determinano il modo in cui la colonna di destinazione viene partizionata e pertanto se viene reimpostata. Le sezioni seguenti descrivono queste due modalità:

Modalità di reset assoluto

La modalità assoluta è un comportamento del Reset parametro nei calcoli visivi. Questa modalità indica che il calcolo deve essere partizionato dalla colonna di destinazione e da tutte le colonne sopra di essa. Questa regola si applica a ogni livello del calcolo. Ai livelli superiori rispetto alla colonna di destinazione (in cui la colonna di destinazione non è presente, e possibilmente nemmeno altre colonne), il calcolo viene suddiviso in base alle restanti colonne disponibili. Il valore intero positivo identifica la colonna di destinazione a partire dall'inizio (la colonna superiore è 1, la successiva è 2 e così via). Aumenta fino a N (il numero di colonne nella gerarchia) e gli eventuali valori più elevati vengono eliminati. In alternativa, è possibile specificare direttamente la colonna.

Si consideri ad esempio un calcolo visivo con questi livelli di gerarchia: Anno, Trimestre, Mese e Giorno. Nella tabella seguente viene illustrato il modo in cui le partizioni di calcolo a ogni livello dipendono dal valore di Reset:

Livello/valore Reset = 1 o anno Reset = 2 o trimestre Reset = 3 oppure mese Reset = 4 oppure giorno
Livello giornaliero Anno Trimestre e anno Mese, Trimestre e Anno Giorno, Mese, Trimestre e Anno
Livello mensile Anno Trimestre e anno Mese, Trimestre e Anno Mese, Trimestre e Anno
Livello trimestre Anno Trimestre e anno Trimestre e anno Trimestre e anno
Livello anno Anno Anno Anno Anno
Livello totale complessivo Nessuno Nessuno Nessuno Nessuno

Modalità di ripristino relativo

La modalità relativa è un comportamento del Reset parametro nei calcoli visivi. Dato un valore intero negativo –X, a ogni livello il calcolo viene partizionato in base a tutte le colonne che si trovano di X o più livelli al di sopra di quello corrente nella gerarchia (oppure non viene partizionato affatto se non esiste alcun livello di questo tipo). I valori validi per questa modalità sono compresi tra -1 e -N+1 (dove N è il numero di colonne nella gerarchia) e i valori inferiori vengono eliminati. Anche in questo caso, prendere in considerazione un calcolo visivo con questi livelli di gerarchia: Anno, Trimestre, Mese e Giorno. Nella tabella seguente viene illustrato il modo in cui le partizioni di calcolo a ogni livello dipendono dal valore di Reset

Livello/valore Reset = -1 Reset = -2 Reset = -3
Livello giornaliero Mese, Trimestre e Anno Trimestre e anno Anno
Livello mensile Trimestre e anno Anno Nessuno
Livello trimestre Anno Nessuno Nessuno
Livello anno Nessuno Nessuno Nessuno
Livello totale complessivo Nessuno Nessuno Nessuno

Reimpostare i sinonimi dei parametri

Il Reset parametro fornisce anche i sinonimi seguenti:

  • NONE è il valore predefinito. Non reimposta il calcolo ed è equivalente a 0.
  • HIGHESTPARENT esegue una reimpostazione assoluta del livello più alto ed è equivalente a 1.
  • LOWESTPARENT esegue una reimpostazione relativa dall'elemento padre immediato ed è equivalente a -1.

Esempi di utilizzo del parametro Reset

Si consideri un calcolo visivo con questi livelli di gerarchia: Anno, Trimestre, Mese e Giorno. I seguenti calcoli visivi sono equivalenti e restituiscono la somma di Sales Amount che si reimposta per ogni anno, indipendentemente dal livello a cui viene valutato il calcolo (vedi modalità di reimpostazione assoluta):

RUNNINGSUM([Sales Amount], HIGHESTPARENT)
RUNNINGSUM([Sales Amount], 1)
RUNNINGSUM([Sales Amount], [Year])

Per contro, i seguenti calcoli visivi restituiscono entrambi la somma di Sales Amount, calcolata a partire da 0 per ogni padre immediato, a seconda del livello in cui viene valutato il calcolo (vedere modalità di reimpostazione relativa).

RUNNINGSUM([Sales Amount], LOWESTPARENT)
RUNNINGSUM([Sales Amount], -1)

Infine, questo calcolo visivo non viene reimpostato e continua ad aggiungere il valore Sales Amount per ogni giorno ai valori precedenti, senza riavviare.

RUNNINGSUM([Sales Amount])

OrderBy e PartitionBy

Il OrderBy parametro accetta ORDERBYe il PartitionBy parametro accetta PARTITIONBY. A differenza di Axis e Reset, è possibile usare questi parametri in colonne calcolate, misure e calcoli visivi e fanno riferimento direttamente ai campi.

Non tutte le funzioni forniscono questi parametri. Le funzioni esclusive per il calcolo visivo non forniscono un PartitionBy parametro. Le funzioni window forniscono un Reset parametro solo se vengono usate in un calcolo visivo. Il Relation parametro sulle funzioni finestra è disponibile indipendentemente dal fatto che venga usato in un calcolo visivo, ma accetta solo un oggetto Axis se viene usato in un calcolo visivo.

Scegliere tra questi parametri

Non è necessario specificare tutti questi parametri ed è possibile combinarli. Per decidere quale parametro usare:

  • Preferisce Axis e Reset quando si desidera un comportamento indipendente dal campo che segue la struttura visiva. Fare riferimento alla struttura visiva è più flessibile che fare esplicito riferimento ai campi.
  • Usare OrderBy e PartitionBy quando si desidera aggiungere il calcolo a campi specifici indipendentemente dal layout visivo.
  • Usare PartitionBy invece di Reset quando l'asse ha un solo livello. Reset prevede più livelli sull'asse, quindi non funziona quando è presente un solo campo o quando sono presenti più campi in un singolo livello sull'asse.

Selettori di parametri

I selettore di parametri semplificano la selezione dei valori per i parametri nelle funzioni di calcolo visivo. Ad esempio, nell'immagine seguente vedi il modello Cerca un valore con i totali caricato:

Screenshot che mostra la selezione dei parametri.

È anche possibile attivare i selettore di parametri usando la scelta rapida da tastiera CTRL+SPAZIATRICE .

Modelli di calcolo visivi

I calcoli visivi includono modelli per semplificare la scrittura di calcoli comuni. Il pulsante modello in modalità di modifica dei calcoli visivi apre un menu dei modelli disponibili.

Screenshot dell'uso di modelli per i calcoli visivi.

Sono disponibili i modelli seguenti:

  • Somma cumulativa. Calcola la somma dei valori, aggiungendo il valore corrente ai valori precedenti. Usa la funzione RUNNINGSUM.
  • Media mobile. Calcola una media di un set di valori in una determinata finestra dividendo la somma dei valori in base alle dimensioni della finestra. Usa la funzione MOVINGAVERAGE.
  • Percentuale del genitore. Calcola la percentuale di un valore rispetto al suo genitore. Usa la funzione COLLAPSE.
  • Percentuale del totale complessivo. Calcola la percentuale di un valore rispetto a tutti i valori, usando la funzione COLLAPSEALL.
  • Media dei figli. Calcola il valore medio del set di valori figlio. Usa la funzione EXPAND.
  • Rispetto al precedente. Confronta un valore con un valore precedente, usando la funzione PREVIOUS.
  • Rispetto al prossimo. Confronta un valore con un valore successivo, usando la funzione NEXT.
  • Contro il primo. Confronta un valore con il primo valore, usando la funzione FIRST.
  • Rispetto all'ultimo. Confronta un valore con l'ultimo valore, usando la funzione LAST.
  • Cercare un valore nel contesto. Trovare un valore o valutare un'espressione nella matrice visiva all'interno del contesto corrente, usando la LOOKUP funzione .
  • Ricercare un valore nei totali. Trovare un valore o valutare un'espressione nella matrice visiva con totali, usando la LOOKUPWITHTOTALS funzione .

Nascondi i campi nell'oggetto visivo

Nella modalità di modifica dei calcoli visivi è possibile nascondere i campi dall'oggetto visivo esattamente come si nascondono colonne e tabelle nella visualizzazione di modellazione. Ad esempio, per visualizzare solo il calcolo visivo Profit , nascondere Sales Amount e Total Product Cost dalla visualizzazione.

Screenshot di nascondere gli elementi dalla visualizzazione di un oggetto visivo.

Nascondere i campi non li rimuove dall'oggetto visivo o dalla matrice visiva, in modo che i calcoli visivi possano comunque farvi riferimento e continuare a funzionare. Un campo nascosto viene ancora visualizzato nella matrice visiva, ma non viene visualizzato nell'oggetto visivo risultante. Includere campi nascosti solo se sono necessari per il funzionamento dei calcoli visivi.

Formattare un calcolo visivo

Formattare un calcolo visivo usando tipi di dati e opzioni di formattazione oppure usando una stringa di formato a livello di oggetto visivo personalizzata. Le opzioni Formato dati nella sezione Generale del riquadro di formattazione controllano il formato.

Screenshot della modalità di modifica dei calcoli visivi che mostra un calcolo visivo che restituisce una percentuale formattata come percentuale.

Considerazioni e limitazioni

Tipi di oggetti visivi non supportati

I calcoli visivi e i campi nascosti non funzionano con gli oggetti visivi seguenti:

  • Slicer, visualizzazione R, visualizzazione Python
  • Fattori di influenza chiave, albero di scomposizione, Q&A, narrazione intelligente
  • Metriche, Report Impaginato, Power Apps, Power Automate
  • Multipli piccoli, Asse di riproduzione nel grafico a dispersione
  • Oggetti visivi personalizzati

Funzionalità non supportate

Le funzionalità seguenti non sono disponibili con i calcoli visivi:

Limitazioni relative alla pubblicazione e alla condivisione

  • Non è possibile aggiungere ai dashboard
  • Non è possibile usare Pubblica sul Web
  • Le esportazioni di dati escludono i risultati del calcolo visivo; I campi nascosti vengono visualizzati solo nelle esportazioni di dati sottostanti

Altre limitazioni

  • I parametri di campo funzionano con i calcoli visivi, ma presentano alcune limitazioni.
  • Le connessioni dinamiche a SQL Server Analysis Services richiedono la versione 2025 o successiva.

Per altre informazioni sull'uso dei calcoli visivi, vedere le risorse seguenti: