Condividi tramite


CALCULATETABLE

Si applica a:colonna calcolatatabella calcolataMeasurecalcolo visivo

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

Nota

C'è anche la funzione CALCULATE. Esegue esattamente la stessa funzionalità, except modifica il contesto di filter applicato a un'espressione che restituisce un scalare value.

Sintassi

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

Parametri

Termine Definizione
expression Espressione di tabella da valutare.
filter1, filter2,… (Facoltativo) Le espressioni booleane or espressioni di tabella che definiscono filters, orfilter funzioni di modifica.

L'espressione usata come parametro first deve essere una tabella del modello or una funzione che restituisce una tabella.

Filters può essere:

  • Espressioni filter booleane
  • Espressioni di filter tabella
  • Filter funzioni di modifica

Quando sono presenti più filters, vengono valutati usando l'operatore logico AND. Ciò significa che le condizioni di all devono essere TRUE nello stesso time.

Espressioni filter booleane

Un'espressione booleana filter è un'espressione che restituisce TRUEorFALSE. 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 or restituiscono una tabella a meno che non vengano passate come argomenti alle funzioni di aggregazione.
  • È possibile contenere una funzione di aggregazione che restituisce un valuescalare.

Espressione filter tabella

Un'espressione di tabella filter applica un oggetto tabella come filter. Potrebbe trattarsi di un riferimento a una tabella del modello, ma più probabilmente si tratta di una funzione che restituisce un oggetto tabella. È possibile utilizzare la funzione FILTER per applicare condizioni di filter complesse, incluse quelle che non possono essere definite da un'espressione filter booleana.

funzioni di modifica Filter

Filter funzioni di modifica consentono di eseguire più operazioni rispetto all'aggiunta di filters. Forniscono un controllo aggiuntivo quando si modifica filter contesto.

Funzione Scopo
REMOVEFILTERS Rimuovere allfilters, orfilters da una or più colonne di una tabella, or da all colonne di una singola tabella.
ALL 1, ALLEXCEPT, ALLNOBLANKROW Rimuovere filters da una or più colonne, or dalle colonne all di una singola tabella.
KEEPFILTERS Aggiungere filter senza rimuovere le filters esistenti nelle stesse colonne.
USERELATIONSHIP Interagire con una relazione inattiva tra related colonne, nel qual caso la relazione attiva diventerà automaticamente inattiva.
CROSSFILTER Modificare la direzione di filter (da singola a singola or da singola a entrambe) or disabilitare una relazione.

1 La funzione ALLand le relative varianti si comportano sia come modificatori filterand come funzioni che restituiscono oggetti tabella. If la funzione REMOVEFILTERS è supportata dallo strumento, è preferibile usarla per rimuovere filters.

Restituisce value

Tabella di values.

Osservazioni

  • Quando vengono fornite espressioni filter, la funzione CALCULATETABLE modifica il contesto filter in modo da evaluate'espressione. Per ogni espressione filter, esistono due possibili risultati standard quando l'espressione filter viene not sottoposta a wrapping nella funzione KEEPFILTERS:

    • If le colonne ( tabelleor) non sono nel contesto di filter, quindi le nuove filters verranno aggiunte al contesto di filter per evaluate'espressione.
    • If le colonne ( tabelleor) sono già presenti nel contesto di filter, il filters esistente verrà sovrascritto dal nuovo filters per evaluate'espressione CALCULATETABLE.
  • Questa funzione è not supportata per l'uso in modalità DirectQuery quando viene usata nelle colonne calcolate or regole di sicurezza a livello di riga.

Esempio

Nell'esempio seguente viene utilizzata la funzione CALCULATETABLE per ottenere la sum delle vendite Internet per il 2006. Questo value viene usato successivamente per calculate il rapporto delle vendite Internet rispetto alle vendite all per il year 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