Funzione CALCULATE
Viene valutata un'espressione in un contesto modificato dai filtri specificati.
Sintassi
CALCULATE(<expression>,<filter1>,<filter2>…)
Parametri
Termine |
Definizione |
---|---|
expression |
Espressione da valutare. |
filter1,filter2,… |
(facoltativo) Elenco delimitato da virgole di espressioni booleane o espressione di tabella che definisce un filtro. |
L'espressione utilizzata come primo parametro corrisponde essenzialmente a una misura.
Le restrizioni seguenti si applicano alle espressioni booleane utilizzate come argomenti:
L'espressione non può fare riferimento a una misura.
L'espressione non può utilizzare una funzione CALCULATE annidata.
L'espressione non può utilizzare qualsiasi funzione che analizza una tabella o restituisce una tabella, incluse le funzioni di aggregazione.
Un'espressione booleana può tuttavia utilizzare qualsiasi funzione che cerca un singolo valore o che calcola un valore scalare.
Valore restituito
Valore risultante dall'espressione.
Osservazioni
Se i dati sono stati filtrati, la funzione CALCULATE modifica il contesto in cui vengono filtrati i dati e valuta l'espressione nel nuovo contesto specificato. Per ogni colonna utilizzata in un argomento di filtro, eventuali filtri esistenti in tale colonna vengono rimossi e viene invece applicato il filtro utilizzato nell'argomento di filtro.
Esempio
Per calcolare il rapporto tra le vendite dei rivenditori correnti e le vendite dei rivenditori totali, si aggiunge alla tabella pivot una misura che calcola la somma delle vendite per la cella corrente, numeratore, e si divide tale somma per le vendite totali per tutti i rivenditori, denominatore. Per assicurarsi che il denominatore rimanga lo stesso indipendentemente dai filtri o dai raggruppamenti applicati dall'utente alla tabella pivot, la parte della formula che rappresenta il denominatore deve utilizzare la funzione ALL per cancellare tutti i filtri e per calcolare il totale complessivo corretto.
Nella tabella seguente sono illustrati i risultati quando viene creato il nuovo campo calcolato denominato All Reseller Sales Ratio tramite la formula riportata nella sezione relativa al codice.
Per visualizzarne il funzionamento, aggiungere il campo CalendarYear all'area Etichette di riga della tabella pivot e aggiungere il campo ProductCategoryName all'area Etichette di colonna. Aggiungere quindi la nuova misura all'area Valori della tabella pivot. Per visualizzare i numeri come percentuali, applicare la formattazione di numero percentuale all'area della tabella pivot contenente la nuova misura, All Reseller Sales Ratio.
All Reseller Sales |
Etichette di colonna |
|
|
|
|
---|---|---|---|---|---|
Etichette di riga |
Accessories |
Bikes |
Clothing |
Components |
Totale complessivo |
2005 |
0.02% |
9.10% |
0.04% |
0.75% |
9.91% |
2006 |
0.11% |
24.71% |
0.60% |
4.48% |
29.90% |
2007 |
0.36% |
31.71% |
1.07% |
6.79% |
39.93% |
2008 |
0.20% |
16.95% |
0.48% |
2.63% |
20.26% |
Totale complessivo |
0.70% |
82.47% |
2.18% |
14.65% |
100.00% |
=( SUM('ResellerSales_USD'[SalesAmount_USD]))
/CALCULATE( SUM('ResellerSales_USD'[SalesAmount_USD])
,ALL('ResellerSales_USD'))
L'espressione CALCULATE nel denominatore consente all'espressione della somma di includere tutte le righe nel calcolo. In questo modo viene eseguito l'override dei filtri impliciti per le colonne CalendarYear e ProductCategoryName esistenti per la parte del numeratore dell'espressione.
Funzioni correlate
Mentre la funzione CALCULATE richiede come primo argomento un'espressione che restituisce un singolo valore, la funzione CALCULATETABLE accetta una tabella di valori.