CALCULATECALCULATE (Italiano)

  • 07/06/2020
  • 4 minuti di lettura
    • M
    • o

Valuta un’espressione in un contesto di filtro modificato.Valuta un’espressione in un contesto di filtro modificato.

Note

C’è anche la funzione CALCULATETABLE. Esegue esattamente la stessa funzionalità, eccetto che modifica il contesto del filtro applicato a un’espressione che restituisce un oggetto tabella.

SintassiSintassi

CALCULATE(<expression>]])

ParametriParametri

TermTerm DefinizioneDefinizione
expressionexpression Espressione da valutare.L’espressione da valutare.
filter1, filter2, etc.filter1, filter2,… (Opzionale) Espressioni booleane o espressioni di tabella che definiscono i filtri, o funzioni di modifica dei filtri.

L’espressione usata come primo parametro è essenzialmente la stessa di una misura.

Esempi di filtri:I filtri possono essere:

  • Espressioni di filtro booleaneEspressioni di filtro booleane
  • Espressioni di filtro a tabellaEspressioni di filtro a tabella
  • Funzioni di modifica del filtroFunzioni di modifica del filtro

Se avete più filtri, essi sono valutati usando l’operatore logico AND.Quando ci sono più filtri, vengono valutati usando l’operatore logico AND. Ciò significa che tutte le condizioni devono essere TRUE allo stesso tempo.

Espressioni filtro booleane

Un filtro espressione booleana è un’espressione che valuta a TRUE o FALSE. Ci sono diverse regole che devono rispettare:

  • Possono fare riferimento a una sola colonna.
  • Non possono fare riferimento a misure.
  • Non possono usare una funzione CALCOLO annidata.
  • Non possono usare funzioni che scansionano o restituiscono una tabella, incluse le funzioni di aggregazione.

Table filter expressionTable filter expression

Un filtro table expression applica un oggetto tabella come filtro. Potrebbe essere un riferimento a una tabella modello, ma più probabilmente è una funzione che restituisce un oggetto tabella. Puoi 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 dei filtriFunzioni di modifica dei filtri

Le funzioni di modifica dei filtri ti permettono di fare più che aggiungere semplicemente dei filtri. Vi forniscono un controllo aggiuntivo quando modificate il contesto del filtro.

FunzioneFunzione ScopoScopo
REMOVEFILTERSREMOVEFILTERS Rimuove tutti i filtri, o i filtri da una o più colonne in una tabella, o tutte le colonne in una singola tabella.Rimuove 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, ALLNOBLANKROWALL 1, ALLEXCEPT, ALLNOBLANKROW Rimuovere i filtri da una o più colonne o da tutte le colonne di una singola tabella.
KEEPFILTERSKEEPFILTERS Aggiungi un filtro senza rimuovere i filtri esistenti sulle stesse colonne.
USERELATIONSHIPUSERELATIONSHIP Engager une relation inactive entre des colonnes associées, auquel cas la relation active devient automatiquement inactive.Innesca una relazione inattiva tra colonne correlate, nel qual caso la relazione attiva diventa automaticamente inattiva.
CROSSFILTERCROSSFILTER Modifier la direction du filtre (des deux directions à une direction ou vice-versa) ou désactiver une relation.Modifica la direzione del filtro (da entrambi a singolo, o da singolo a entrambi) o disabilita una relazione.

1 La funzione ALL e le sue varianti si comportano sia come modificatori di filtro che come funzioni che restituiscono oggetti di tabella. Se la funzione REMOVEFILTERS è supportata dal tuo strumento, è meglio usarla per rimuovere i filtri.

Valore restituitoValore restituito

Valore risultante dall’espressione.Il valore che è il risultato dell’espressione.

NoteOsservazioni

  • Quando vengono fornite espressioni di filtro, la funzione CALCULATE modifica il contesto del filtro per valutare l’espressione. Per ogni espressione di filtro, ci sono due possibili risultati standard quando l’espressione di filtro non è avvolta nella funzione KEEPFILTERS:

    • Se le colonne (o tabelle) non sono nel contesto del filtro, vengono aggiunti nuovi filtri al contesto del filtro per valutare l’espressione.Se le colonne (o le tabelle) non sono nel contesto del filtro, allora verranno aggiunti nuovi filtri al contesto del filtro per valutare l’espressione.
    • Se le colonne (o le tabelle) sono già nel contesto del filtro, i filtri esistenti sono sovrascritti dai nuovi filtri per valutare l’espressione CALCULATE.
  • La funzione CALCULATE usata senza filtri raggiunge un requisito specifico. Passa dal contesto della riga al contesto del filtro. È necessario quando un’espressione (non una misura del modello) che riassume i dati del modello deve essere valutata nel contesto della riga. Questo scenario può accadere in una formula di una colonna calcolata o quando viene valutata un’espressione in una funzione iteratore. Si noti che quando una misura del modello è usata nel contesto della riga, la transizione del contesto è automatica.

  • Questa funzione non è supportata per l’uso in modalità DirectQuery quando è usata in colonne calcolate o regole di sicurezza a livello di riga (RLS).

EsempiEsempi

La seguente definizione della misura della tabella delle vendite produce un risultato delle entrate, ma solo per i prodotti che hanno il colore blu.

Gli esempi in questo articolo possono essere aggiunti al modello di esempio Power BI Desktop. Per ottenere il modello, vedi DAX.Gli esempi in questo articolo possono essere aggiunti al modello di esempio di Power BI Desktop. Per ottenere il modello, vedere Modello di esempio DAX.

Blue Revenue =CALCULATE( SUM(Sales), 'Product' = "Blue")
CategoriaCategoria Importo venditeImporto vendite Vendite Prodotti blu Entrate Entrate blu
AccessoriAccessori 1.272.057,89 US$ 1.272.057.89 165,406.62 US$165,406.62
BikesBikes 94,620,526.21 US$94,620,526.21 8.374.313,88 US$8.374.313,88
AbbigliamentoAbbigliamento 2.117.613,45 US$2.117.613.45 259.488,37 US$259.488,37
ComponentsComponents 11.799.076,66 $11.799.076.66 803.642,10 US$803.642,10
TotaleTotale 109.809.274,20 US$109.809.274,20 9.602.850,97 US$9.602.850.97

La funzione CALCULATE valuta la somma della colonna Sales Amount della tabella Sales in un contesto di filtro modificato. Un nuovo filtro viene aggiunto alla colonna Colore della tabella Prodotto – oppure, il filtro sovrascrive qualsiasi filtro già applicato alla colonna.

La seguente definizione della misura della tabella Vendite produce la percentuale delle vendite sul totale per tutti i canali di vendita.La seguente definizione della misura della tabella delle vendite produce un rapporto delle vendite sulle vendite per tutti i canali di vendita.

ChannelChannel Sales AmountSales Amount % delle vendite oltre to TotalRevenue % Total Channel
InternetInternet $29.358.677,22 $29,358,677.22 26.74%26.74%
ResellerReseller $80.450.596,98 $80.450.596.98 73.26%73.26%
TotaleTotale 109.809.274,20 US$109.809.274,20 100.00%100.00%
Revenue % Total Channel =DIVIDE( SUM(Sales), CALCULATE( SUM(Sales), REMOVEFILTERS('Sales Order') ))

La funzione DIVIDE divide un’espressione che calcola la somma dei valori nella colonna Importo vendite della tabella Vendite (in contesto filtro) per la stessa espressione in un contesto filtro modificato.La funzione DIVIDE divide un’espressione che somma il valore della colonna Sales Amount della tabella Sales (nel contesto del filtro) per la stessa espressione in un contesto di filtro modificato. È la funzione CALCULATE che modifica il contesto del filtro utilizzando la funzione REMOVEFILTERS, che è una funzione di modifica del filtro. Rimuove i filtri dalla colonna Channel della tabella Sales Order.

La seguente definizione della colonna calcolata della tabella Customer classifica i clienti in una classe di fedeltà. È uno scenario molto semplice: quando il reddito prodotto dal cliente è inferiore a 2.500 dollari, è classificato nella classe Bassa; altrimenti, è classificato nella classe Alta.È uno scenario molto semplice: quando le entrate prodotte dal cliente sono inferiori a 2500 dollari, sono classificate come Low; altrimenti sono High.

Customer Segment =IF( CALCULATE(SUM(Sales), ALLEXCEPT(Customer, Customer)) < 2500, "Low", "High")

In questo esempio, il contesto della riga è convertito nel contesto del filtro. È noto come transizione di contesto. La funzione ALLEXCEPT rimuove i filtri da tutte le colonne della tabella Customer tranne la colonna CustomerKey.

Vedi ancheVedi anche

Contesto del filtroContesto del filtro
Contesto della riga
CALCULATETABLE, funzioneCALCULATETABLE
Funzioni del filtroFunzioni del filtro

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *