CALCULATETABLE

Si applica a:Calcolo visivo misuratabella calcolata colonnacalcolata

Valuta un'espressione di tabella in un contesto di filtro modificato.

Nota

È disponibile anche la funzione CALCULATE che ha esattamente la stessa funzionalità, ad eccezione del fatto che modifica il contesto di filtro applicato a un'espressione che restituisce un valore scalare.

Sintassi

CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])

Parametri

Termine Definizione
expression Espressione di tabella da valutare.
filter1, filter2,… (Facoltativo) Espressioni booleane o di tabella che definiscono i filtri o le funzioni modificatore di filtro.

L'espressione usata come primo parametro deve essere una tabella modello o una funzione che restituisce una tabella.

I filtri possono essere:

  • Espressioni filtro booleane
  • Espressioni filtro tabella
  • Funzioni di modifica del filtro

Quando sono presenti più filtri, vengono valutati usando l'operatore logico AND. Ciò significa che tutte le condizioni devono essere VERE contemporaneamente.

Espressioni filtro booleane

Un filtro di espressione booleana è un'espressione che restituisce TRUE o FALSE. Queste espressioni devono rispettare diverse regole:

  • Possono fare riferimento solo a una singola colonna.
  • Non possono fare riferimento a misure.
  • Non possono usare una funzione CALCULATE annidata.

A partire dalla versione di settembre 2021 di Power BI Desktop, si applica anche quanto segue:

  • Non possono usare funzioni che analizzano o restituiscono una tabella, a meno che siano passate come argomenti alle funzioni di aggregazione.
  • Possono contenere una funzione di aggregazione che restituisce un valore scalare.

Espressione filtro tabella

Un filtro di espressione tabella applica un oggetto tabella come filtro. Può trattarsi di un riferimento a una tabella del modello, ma è più probabile che si tratti di una funzione che restituisce un oggetto tabella. È possibile usare la funzione FILTER per applicare condizioni di filtro complesse, incluse quelle che non è possibile definire tramite un'espressione filtro booleana.

Funzioni di modificatore di filtro

Le funzioni di modificatore di filtro consentono di eseguire altre operazioni oltre alla semplice aggiunta di filtri. Forniscono un maggiore controllo quando si modifica il contesto di filtro.

Funzione Scopo
REMOVEFILTERS Rimuovere tutti i filtri oppure i filtri da una o più colonne di una tabella o da tutte le colonne di una singola tabella.
ALL1, ALLEXCEPT, ALLNOBLANKROW Rimuovere i filtri da una o più colonne o da tutte le colonne di una singola tabella.
KEEPFILTERS Aggiungere un filtro senza rimuovere i filtri esistenti nelle stesse colonne.
USERELATIONSHIP Creare una relazione inattiva tra colonne correlate. In questo caso, la relazione attiva diventa automaticamente inattiva.
CROSSFILTER Modificare la direzione del filtro (da entrambe le direzioni a una singola direzione o viceversa) oppure disabilitare una relazione.

1 La funzione ALL e le relative varianti si comportano sia come modificatori di filtro che come funzioni che restituiscono oggetti tabella. Se la funzione REMOVEFILTERS è supportata dallo strumento in uso, è preferibile usare questa funzione per rimuovere i filtri.

Valore restituito

Tabella di valori.

Osservazioni:

  • Quando vengono fornite espressioni filtro, la funzione CALCULATETABLE modifica il contesto di filtro per valutare l'espressione. Per ogni espressione filtro, ci sono due possibili risultati standard quando non si esegue il wrapping dell'espressione filtro nella funzione KEEPFILTERS:

    • Se le colonne (o le tabelle) non sono presenti nel contesto di filtro, i nuovi filtri verranno aggiunti al contesto di filtro per valutare l'espressione.
    • Se le colonne (o le tabelle) sono già presenti nel contesto di filtro, i filtri esistenti verranno sovrascritti dai nuovi filtri per valutare l'espressione CALCULATETABLE.
  • Questa funzione non è supportata per l'uso nella modalità DirectQuery se usata in colonne calcolate o nelle regole di sicurezza a livello di riga.

Esempio

Nell'esempio seguente, la funzione CALCULATETABLE viene usata per ottenere la somma delle vendite Internet per il 2006. Questo valore viene poi usato per calcolare la percentuale delle vendite Internet rispetto a tutte le vendite per l'anno 2006.

La formula seguente:

= SUMX(
    CALCULATETABLE(
        'InternetSales_USD',
        'DateTime'[CalendarYear] = 2006
    ),
    [SalesAmount_USD]
)  

Ha come risultato la tabella seguente:

Etichette di riga Internet SalesAmount_USD CalculateTable 2006 Internet Sales Internet Sales to 2006 ratio
2005 $2,627,031.40 $5,681,440.58 0,46
2006 $5,681,440.58 $5,681,440.58 1.00
2007 $8,705,066.67 $5,681,440.58 1.53
2008 $9,041,288.80 $5,681,440.58 1,59
Grand Total $26,054,827.45 $5,681,440.58 4.59