Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
CALCULATE.FunzioneCalcolate
La funzione Calculate è formata da:
- Come primo input ha l'espressione su cui si vuole applicare il filtro. In questo caso mettiamo la misura Sales (che è la somma delle vendite)
- Poi come secondo filtro (e a seguire) richiede un filtro. In questo caso è il colore.
CALCULATE permette di filtrare l'espressione di riferimento, è quindi un vincolo dell'espressione; agisce in modo simile ai filtri che posso mettere direttamente cliccando (però questa che si crea è una misura, che può tornare utile se bisogna fare divisioni).
N.B! Il filtro viene applicato PRIMA che venga eseguita l'espressione (quindi il calcolo) (fa una selezione ex-ante). Perciò applica prima il filtro "red", solo POI andrà a fare la somma che è espressa in Sales. Quindi gli diciamo subito cosa vogliamo fare e poi quali sono i filtri da applicare nel momento dell'esecuzione.
prima a vedere i filtri e poi esegue l'istruzione che è nell'espressione.
CALCULATE viene utile nel caso in cui occorre cambiare qualcosa (es. una colonna) nella misura Sales di base: in questo modo se vado a modificare la misura Sales originale, di partenza, la sua modifica si espande anche alle funzioni in cui ho utilizzato CALCULATE, poiché in questa misura è richiamata la misura Sales originale. Al contrario se avessi per ogni nuova misura riportato il calcolo di Sales (ricopiando il codice), sarei dovuto andare a cambiare tutte le misure.
Misura Sales CALCULATE (che richiama la misura [Sales])
CALCULATE, per quanto riguarda i filtri, applica lo stesso ragionamento di quando si va filtrare quando si mette in righe o colonne, ovvero va a filtrare dalle tabelle dimensionali (che sono collegate a quella dei fatti) che hanno colonne primarie e proprio lì va a cercare il filtro (es. che poi si) 'Product' [Color] = "Red" espande sulla tabella
dei fatti. In questo modo verranno mostrati solo i risultati che rispettano i filtri e successivamente avviene l'espressione data come primo input. CALCULATE va quindi a porre dei filtri all'interno di una singola misura, non su tutto il report (non filtra tutto).
In pratica con CALCULATE si va a modificare il contesto, ovvero modifica quello che risulta visibile, per poi fare i calcoli (lancia la misura Sales) → [Contesto filtro è il set di valori consentiti in ogni colonna, in base ai vincoli di filtro applicati alla riga o definiti dalle espressioni di filtro all'interno della formula]. Si va quindi a modificare il contesto, lasciando sempre la stessa misura da eseguire.
Al contrario, prima, senza CALCULATE, si modificava la misura e il contesto rimaneva fisso.
CALCULATE inoltre è una funzione che snellisce tutto il processo, poiché non va riga per riga a controllare i valori (come nel caso in cui devo utilizzare FILTER e RELATED), ma mostra
Direttamente i valori che rispettano i filtri, risultando così molto meno dispendioso a livello computazionale (non deve analizzare tutte le singole righe della colonna).
Esempio:
Nella situazione iniziale la tabella customer è filtrata (dato il filtro English Education nelle righe), a sua volta il filtro si propaga sulla tabella Sales; non vi è però nessun filtro sul colore. Il filtro relativo al colore viene "applicato" tramite CALCULATE che va a modificare il contesto con il filtro sul colore.
Vantaggio di usare CALCULATE:
- Codice più corto e semplice
- "Manutenzione" più facile (in caso devo cambiare qualcosa nella formula base)
- Migliore a livello computazionale (non deve controllare tutte le righe)
N.B! Utilizzare delle misure per fare il filtraggio è utile se bisogna fare poi delle operazioni con questo risultato, per creare degli indicatori (KPI): esempio se voglio trovare la % di prodotti rossi
Su quelli totali, mi serve la misura dei prodotti totali venduti e la misura dei prodotti rossi totali venduti (altrimenti solo confiltri di visualizzazione non potrei scrivere nessuna misura che ne fa la divisione).
Lez. 7 – 24/03/2023
La funzione FILTER non fa nulla sul contesto (non filtra), ma va solamente a prendere i dati del contesto e ne dà un sottoinsieme (fa una selezione).
CALCULATE può:
- Aggiungere filtri
- Rimuovere filtri (REMOVEFILTERS)
- Modificare i filtri esistenti (KEEPFILTERS)
- Altre funzioni
Permette di fare quindi qualunque modifica vogliamo al contesto.
Se vogliamo calcolare la vendita di prodotti rossi in un particolare anno (2001) (tenendo conto del contesto sempre English Education, che è il filtro sulle righe), serviranno 2 filtri aggiuntivi:
Però, essendo che la prima parte della formula la avevamo già calcolata precedentemente nella misura che calcolava la vendita di prodotti rossi (Sales red products CALCULATE),
potrei allora semplificare ancora di più la formula andandola a richiamare e aggiungendo il nuovo filtro dell'anno:<p>Se vogliamo invece calcolare la vendita di prodotti rossi nell'anno 2001 per Femmine (F), faccio la stessa cosa richiamando la misura precedente ed aggiungendo un filtro:</p>
<p>N.B! Con CALCULATE se aggiungo più filtri è come se li mettesse con un AND. 35→Se invece si vuole rimuovere filtri funzione REMOVEFILTERS:</p>
<ul>
<li>Con la versione senza CALCULATE dovrei usare la funzione ALL, ma ciò toglierebbe tutti i filtri applicati (li ignora tutti).</li>
<li>Con CALCULATE invece posso andare a togliere solo i filtri che mi interessano; ad esempio, se voglio togliere solo il filtro English Occupation:</li>
</ul>
<p>Questo permette di togliere un filtro specifico che applico nelle righe (o colonne), di conseguenza se si mette un altro filtro, diverso da English Occupation, ALL Sales CALCULATE verrà filtrato, poiché ignora solo il filtro specifico, non tutti gli altri.</p>
altri (al contrario l'ALL di prima ignorava tutto). Posso mettere anche più filtri specifici, esempio:
Oppure si può rimuovere come filtro l'intera tabella dimensionale, esempio:
In questo modo qualsiasi parametro della tabella Customer che viene messa in righe o colonne non ha effetto di filtro, viene ignorato. 36
Si può anche aggiungere altri REMOVEFILTER per altre tabelle, esempio:
Posso togliere filtri anche da più tabelle intere, esempio:
Si può andare anche a togliere tutti i filtri (di qualunque colonna e di qualunque tabella):
Basta chiudere la parentesi senza specificare nulla, in questo modo ignora tutti i filtri. Si ottiene così lo stesso risultato che avevamo con ALL Sales. La peculiarità di CALCULATE è che possiamo fare la stessa cosa di ALL, ma se vogliamo possiamo essere molto più precisi, selezionando solo alcuni filtri.
Possiamo aggiungere filtri e togliere filtri contemporaneamente. Se voglio ottenere su
Tutte le righe il numero totale di prodotti venduti rossi, devo prima rimuovere tutti i filtri e poi mettere solo il filtro del colore rosso (in realtà come si vedrà dopo la rimozione dei filtri della stessa colonna specifica lo fa in automatico anche senza utilizzare il removefilters
; non rimuove però tutti gli altri filtri in automatico): 37
CALCULATE
va quindi ad eseguire i filtri secondo un certo ordine: prima dà la priorità alla rimozione dei filtri (la rimozione è un modificatore), e poi va ad aggiungere filtri. Di conseguenza anche se mettessimo in ordine diverso i due filtri (prima product
poi removefilter
) il risultato non cambierebbe, andrebbe comunque prima a rimuovere tutti i filtri per poi aggiungere quello nuovo. Questo comporta che REMOVEFILTER
non va MAI a togliere un filtro che abbiamo introdotto, non avrebbe senso!
REMOVEFILTER
() toglie i filtri preesistenti.
REMOVEFILTER
quindi permette di rimuovere filtri da:
- Una
colonna• Più colonne• Da una intera tabella• Da più tabelle intere• Da tutte le colonne e tabelle (tutti)• Permette anche di togliere filtri e contemporaneamente di aggiungerne (rimuovendoli tutti e aggiungendo quelli specificati)
Si può anche modificare un filtro, tramite la funzione KEEPFILTERS.
N.B! CALCULATE ha un particolare comportamento nel momento in cui nella misura che scrivo do un filtro, ma è già presente un filtro uguale sulla stessa colonna come quello all’interno della formula: CALCULATE fal’Overwrite (sovrascrittura), ovvero va a eliminare il filtro sulla colonna per applicare quello che gli dico ionella formula della misura, ottenendo così un valore uguale in tutti i punti.
In questo caso il contesto ha già un filtro del colore black sulla stessa colonna (perché è la colonna che viene filtrata), di conseguenza, CALCULATE va prima a rimuoverlo e poi applica il filtro.
“rosso” che gli èstato dato nella funzione. 38Possiamo però anche non fargli fare l’Overwrite, ovvero, se anche è presente un filtro sul colore, nonfarglielo togliere e poi applicare il filtro rosso che abbiamo messo nella misura. Questo porta al risultato cheavremmo con la formula “classica”, ovvero dove c’è il filtro degli altri colori (es. black, blue ecc.) otteniamoun risultato nullo, poiché appunto non rispecchiano anche il filtro rosso (verranno applicati entrambi i filtricontemporaneamente), di conseguenza solo nel match dei filtri Red - Red otterremo il risultato di [Sales].Per fare questo però lo devo specificare, altrimenti di base fa l’Overwrite andando a togliere filtri analoghiapplicati (solo se c’è un filtro sulla stessa colonna; non toglie tutti i filtri); posso fare questo tramite ilcomando KEEPFILTERS:KEEPFILTERS cambia il comportamento di CALCULATE nel momento in cui va
ad applicare il filtro, non eliminando gli altri presenti nella colonna. Quindi, sulla colonna product ci saranno 2 filtri, ma che sono incompatibili (a meno che non siamo nel match red-red): di conseguenza la tabella product sarà vuota e quindi per propagazione anche la tabella Sales sarà vuota (non c'è il match) e quindi il risultato sarà blank (vuoto).KEEPFILTER permette quindi l'intersect dei filtri (due filtri che si intersecano, funzionano insieme). KEEPFILTER permette di inserire il filtro senza toccare quelli già presenti sulla colonna.
Lez. 8 – 28-03-2023
CALCULATE permette anche di:
• Modificare le relazioni tra le tabelle
• Fare Time intelligence, che è utile per fare un'analisi dell'andamento nel tempo delle performance.
La time intelligence è una branca della BI che si occupa di gestire le date, ovvero l'andamento nel tempo, permette di "modificare" le date.
Modifica delle
relazioni. È possibile tramite CALCULATE
(e una relativa funzione) modificare al volo una relazione