Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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])
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.
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.
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:
È 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.
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.
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.
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:
- Applicazione di filtri, ordinamento o modifica delle aggregazioni
- Riferimento automatico (un calcolo non può fare riferimento a se stesso)
- Copiare/incollare o riutilizzare tra i contenuti visivi
- Categorie di dati, limiti dei dati o visualizzazione di elementi senza dati
- Stringhe di formato dinamico (non è possibile impostare o usare come stringa di formato)
- Personalizzazione dei calcoli visivi o dei campi nascosti
- Visualizza il drill-through dei record
- IntelliSense in Power BI incorporato
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.
Contenuti correlati
Per altre informazioni sull'uso dei calcoli visivi, vedere le risorse seguenti:
- Creare calcoli visivi
- Modulo di training: Creare calcoli visivi in Power BI Desktop
- Usare le opzioni di calcolo in Power BI Desktop
- Creare misure per l'analisi dei dati in Power BI Desktop
- Creare e formattare visualizzazioni di tabella in Power BI - include anche totali personalizzati, basati sui calcoli visivi.