<< Back

Funzioni della categoria “Table Calculation”

Abbiamo già imparato a conoscere le Quick Table Calculation, ma inevitabilmente arriva quel momento in cui abbiamo la necessità di creare dei calcoli più complessi, per i quali le quick table calculation sono anche fin troppo “quick”!

Prima o poi dobbiamo imparare a usare le funzioni che fanno parte della categoria “Table Calculation”:

Immagine

E il miglior modo per imparare ad usarle è conoscere e capire la sintassi e il loro significato.

In questo articolo parlerò in modo generico delle funzioni che capita di usare più spesso.

Cosa importante da capire e ribadire sempre e ancora, è che le table calculation effettuano un calcolo matematico sugli elementi che in quel momento sono presenti nella table (sia intesa come tabella nel senso più letterale del termine, sia come grafico) e effettua l’operazione su 1 sola misura e il valore che assume in una colonna/riga/cella e quella successiva/precedente.

Quindi le table calculation non faranno altro che andare a vedere che valore assume una misura e effettuare l’operazione richiesta. Motivo per cui partiremo con la funzione Lookup(), che come dice il nome stesso, va proprio a “vedere”.

LOOKUP()

Se prendiamo, ad esempio, in considerazione la prima barra e supponiamo che il calcolo sia computato “Table across”, la funzione Lookup() sarebbe così:

CatturaSe prendiamo, ad esempio, in considerazione la quarta barra e supponiamo che il calcolo sia computato “Table across”, la funzione Lookup() sarebbe così:

Cattura2Se volessimo calcolare la differenza tra ogni sottocategoria e la seconda successiva, avremmo un risultato del genere:
Diff dal II successivo = SUM([Sales]) – LOOKUP(SUM([Sales]), 2)
Cattura3
2.985 = 163.073 (1a barra) – 160.088 (3a barra)
175.676 = 275.439 (2a barra) – 99.763 (4a barra)

234.303 = 339.684 (15a barra) – 105.381 (17a barra)
Le ultime due barre ovviamente restituiscono valori nulli perché per loro non esiste una seconda successiva barra.

TOTAL()

La funzione Total() restituisce il totale di tutte le righe del database che contribuiscono alla partizione. 598.601 è la somma delle 3 barre.

Se ipotizziamo un calcolo: % sul totale = SUM([Sales]) / TOTAL(SUM([Sales]))*100

Cattura27,24 = 163.073/598.614*100

46,01 = 275.439/598.614*100
26,74 = 160.088/598.614*100

INDEX()

Indice, restituisce una numerazione incrementale per ogni riga.

FIRST()

Prima, restituisce la distanza (in termini di righe) dalla riga corrente alla prima. Parte da 0 perché la distanza tra la prima riga e sé stessa è zero. E i valori sono negitivi perché bisogna salire verso l’alto (come nelle differenze dal precedente il lookup è -1).

LAST()

Ultima, restituisce la distanza (in numero di righe) dalla riga corrente all’ultima. L’ultimo valore è 0 perché la distanza tra l’ultima riga e sé stessa è zero. E i valori sono positivi perché bisogna scendere verso il basso (come nella differenza dal successivo il lookup è +1).
Senza titolo-3

Ad esempio il calcolo SUM([Sales]) – LOOKUP(SUM([Sales]), FIRST()) raggruppa 2 delle funzioni che abbiamo visto oggi. Una lookup  che anziché calcolare la differenza con la barra precedente o successiva, la calcola con la prima barra. Se mettessimo LAST() come ultimo parametro della formula, calcoremmo la differenza con l’ultima barra.

Cattura0 = 163.073 (1a barra) – 163.073 (1a barra)
112.366 = 275.439 (2a barra) – 163.073 (1a barra)

-57.692 = 150.381 (15a barra) – 163.073 (1a barra)

E ora che abbiamo iniziato a conoscere alcune delle funzioni che si usano più spesso, provate a curiosare nella categoria table calculation e provare, ad esempio, a capire che differenza c’è tra la funzione Index() e la funzione Rank(). Oppure tra la funzione Total() e la funzione Windows_sum(), che calcola la somma di tutti i valori della finestra.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.