Condividi tramite


CALCULATETABLE

Si applica a:colonna calcolatatabella calcolata calcolo visivomisura

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

Nota

C'è anche la funzione CALCULATE. Esegue esattamente la stessa funzionalità, ma 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 espressioni di tabella che definiscono filtri o funzioni di modificatore di filtro.

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

I filtri possono essere:

  • Espressioni di filtro booleane
  • Espressioni di 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 TRUE contemporaneamente.

Espressioni di filtro booleane

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

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

A partire dalla versione di settembre 2021 di Power BI Desktop, si applicano anche le operazioni seguenti:

  • Non possono usare funzioni che analizzano o restituiscono una tabella a meno che non vengano 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 di tabella applica un oggetto tabella come filtro. Potrebbe trattarsi di un riferimento a una tabella del modello, ma più probabilmente si tratta di una funzione che restituisce un oggetto tabella. È possibile usare la funzione FILTER per applicare condizioni di filtro complesse, incluse quelle che non possono essere definite da un'espressione di filtro booleana.

Funzioni di modifica filtro

Le funzioni di modificatore di filtro consentono di eseguire più operazioni rispetto all'aggiunta di filtri. Forniscono un controllo aggiuntivo durante la modifica del contesto di filtro.

Funzione Scopo
REMOVEFILTERS Rimuovere tutti i filtri o i filtri da una o più colonne di una tabella o da tutte le colonne di una singola tabella.
ALL 1, 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 Interagire con una relazione inattiva tra le colonne correlate, nel qual caso la relazione attiva diventerà automaticamente inattiva.
CROSSFILTER Modificare la direzione del filtro (da singola a singola o da singola a entrambe) o 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, è preferibile usarla per rimuovere i filtri.

Valore restituito

Tabella di valori.

Osservazioni

  • Quando vengono fornite espressioni di filtro, la funzione CALCULATETABLE modifica il contesto di filtro per valutare l'espressione. Per ogni espressione di filtro, esistono due possibili risultati standard quando l'espressione di filtro non viene sottoposta a wrapping nella funzione KEEPFILTERS:

    • Se le colonne (o le tabelle) non sono nel contesto del 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 in modalità DirectQuery quando viene usata nelle colonne calcolate o nelle regole di sicurezza a livello di riga.

Esempio

Nell'esempio seguente viene utilizzata la funzione CALCULATETABLE per ottenere la somma delle vendite Internet per il 2006. Questo valore viene usato successivamente per calcolare il rapporto delle vendite Internet rispetto a tutte le vendite per l'anno 2006.

La formula seguente:

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

Viene restituita la tabella seguente:

Etichette di riga Internet SalesAmount_USD CalculateTable 2006 Internet Sales Rapporto Internet Sales -2006
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
Totale complessivo $ 26.054.827,45 $ 5,681,440,58 4.59