Funzione CALCULATETABLE (DAX)
Valuta un'espressione di tabella in un contesto modificato dai filtri specificati.
Sintassi
CALCULATETABLE(<expression>,<filter1>,<filter2>,…)
Parametri
Termine |
Definizione |
---|---|
Expression |
Espressione di tabella da valutare |
filter1,filter2,… |
Espressione booleana o espressione di tabella che definisce un filtro |
L'espressione utilizzata come primo parametro deve essere una funzione che restituisce una tabella.
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
Tabella di valori.
Osservazioni
La funzione CALCULATETABLE 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 vengono rimossi gli eventuali filtri esistenti e viene invece applicato il filtro utilizzato nell'argomento di filtro.
Questa funzione corrisponde alla funzione RELATEDTABLE.
Esempio
Nell'esempio seguente viene utilizzata la funzione CALCULATETABLE per ottenere la somma delle vendite Internet per il 2002. Questo valore viene successivamente utilizzato per calcolare la percentuale delle vendite Internet rispetto a tutte le vendite per l'anno 2002.
Nella tabella seguente vengono illustrati i risultati della formula seguente.
Row Labels |
Internet SalesAmount_USD |
CalculateTable 2002 Internet Sales |
Internet Sales to 2002 ratio |
---|---|---|---|
2001 |
$2,627,031.40 |
$5,681,440.58 |
0.46 |
2002 |
$5,681,440.58 |
$5,681,440.58 |
1.00 |
2003 |
$8,705,066.67 |
$5,681,440.58 |
1.53 |
2004 |
$9,041,288.80 |
$5,681,440.58 |
1.59 |
Grand Total |
$26,054,827.45 |
$5,681,440.58 |
4.59 |
=SUMX( CALCULATETABLE('InternetSales_USD', 'DateTime'[CalendarYear]=2002)
, [SalesAmount_USD])