Scarica Business Intelligence - appunti completi e più Appunti in PDF di Informatica gestionale solo su Docsity!
Business Intelligence
Introduzione lezioni. 1)Excel tradizionale 2)Pacchetto power pivot (sono pivot moderne) per utilizzare Excel come database.
- Power BI N.B! Lo Scopo della BI (business intelligence) è trasformare i dati grezzi in informazioni. I dati diventano informazioni nel momento in cui comunicano qualcosa ; i dati di per sé non comunicano nulla se non sono “organizzati” (sistemati). Lezione 1 - 23/02/ Gestionale --> serve per gestire i dati, per interagire con il database Info su Excel :
- Non è una buona idea estrarre i dati del database da usare su Excel: i dati non dovrebbero stare qui ma dovrebbe essere utilizzato solo client per fare operazioni.
- Excel non è impostato su tabelle, ma su celle (le tabelle sono solo per i database). Inoltre, Excel non è sicuro a livello di tenuta dati.
- Importante mettere intestazioni univoche (nomi delle celle univoci) e non nulle (non lasciare vuoto), devono per forza avere un nome.
- La 1 riga sono metadati , perché contengono il nome della colonna. Dataset 01:
- Cust no = constumer number, indica il numero del cliente
- Product = prodotto, indica l’oggetto dell’ordine
- Product plant = magazzino, indica lo stabilimento di provenienza del prodotto
- Order entry date = data in cui è stato acquistato
- Scheduled ship date= giorno in cui dovrebbe essere spedito
- Invoice date = data di fatturazione, è la data in cui avviene effettivamente la transazione
- Actual ship date = data di reale spedizione
- Sales AMT (amount) = totale vendite (dato da quantità *prezzo)
- Product series= serie di prodotto, ovvero una serie a cui appartiene un prodotto (sono quindi dati meno particolari, non dà il modello esatto, ma solo la serie a cui appartiene) TIPS GENERICI :
- Per vedere direttamente il conteggio di una colonna basta selezionarla tutta (da sopra, premi la freccia in giù che appare nel nome della colonna), e poi guardare in basso a destra dove appaiono tutte le info. N.B! in questo caso al conteggio cavare 1 (prima riga non vale, è il nome della colonna. N.B! se però ci sono celle vuote non corrisponde, non conta tutte le righe in questo caso, ovvero le celle vuote NON le conta
- Per selezionare una tabella fino alla sua fine (solo quella, non tutta la colonna/riga) → Click sulla cella poi ( Control + shift e freccia direzionale su/giù/destra/sinistra ). In questo modo arriva fino alla fine della tabella nella direzione selezionata.
- Nelle funzioni (=…..) di Excel il primo numero è necessario, il secondo no (c’è la quadra infatti). Invece il numero in grassetto ci dice dove ci troviamo a livello di posizione.
- Regolare in modo “fine” fin dove arrivare → utilizzo ( Shift + freccia direzionale su/giu/destra/sinistra ). In questo modo regolo fin dove deve arrivare ad esempio con la somma, variando la selezione di 1 cella.
- Se faccio copia la cella con la funzione somma (o altra funzione) e la incollo in quella di fianco trasporta anche la formula, cambiando da dove prende i dati, quindi traslando i dati, es. se sposto a destra di 3 colonne, anche i dati che prende li cambia di 3 colonne. Stessa cosa se vario di riga.
- Pulsante F2 sulla cella → per vedere la formul
- Filtro dati : lo utilizzo se voglio dividere i dati da visualizzare. Es. Se voglio sapere i valori della colonna → seleziono la colonna → poi ordina e filtra → poi filtra , e nella spunta che appare trovo la lista dei valori distinti (trovo i valori che non si ripetono, ovvero quelli che sono distinti ). Questo però è fattibile solo se sono pochi i risultati, se sono molti diventa incasinato. Utilizzare un filtro permette solo di NASCONDERE i valori che non mi interessano, però ad esempio la formula totale di una somma non cambia (nasconde solo visivamente) Utilizzo “ cancella filtro da product series ” per cavare i filtri selezionati (nella colonna product series).
- Subtotale : il Subtotale impersona una funzione, ma è sensibile ai filtri. È possibile impostare qualsiasi funzione, ma in questo caso utilizzando i filtri il risultato varierà, poiché prenderà in considerazione o meno i filtri applicati. Come utilizzarlo: selezionare nel primo numero la funzione che deve imporsonare, in questo caso 9 è la somma , e sarà tipo → =SUBTOTALE(9;I2:I13308) Il Subtotale, quindi, da il risultato in base ai valori visibili.
- Incollare solo i valori (non la formula) → seleziono i valori interessati → li copio → poi tasto destro dove li devo incollare → utilizzo ( incolla 1,2,3 ). In questo modo incolla solo i valori e non la formula (questi però non si aggiornano se variano i dati) Il totale nelle tabelle pivot NON è mai legato ai subtotali. Il totale in una pivot è SENZA FILTRI. NON è infatti vero che i subtotali sommati danno il totale, ovvero se sommo i subtotali non è detto che danno il totale precedente, per esempio la media non tornerebbe! Non sempre i subtotali sono additivi.
Tabella a doppia entrata → ovvero vuol dire generare una tabella con righe e colonne (una sola categoria di dati per le colonne però), in modo che sia più leggibile. N.B! Meglio mettere nelle colonne dove ho meno valori (vi saranno quindi meno colonne), ovvero meglio mettere nelle righe dove ho più elementi (le righe sono più sottili, quindi, allungano meno la tabella rispetto a mettere più colonne)
- Excel genera un prodotto cartesiano e quindi, se una riga o colonna ha un valore vuoto o nullo , quella riga viene direttamente cancellata poiché non c’è informazione.
- Ordinare per numero → fare tasto dx sulla selezione → ordina (e poi selezionare come ordinare) La pivot crea una propria copia della tabella originaria, crea una sorta di copia che sta sotto la pivot, di conseguenza nel momento che vengono modificati i dati sulla tabella originaria bisogna fare il refresh della pivot facendo: tasto dx sulla pivot → aggiorna. Il fatto che non aggiorni automaticamente i dati è utile per fare confronti. La pivot può diventare gli estremi della tabella : o rappresenta solo 1 cella o tutta la tabella. Questo avviene a seconda dei filtri che seleziono per la visualizzazione (se li seleziono tutti vedo tutta la tabella). Riquadro filtri della Pivot:
- Il Riquadro filtri è utili per tenere i dati in modo gestibile. Ad esempio, se metto la serie nei filtri posso selezionare la serie che voglio, togliendo quelli che non mi servono. Il riquadro filtro permette di evidenziare quello che mi serve! In questo modo restringo la ricerca su quello che mi serve, restando gestibile.
- N.B!I filtri del pannello filtri vanno però togliere quei dati sul totale del report e quindi il totale è influenzato dai filtri. Ovvero, deselezionando dei dati da questi filtri il risultato viene modificato nei calcoli e quindi è sensibile a questi filtri!
- Posso aggiungere un “elenco visivo” dei dati (o slicer ) della Pivot riguardante i filtri, in modo che siano più veloci da selezionare e graficamente migliori. Basta fare → click dx su quello che mi serve come filtro → poi aggiungi come filtro dei dati. In questo modo creo una “DASHBOARD” per ogni tipo di filtro dato. IMPORTANTISSIMO--> facendo doppio click su un dato della pivot aprirà un'altra pagina con tutti i dati che compongono quel determinato dato ottenuto nella pivot (le mette separatamente copiandole dalla tabella d’origine). Questo si chiama “Drill True”. Permette di vedere come il dato della pivot è composto (da quali dati della tabella originale deriva)
Lezione 2 - 02/03/ Riquadri delle pivot (come funzionano):
- Riga: generiamo elenchi distinti (privi di ripetizioni) ogni riga
- Colonna: generiamo un elenco in orizzontale (privi di ripetizioni, distinti)
- Valori : per fare operazioni (ma se si mettono colonne testuali dà il conteggio delle celle piene)
- Filtri: applichiamo dei filtri, che sono validi anche per il totale, ovvero modificano il totale, agiscono anche su di esso (posso mettere anche filtri visivi per selezionare) Prima si settano i filtri, poi i calcoli, in modo da individuare quelli sono i calcoli che deve eseguire. Se metto product Plant nella casella “ valori ” ottengo il conteggio delle caselle piene (quindi NON conta le caselle vuote). Se forzo una colonna non numerica nel quadrato “ valori ”, Excel somma le celle piene, quindi non conta le celle vuote, di conseguenza non è un buon modo per contare le celle totali. Inoltre, appunto non va a contare i valori in modo distinto (è un errore se voglio sapere quanti valori distinti ci sono, per esempio per il numero di stabilimenti). Se invece metto “sales amout” nelle righe , Excel da un elenco distinto di tutti i valori di sales Aumont (il che non ha senso), quindi aggrega i valori che sono uguali. Quindi Excel aggrega testi e aggrega numeri se vengo messi su righe e colonne.
Funzione “Campo Calcolato”
Per fare la media ponderata serve un calcolo prendendo il valore da più di una colonna: se infatti faccio fare le media dei prezzi (inserendo i prezzi nel riquadro “valori”) questa non sarà corretta, poiché non pondera i prezzi, ma fa solamente la media dei valori della colonna. Al contrario per la media ponderata bisogno considera le quantità vendute dei bene, di conseguenza si trova facendo la divisione tra le vendite totali e il numero di ordini. Allora utilizzo “ campo calcolato ” che permette di generare un calcolo utilizzando più caselle (prende i dati dalla tabella di base). Cliccare sulla pivot nella zona di calcolo (non sui nomi) --> celle --> inserisci --> inserisci campo calcolato --> inserisci la formula (sales amount/order quantity) [in realtà bisogna fare la somma di sales amount, la somma di order quantity, e poi la divisione, poiché quelle due sono colonne, non numeri di per se] N.B! “ campo calcolato ” non aggiunge nessuna colonna, è semplicemente per fare un calcolo su più colonne insieme. Per vedere che calcolo c’è dietro al “ campo calcolato ” clicca --> celle --> inserisci --> campo calcolato --> selezionare il “ nome ” interessato, quello che avevi già creato. Ogni cella della pivot è indipendente dalle altre colonne, ogni colonna lavora per sé: ad esempio se metto in “valori” della pivot una colonna, questa fa i calcolo solo su quella colonna (somma, media ecc), al contrario se devono fare calcoli con più di una colonna che devo utilizzare “ campo calcolato ”.
Verificare se una colonna è una “Chiave Primaria”.
Bisogna verificare prima se la colonna da cui prelevo i dati per la join ha dati univoci (in sales invece non serve siano univoci). Per verificare se una tabella è primaria basta fare una Pivot --> metto la colonna che voglio verificare sia nel quadrato “ righe ” sia in “ valori ” (con la somma) --> poi ordino dal più grande al più piccolo --> in questo modo ottengo in righe le colonne accorpate e la somma delle celle con quel valore: se la somma è 1 vuol dire che c’è uno solo di quel valore, ovvero è UNIVOCO. Ad esempio, per il product, non è univoco poiché è prodotto in stabilimenti diversi, con dei costi unitari diversi: di conseguenza ci sono più costi unitari.
Concatenamento Colonne: creare una “Chiave Primaria”
Posso creare una colonna dove concateno 2 colonne (le unisco) – > utilizzo “ & ” tra due celle (poi espando a tutta la colonna ) es. (=B2 & A2). In questo modo creo una colonna primaria tramite l’unione dei valori nelle celle. Fatto questo posso replicare in modo IDENTICO con la funzione cerca.vert questa Primary Key anche nella colonna Sales (dove devo fare il cerca vert). In questo modo si ottiene la colonna da utilizzare come parametro di ricerca per fare la join di tabelle.
Calcolo margine di contribuzione dei prodotti.
Margine di contribuzione = vendite – costi variabili (dei prodotti) Se questo margine è negativo vuol dire che non riesco a coprire neanche i costi variabili, di conseguenza neanche quelli fissi. Se anche il margine di contribuzione è positivo, ma i costi fissi > margine di contribuzione → siamo in perdita N.B! Pct =percentuale Marine di contribuzione % = margine di contribuzione / ricavi (vendite, ovvero sales AMT). Questo indica per ogni euro di ricavo, quanti euro ho di guadagno. A parità di margine (non %) è meglio che la vendita sia bassa, in modo da avere un margine di contribuzione % alto. Non posso sommare le % dei margini di contribuzione!! Ogni % ha un denominatore che corrisponde a un particolare valore della sua riga. Se sommassi tutte le percentuali verrebbero % insensate. Per calcolare nella pivot il margine % totale faccio il rapporto tra il la somma dei margini (in valore euro) e divido per la somma totale delle vendite. In questo modo ottengo il margine % totale (se facessi la somma dei margini % appunto verrebbe tutto sbagliato dato che si basano su denominatori diversi).
Funzione SE.
Utili, ad esempio, per segnalare con un testo l’esito di un risultato/confronto. Posso ad esempio utilizzarlo per segnalare se il margine è positivo, negativo, o molto positivo (wow), combinando anche più SE:
- Se normale --> = SE (I2<0;"NEG";“POS”)
- Se combinato --> = SE (I2<0;"NEG"; SE (I2<40%;"POS";"WOW")) N.B! importante scrivere anche il “ % ”, altrimenti segnerebbe 4.000 %. N.B! se deve dare come risultato un numero possono non mettere gli apici “”. N.B! dato un numero n di risultati che voglio ottenere, servono ( n- 1 ) SE. Infatti, per 3 risultati servono 2 SE. Questa colonna la metto poi nella pivot (insieme a sales amount), in modo da vedere accorpato i valori positivi, negativi e wow. Per fare il check della correttezza posso mettere il margine di contribuzione calcolato (margini totali/vendite totali), in modo da verificare che effettivamente ad ogni valore di margine corrisponda il giusto esito.
2 modo con tabella (metodo piu veloce e semplice):
- Nuova colonna --> cerca vert e seleziono come match la colonna “invoice data”, poi prendo dalla colonna calendar lo Yearmonth che voglio trasportare: =CERCA.VERT(O2;Calendar!A:H;8;FALSO)
- In pratica uso il calendario come database per trasformare una data in un altro formato. Il calendario mi dà fa database per convertire ogni data nel formato che voglio, utile per qualsiasi file Excel. Posso fare questa cosa anche con l’anno fiscale americano (che è diverso da quello italiano). Basta prendere FYQuarter nella tabella Calendar. Fare grafico pivot :
- Click sulla pivot --> in altro a destra clicco “analizza” o “analisi grafico pivot” --> grafico pivot
- Poi posso variare quello mi serve flaggando e cambiando la pivot
Power Pivot Non c’è spazio massimo per allocare i dati (al contrario di Excel che al max tiene 200k righe), dipende dalla RAM del PC, da quanti dati può sopportare e elaborare. Power pivot si occupa di analizzare dei dati, ovvero permette di fare una power pivot prendendo dati da diverse tabelle Utilizzeremo campi calcolati chiamati “ misure ” o “ KPI ”. Useremo il linguaggio DAX ( Data Analysis Expressions ). N.B! i file contenenti i dati non dovrebbero stare sullo stesso file Excel nel quale si lavora, ma dovrebbero essere presi tramite un database. Excel non è buono per tenere i dati (es potrebbe corrompersi il file e quindi dati non più recuperabili). Per questo implementiamo le power pivot che prendono dati dal database. Posso connettermi anche a più sorgenti dati come, ad esempio, pagine web dove ricavare dei dati. Posso connettermi anche a diverse tipologie di database, diverse sorgenti. Per condividere i file posso condividerli in modo che i dati non sia modificabili, in modo da evitare che i dati possano essere modificati. Database PowerQuery : è un database che serve per connettersi a dati esterni (copiarli e portarli dentro al power pivot) e ripulirli una volta messi dentro (li si ripulisce una volta copiata, non vengono puliti all’origine) Vi sono 3 passi fondamentali per fare delle Power Pivot:
- ETL (extract transform and load): è la prima fase della power pivot, prendo i dati, li copio e li trasformo se necessario. Prima prende i dati, poi li trasforma se necessario, poi li carica sul programma che mi serve per analizzare (in questa caso sempre Excel) Powerquery è un database che lavora per righe, ogni elemento è una riga. PowerQuery fa l’ ETL. Power Pivot invece è un database che lavora per colonne, il che serve nel momento in cui si analizzare le colonne e fare un’analisi molto piu rapida ed efficiente. Questo permette di fare tutta la parte di data modelling e visualizzazione.
- Data modelling : seconda fase del power pivot, serve per connettere più tabelle. Metto in relazione diverse tabelle (senza andare ad utilizzare i cerca.vert). È un insieme di tabelle base (quelle che arrivano da database), misure, relazioni, colonne calcolate (che non esistono di partenza), tabelle brithge (es. calendario). N.B! non abbiamo però le tabelle calcolate!
- Visualizzazione (viz) : terza fase di power pivot che consiste nel creare grafici capibili e semplici, immediatamente comprensibili. Non usare diagrammi a torta, no diagrammi tridimensionali, meglio usare diagrammi a barre o linee, non robe complicate, solo grafici bidimensionali. Si usano tabelle Power Pivot.
- Sharing : questa 4 fase power pivot non può farla. Non dobbiamo solo inviare il file, ma bisogna che le altre persone lo possano visualizzare ma senza modificare. Su power pivot si può inviare ma viene scaricato e può essere modificato. Questo problema è risolto con Power BI (grazie al cloud).
Il passaggio “modificato tipo” invece va a decidere il tipo di dato per ogni colonna, ogni colonna ha un proprio tipo di dato, lo stabilisce alla fine perché altrimenti se lo avesse fatto prima avrebbe preso tutte le colonne come testo (visto che c’erano le intestazioni nella prima riga del database).
- In questo caso dovendo modificare la tabella customer --> cancello “ modificato tipo ” --> Poi in alto a sinistra “ trasforma ” --> “ usa la prima riga come intestazione ” ---> poi fa il resto da solo
- Poi faccio Home --> chiudi e carica in... - - > “ crea solo connessione " e spunta “ aggiungi questi dati al modello dati ”, in questo modo non crea dei fogli con i dati ma li tiene in memori prendendoli dal database. N.B! se per sbaglio chiudiamo la scheda delle connessioni al database basta andare su:
- Tab Power pivot --> tasto “ gestisci ” e visualizzo il database delle tabelle. Per generare una power pivot :
- Da dentro la zona “ Gestisci ” (di power pivot) --> tabella pivot --> e selezionare “ Foglio di lavoro esistente ” (o altro se la voglio mettere in un altro foglio) In questo caso abbiamo una tabella Pivot dove appaiono già tutte le pagine del database e da cui posso selezionare i dati da cui attingere. Però bisogna legare le tabelle con delle relazioni , altrimenti i dati vengono filtrati ma senza relazioni tra le tabelle, risultando inutile. Infatti, se mettiamo salesarea in righe e sales amt in valori, va a mostrare i dati di una tabella, ma i calcoli li fa su di un’altra, non sono quindi in relazione. Allora dobbiamo:
- Devo allora fare --> vado in “ gestisci “di power pivot --> vista diagramma (sistema in modo visivo le tabelle consentendo di stabilire relazioni) --> trascino “ customer no ” della tabella sales a “ customer no ” dalla tabella customer. In realtà non è necessario trascinarlo esattamente sopra, basta che in tutti e due le tabelle ci sia quella colonna (primaria) e si trascina una colonna dentro l’altra tabella (poi Excel capisce cosa associare) In questo modo quindi lego le due tabelle tramite il “ customer no ” in comune. Il numerino “ 1 ” indica che è una chiave primaria (se non è una chiave primaria segnala errori, ad esempio se provo con la colonna “product” da errore poiché ci sono più valori), l’* vuol dire “molti”, ovvero ci sono piu valori simili in quella tabella; questo infatti è un collegamento “1 a tanti”. N.B! In questa maniera non ho più bisogno di fare dei cerca.vert, la relazione/collegamento che facciamo sostituisce questa funzione. Connette direttamente tutti i dati della tabella con un semplice trascinamento. Se però non abbiamo una colonna primaria (o Colonna Calcolata poiché è una nuova colonna non presente nel database) possiamo costruirla, in modo simili a quanto fatto in Excel normale (con &) ma qui la selezione delle celle è diversa:
- creiamo una colonna calcolata --> andiamo su Gestisci di power pivot --> “ vista dati ” --> tabella product --> inserisci una nuova colonna --> concateniamo product plan e product scrivendo proprio le celle interessate --> ='Product'[Product]&'Product'[Production Plant] In questo caso, rispetto a Excel tradizionale, cambia come vengono specificate le celle, per prima cosa appare il la tabella/pagina ( 'Product' ), poi appare la colonna ( [Production Plant] ). (basta accennare il nome della tabella poi escono le selezioni)
- Faccio la stessa cosa in sales --> nuova colonna “ chiave straniera production ” --> = Sales[Production Plant]&Sales[Production Plant]
- A questo punto posso andare a legare la tabella sales con la tabella product. N.B! una volta che metto in relazione le tabelle posso usare i diversi dati di una sull’altra. N.B! Per mettere il subtotale area --> tasto dx sulla pivot (sul dato letterale) --> subtotale “” Se invece metto in relazione la data , devo esattamente trascinare la data della tabella calendar sul corrispettivo esatto nella tabella sales , ad esempio invoice data --> in questo modo quando selezioneremo nella pivot la data verrà mostrato la data (o anno, o mese ecc.) relativa alla fatturazione (invoice). Potevamo fare questa relazione anche con altre date, ad esempio data di recezione ordine, di spedizione ecc. (tutto in relazione al tipo di data che voglio prendere). Per fare la somma su power pivot uso: “= SUM ” Ora conviene fare un campo calcolato (cella creata tramite una formula, come visto in Excel precedentemente) che in power pivot chiamiamo misura. Conviene fare questo per tutti i dati basilari che servono nelle diverse formule, poiché permette di rende più facile gli adattamenti nel momento in cui vi sono variazioni, ad esempio, per fare simulazioni di scenari futuri. Per generare delle misure faccio: tab power pivot --> Misure (fx) --> nuova misura --> scrivere la misura e indicare il nome tabella dove farlo spuntare e il nome che gli si vuol dare N.B! qui però al contrario di Excel base, dobbiamo sommare tutti i valori di sales amt e sommare tutti i valori di order quantity, e solo dopo farà la somma (per fare il prezzo medio)--> =SUM(Sales[Sales AMT])/SUM(Sales[Order Quantity]) Se voglio vedere cosa succede se aumentano le vendite ( sales amt ) del 30% --> Non posso farlo direttamente perché non posso moltiplicare la colonna, non ho un campo calcolato per sales Amt da cui posso cambiare la formula. Bisognerà creare una misura solo con la somma dei sales amt --> =SUM(Sales[Sales AMT]) Fatto questo allora posso ipotizzare lo scenario e moltiplicare la misura 1,3 se voglio un aumento delle vendite del 30% --> =SUM(Sales[Sales AMT])1, Questo però non aggiornerà direttamente i dati anche del calcolo del prezzo medio, poiché lì c’è la formula ricavata dalla tabella di partenza. Bisogna quindi utilizzare dentro la formula del prezzo medio la misura di
Lezione 4 - 10/03/ Esame : da un database e dobbiamo fare i calcoli che ci indica su un file word, poi dobbiamo rimandargliele con scritti i risultati e il codice scritto, poi chi sono anche 2 domande aperte (es. Cos'è un chiave primaria). La BI dice solo come stanno le cose, quanto sono riuscito a vendere ecc., non dice il perché; tutto il resto è spiegato dalla statistica. Dentro Power BI è possibile fare comunque un po’ di inferenza, di forecasting (anche se siamo fuori dalla BI, siamo già nell’analytics). La BI serve per trasformare i dati (insieme agglomerato di contenuti, valori, testi ecc.) in informazioni , che sono le basi per prendere scelte e decisioni. I dati non permettono di arrivare ad una decisione/soluzione, le informazioni sì. L’informazione sono dati organizzati che comunicano qualcosa. All’interno di Power BI distinguiamo:
- Tabella dei fatti : è la tabella principale
- Tabelle dimensionali : sono le tabelle accessorie. Queste vengono collegate con un collegamento 1 a molti con la tabella dei fatti.
- Modello a stella ( star scheme ): è quello basato su 1 tabella dei fatti e delle tabelle dimensionali
- Modello a fiocco di neve : ha altre sotto-tabelle dimensionali collegate alle altre. N.B! Se trascino direttamente le colonne nel campo “valori”, diventa una colonna implicita (la calcola implicitamente), ad esempio di base fa la somma di quei valori. Se invece faccio una misura , quella diventa una colonna esplicita , gli diciamo noi cosa deve fare, che calcolo effettuare. N.B! In “ righe ”, “ filtri ”, “ colonne ”, devono essere messi solo colonne dimensionali (tabelle accessorie) (colonne derivanti dalle tabelle accessorie) in modo tale i filtri possono essere propagati a tutti. Se infatti si applica un filtro sulle tabelle dimensionali e queste sono collegati alla tabella dei fatti, i filtri si applicano a loro volta a casata su quest’ultima (Cross filtraggio), di conseguenza se si vuole un filtro si deve applicare a quelle dimensionali. Sulle dimensioni si applicano i filtri, che si propagano poi sui fatti.
Vi sono 3 notazioni diverse per 3 entità diverse (come esprimerle in modo scritto):
- Tabella
- Tabella[colonna]
- [misura] Per riaggiornare “da dove” prende i file di database (nel caso in cui si chiuda Excel e il database non sia online) --> dati --> recupera dati --> impostazioni origine dati --> “ cambia origine ” e poi selezionando il database interessato N.B! Qui nel “ campi tabella pivot ” stare sempre su tutti --> (altrimenti non fa vedere tutte le tabelle e i filtri) Se voglio trovare la vendita ($) per cliente --> faccio Sales/num. clienti.
- Serve però il numero dei clienti attivi (quelli che hanno comprato) distinti e quindi dobbiamo andare a vedere il numero di clienti dalle vendite (quelli presenti nella tabella “sales”, NON quelli di customer). Serve un conteggio distinto dalla tabella sales dei customer (attivi)
- Funzione “ DISTINCTCOUNT ”: distingue i valori e li conta (li conta 1 volta solo, senza prendere i doppioni). In questo caso distingue i clienti e li conta (è una misura scalare e non additiva). Deve contare i cliente della tabella sales (che sono quelli che hanno acquistato) --> =DISTINCTCOUNT(Sales[Cust No])
- Funzione “ DISTINCT ” (senza count) invece come uscita una tabella di valori distinti, un po’ come se si mettesse una colonna in “righe” o “tabelle” della pivot. A noi in questo caso non serve solo la tabella distinta ma anche il conteggio (infatti usiamo distincount). DISTINCT è una funzione tabellare , poiché dà in output una tabella.
- In questo modo riusciamo a ricavare il numero di clienti che hanno comprato, ovvero il totale di clienti distinti attivi (non è la somma di tutti nei vari mesi, poiché i clienti comprano in mesi diversi ma li conta solo 1 volta). Da una misura NON additiva.
- Per calcolare la vendita media per cliente uso la nuova formula utilizzando però le misure --> =DIVIDE([Sales];[Clienti Attivi])
- Filtraggio indiretto : se si va ad applicare un filtro su una colonna della tabella dimensionale che non è in diretta relazione con la tabella dei fatti avviene comunque un filtraggio, ma passando sempre tramite la colonna in comune alle due tabelle. Quindi avviene un cross filtraggio sulla colonna in relazione. Esempio: se metto il filtro su “salesarea” della tabella customer, questo va a cross-filtrare il Customer No. della stessa tabella, che essendo collegata a quella dei fatti si propaga a sua volta. Si passa quindi sempre tramite la colonna in comune tra le due tabelle, perché sono queste che hanno la relazione! N.B! la relazione di propagazione di chiama “ uno a molti ()* ”, infatti abbiamo da una parte la chiave primaria (valori univoci) e dall’altra la chiave straniera (con valori che si possono ripetere) Trovare per area, quante delle transazioni sono quelle appartenenti ai clienti automotive (voglio il valore %) --> transazioni automotive / transazioni (tot)
- Bisogna andare a contare tutte le righe che rispettano il parametro di essere del settore automotive, quindi bisogno dare a COUNTROWS una tabella che contenga solo quelle righe appartenenti al settore automotive (che è un parametro appartenente alla tabella customer)
- Devo generare una tabella che ha come condizione un determinato parametro (deve rispettare una condizione). Poi verrà contato con il COUNTROWS. Utilizzo --> FILTER (va a selezionare le righe visibili)
- Funzione “ FILTER ”: è una funzione che genera una tabella (funzione tabellare), secondo una determinata condizione (fa una selezione ). Filter va creare un sottoinsieme di una tabella di parte in base ad una condizione che gli si impone. In input ha una tabella e in uscita da una tabella con i valori che rispettano una determinata condizione (darà quindi una tabella uguale o più piccola di quella di partenza); va a selezionare delle righe secondo la condizione. Funzione tabellare = quando l’uscita generata è una tabella N.B! FILTER è influenzata dai filtri! Infatti, se fossero stati messi altri filtri successivi avrebbero influenzato quello che filter fa: esempio se per il segmento avessi selezionato solo “distributor”, la tabella sales sarebbe stata filtrata per questo parametro, di conseguenza la funzione FILTER non avrebbe potuto individuare nessuna riga che ha come parametro il segmento “Automotive”, perché appunto non ce ne sarebbe stato neanche uno (il filtro “distributor” ha causato questo).
- In questo caso va a dare un sottoinsieme della tabella sales. Però FILTER, nel momento in cui do in input una tabella (es. Sales) poi come condizione va a mostrare parametri di quella tabella: se voglio imporre una condizione appartenente a delle tabelle dimensionali (che sono collegate con la principale) devo utilizzare “ RELATED ”, che permette di vedere gli altri parametri delle tabelle collegate.
- Funzione “RELATED ” = “segui la relazione”, fa vedere le relazioni con tutte le altre tabelle. N.B! In RELATED dopo aver specificato la colonna chiudere la perentesi tonda, poi mettere = e la condizione (se la condizione è in lettere mettere le virgolette “” )
- Verrà quindi --> COUNTROWS qui va a contare le righe della tabella generata da FILTER, che è derivante dalla selezione attraverso una determinata condizione.
- Fare poi il rapporto transazioni automotive / transazioni (tot) Otteniamo così la quota di transazioni automotive per ogni area (ovvero la quota sul totale dell’area), visto che in questo caso è stato applicato il filtro area, che può benissimo essere cambiato selezionando qualcos’altro. N.B! shift + enter per andare a capo quando si sta scrivendo il comando. Cliccare anche ESC per non far apparire “ADDCOLUMS”. Trovare quanto le transazioni di ogni area sono rispetto al totale delle transazioni (% voglio) --> transazioni di ogni area / transazioni totali
- NON posso fare come in Excel normale la divisione tra le celle.
- Occorre andare a trovare per ogni riga (o area in questo caso) il totale delle transazioni complessive. Bisogna andare quindi a generare una colonna che da più righe di quelle che gli si danno in input: gli si dà in input la tabella Sales, che però è filtrata, ma in uscita si vuole ottenere la tabella Sales non filtrata (o meglio si vuole ottenere il suo conteggio ) --> si vuole il numero di righe della tabella in assenza di filtri
- Questo viene fatto tramite la funzione “ ALL ” --> data una tabella in ingresso restituisce una tabella ma andando ad ignorare i filtri, restituisce quindi l’intera tabella andando oltre al muro dei filtri. La tabella in uscita è più grande di quella in ingresso. ALL è una funzione tabellare. N.B! ALL accetta solo tabelle del modello, ovvero quelle di partenza (Sales, Product, Customer); non accetta quelle provenienti da un’elaborazione, es. quelle fatte con FILTER.