Capitolo 2 PowerPivot in azione Andiamo ora a introdurre alcune delle caratteristiche più interessanti di Microsoft PowerPivot per Excel 2010. L’obiettivo di questo capitolo è mostrare le funzionalità di PowerPivot più frequentemente utilizzate per trasformare una semplice cartella di lavoro Excel in un report complesso che vi aiuta a eseguire l’analisi sui dati. Non è ancora il momento di affrontare argomenti più avanzati, come il linguaggio di programmazione DAX o relazioni complesse. Nondimeno, dopo aver letto questo capitolo, sarete in grado di eseguire analisi complesse su un database relazionale e, auspichiamo, avvertire comunque la necessità di procedere nella lettura per scoprire gli utilizzi più avanzati di PowerPivot. Da notare che talvolta ci riferiamo all’utente finale o all’esperienza utente come se la vostra cartella di lavoro PowerPivot potesse essere utilizzata da qualcun altro. Per creare un report ben fatto, è sempre necessario pensare in questo modo. Anche se siete il solo utente di uno specifico report, un report chiaro è più facile da leggere e da aggiornare, anche dopo che è trascorso del tempo da quando è stato creato. Utilizzo della tabella pivot per produrre report Partiamo con un report molto semplice, basato sulle stesse tre tabelle caricate nel precedente capitolo: Sales Order Header, Sales Order Detail e Product. Se si crea una tabella pivot con PowerPivot e si inseriscono OnlineOrderFlag e SizeUnitMeasureCode sul pannello Filtro rapporto, Size su Etichette di colonna, Color su Etichette di riga e OrderQty come valore da riassumere, ci si ritrova con il report mostrato nella Figura 2-1, reperibile nella cartella di lavoro denominata CH02-01-FirstSample.xlsx nel materiale allegato al libro. FIGURA 2-1 Un semplice report che utilizza PowerPivot. 17 18 Microsoft PowerPivot per Excel 2010 Prima di analizzare funzionalità più avanzate, ricordiamo brevemente cosa stiamo facendo: Q OnLineOrderFlag, proveniente dalla tabella SalesOrderHeader, è un valore TRUE/FALSE. PowerPivot ha individuato solo due possibili valori per esso, pertanto è stato in grado di popolare la casella combinata del filtro con i valori True e False. Avendo scelto True, vengono selezionati solo gli ordini effettuati online. Q Lo stesso processo è avvenuto per SizeUnitMeasureCode, stavolta proveniente dalla tabella Product, che può contenere solo due valori distinti (vuoto e CM). Abbiamo selezionato CM come unità di misura per la dimensione. Q Posizionando Color sulle righe, Size sulle colonne, e infine OrderQty come valore, PowerPivot ha analizzato tutte le righe contenenti il valore (che è OrderQty, contenuto nella tabella SalesOrderDetail). Poi ha seguito la relazione tra Order Detail e Products e ha escluso tutte le righe di dettaglio che non soddisfano la condizione filtro. Nel contempo, ha rimosso tutte le righe che non soddisfano la condizione sulla tabella OrderHeader, che contiene OnlineOrderFlag. Q Avendo individuato l’insieme delle righe che si intende analizzare, PowerPivot ha seguito la relazione tra SalesOrderDetail e Product per scoprire il colore e la dimensione di ciascun prodotto venduto, ha totalizzato le quantità, e ha visualizzato la tabella pivot finale. Non preoccupatevi se il processo qui descritto non è perfettamente chiaro: diventerà più facile da comprendere procedendo nella lettura, grazie ai molti esempi che andremo a fornire. Ma ricordate un punto importante: la presenza delle relazioni è essenziale perché PowerPivot rilevi l’insieme delle righe di cui deve tener conto dalle tabelle sorgenti. Importante Si può capire facilmente perché le relazioni rappresentano un concetto importante in PowerPivot se si ricorda questa importante differenza tra PowerPivot e la classica tabella pivot di Excel: lo strumento più vecchio analizza una solo tabella e perciò non deve metterla in relazione con altro; l’analisi viene eseguita su un singolo oggetto. Per contro, PowerPivot può analizzare più di una tabella per volta, ma per farlo deve mettere in relazione le tabelle per produrre risultati utili. Nei prossimi capitoli, dedichiamo diverse pagine all’analisi di differenti tipi di relazioni e a come padroneggiarle. Ciò nonostante, prima di tuffarci in analisi complesse, andiamo a risolvere alcuni problemi marginali in questo report d’esempio per renderlo più gradevole e ne approfittiamo per fornire una introduzione fluida a tutte le funzionalità di PowerPivot. Capitolo 2 PowerPivot in azione 19 Formattazione di numeri Anche se il report mostrato nella Figura 2-1 contiene informazioni interessanti, ha un problema: è privo di un formato per i numeri. Nei fogli di calcolo Excel, la formattazione dei numeri è una delle funzioni del foglio di calcolo stesso. Pertanto, per formattare opportunamente i numeri, si seleziona l’area dati del report e si sceglie una opportuna formattazione. Se si segue questa procedura in una tabella pivot, il risultato iniziale non è molto attraente, come si può vedere nella Figura 2-2. FIGURA 2-2 Errata visualizzazione dei numeri se le stringhe di formato vengono applicate alla tabella pivot. Siccome avete applicato la formattazione dopo aver creato la tabella pivot, nessuna delle colonne era larga a sufficienza per ospitare la nuova rappresentazione dei numeri, che ora contiene i punti e le virgole, avendo come risultato colonne più larghe. Si può risolvere ciò facilmente ridimensionando tutte le colonne. Nondimeno, se si decide di modificare la misura visualizzata e se ne usa una differente (ad esempio, ListPrice), probabilmente è necessario un formato differente e differenti dimensioni delle colonne, e probabilmente dovrete ridimensionare l’intero foglio di calcolo. La procedura corretta da seguire è utilizzare le impostazioni del campo della tabella pivot per definire un formato numerico per la colonna OrderQty. Per farlo, si effettua un clic destro all’interno di una cella contenente il valore OrderQty e, dal menu, si sceglie “Impostazioni campo valore”, come si può vedere nella Figura 2-3. FIGURA 2-3 Il menu “Impostazioni campo valore”. Questa opzione apre la finestra di dialogo “Impostazioni campo valore”, mostrata nella Figura 2-4, che contiene molte opzioni. Per ora, siamo interessati solo al formato numerico, visualizzabile cliccando il pulsante “Formato numero”. 20 Microsoft PowerPivot per Excel 2010 FIGURA 2-4 La finestra di dialogo “Impostazioni campo valore”. La finestra di dialogo “Formato celle” (si veda la Figura 2-5) permette di scegliere un formato numerico per la colonna di questa tabella pivot. FIGURA 2-5 La finestra di dialogo “Formato celle”. Quando si sceglie il formato numerico desiderato (in questo caso, abbiamo selezionato un formato numerico con un separatore delle migliaia e nessuna cifra decimale), la tabella pivot ridimensiona automaticamente tutte le colonne, come si può vedere nella Figura 2-6. Capitolo 2 PowerPivot in azione 21 FIGURA 2-6 La tabella pivot correttamente ridimensionata. Questa procedura applica la formattazione numerica solo alla tabella pivot corrente. Se la stessa colonna viene utilizzata da qualche altra parte in altre tabelle pivot, la scelta effettuata in questa tabella pivot non avrà alcuna influenza. Da notare che, se si cambia la misura mostrata, si deve ripetere la procedura per determinare il formato numerico della nuova colonna utilizzata. Nascondere o rimuovere colonne inutili Nel processo di rendere il report più chiaro, possiamo ora concentrarci su un ulteriore piccolo problema: “Elenco di campi di PowerPivot” (si veda la Figura 2-7), dal quale si scelgono i valori da inserire nelle righe e nelle colonne, mostra tutte le colonne di tutte le tabelle PowerPivot. Ci si trova davanti a un numeroso insieme di colonne, molte delle quali non realmente utili. FIGURA 2-7 Il selettore dei campi. 22 Microsoft PowerPivot per Excel 2010 Benché sia certamente utile poter vedere tutto durante il processo di esplorazione dei dati, diverse colonne ci distraggono piuttosto che aiutarci. Vediamo due esempi: Q La colonna SalesOrderID in SalesOrderDetail è molto utile poiché esprime la relazione tra SalesOrderDetail e SalesOrderHeader. Nondimeno, per scopi di reporting selezionarla non produce alcun risultato utile. Ci riferiamo a questo tipo di colonna come a una colonna tecnica: cioè, una colonna obbligatoria perché funzioni il modello dei dati ma che non ha affatto alcun significato per i report. Q Le colonne rowguid e ModifiedDate, della tabella SalesOrderDetail, sono colonne utilizzate dal sistema sorgente che gestisce il database, ma non contengono alcuna informazione utile, sia dal punto di vista tecnico sia per il reporting. Ci riferiamo a queste colonne come colonne inutili perché si possono rimuovere facilmente senza condizionare il modello dei dati. Nota Da notare che le colonne inutili non sono semplicemente colonne che si ritiene siano di nessun utilizzo nel report corrente. Colonne come SpecialOfferID, che è una colonna tecnica, contengono informazioni interessanti che sembrano non essere utili in un certo momento. Se si prevede di utilizzare la stessa sorgente per molti report, è necessario pensarci bene prima di etichettare una colonna come inutile e quindi eliminarla. Ma anche se si rimuove una colonna dalla tabella PowerPivot, si può sempre ricaricarla in seguito modificando le proprietà della tabella. Per rendere migliore l’esperienza utente, si dovranno nascondere le colonne tecniche e rimuovere quelle inutili in modo che i nomi mostrati nel selettore del campo si riferiscano solo a colonne utilizzabili nel report per fornire risultati utili. Quando si rimuove una colonna da una tabella, questa colonna viene fisicamente eliminata dal modello dei dati di PowerPivot, non è più disponibile per alcuna operazione, e riduce la quantità di memoria e lo spazio su disco occupato dalla tabella. Invece, quando si nasconde una colonna, questa esiste ancora nel modello dei dati di PowerPivot, benché l’utente non possa selezionarla in un report. È ora chiaro perché scegliamo di nascondere le colonne tecniche (se le rimuovessimo, non saremmo in grado, ad esempio, di utilizzarle per la relazione) e rimuovere quelle inutili. Per svolgere questo compito, si può aprire dalla finestra PowerPivot la finestra di dialogo “Nascondi e scopri colonne”, visibile nella Figura 2-8, tramite il pulsante “Nascondi e scopri” del gruppo Colonne presente nella scheda Struttura. Da qui, si può scegliere di nascondere o mostrare qualsiasi colonna della tabella. Se si sceglie di nascondere una colonna in PowerPivot, questa non appare nelle tabelle PowerPivot ma è comunque disponibile in “Elenco campi di PowerPivot”. Questa decisione potrebbe aiutarvi a ottenere una visualizzazione più chiara dei dati mentre si scorre la finestra PowerPivot. Per contro, non siamo interessati a nascondere le colonne dalla finestra PowerPivot perché vogliamo scorrere tutti i dati. Nascondiamo le colonne solo nell’Elenco campi di PowerPivot. Capitolo 2 PowerPivot in azione 23 FIGURA 2-8 Nascondere e mostrare le colonne. Nota Come si sarà notato, non c’è alcuna opzione che permette di nascondere un’intera tabella. Elenco campi di PowerPivot nasconde una tabella se tutte le relative colonne sono nascoste nella tabella pivot. Anche se nascondere una tabella potrebbe sembrare inutile a questo punto, in seguito si scopriranno diversi modelli di dati che contengono non solo colonne tecniche ma anche tabelle tecniche. Per questi modelli, l’opzione per nascondere completamente una tabella è utile perché permette di nascondere la complessità del modello mentre si consultano i dati. Dopo aver nascosto le colonne tecniche, è comunque necessario eliminare quelle inutili, che sono, nel nostro esempio, le due colonne rowguid e ModifiedDate. Per farlo, è necessario selezionare la colonna nella finestra PowerPivot e cliccare il pulsante Elimina della scheda Progettazione della barra multifunzione. Dopo averlo premuto, appare una finestra con un messaggio di conferma, come quella nella Figura 2-9. FIGURA 2-9 Quando si eliminano le colonne, PowerPivot genera una finestra di messaggio. 24 Microsoft PowerPivot per Excel 2010 Quando si elimina una colonna, questa non è più disponibile per qualsiasi attività all’interno di PowerPivot. Si può comunque riaggiungerla in seguito, se si modificano le proprietà della tabella, ma ciò richiede di ricaricare la tabella, il che, per tabelle grandi, potrebbe essere un processo lento. Si dovrà considerare l’attività di nascondere e eliminare le colonne tecniche e inutili come una modifica sia cosmetica sia operativa della funzionalità di PowerPivot. È qualcosa che ha un impatto molto positivo sull’usabilità di PowerPivot, perché meno colonne sono disponibili per la selezione. Per di più, la dimensione del file Excel viene ridotta dalla rimozione di dati inutili dalle tabelle, accelerando tutte le operazioni. Dopo la rimozione di queste colonne, il selettore dei campi, mostrato nella Figura 2-10, è meno caotico e più chiaro. FIGURA 2-10 Il selettore dei campi con meno colonne. Aggiunta di colonne calcolate Ora che abbiamo nascosto o eliminato le colonne indesiderate, si può continuare il lavoro di rendere il report più facile da utilizzare e da leggere. Si potrebbe osservare che ci sono alcuni campi che hanno un significato tecnico e che non sono facili da comprendere a prima vista. OnlineOrderFlag, ad esempio, è uno di questi. OnlineOrderFlag è un valore TRUE/FALSE e, anche se è abbastanza comprensibile di per sé, non sembra molto elegante se utilizzato nei report. Date un’occhiata, ad esempio, al report nella Figura 2-11, dove abbiamo semplicemente rimosso OnlineOrderFlag dal filtro del report e lo abbiamo aggiunto alle righe. Capitolo 2 PowerPivot in azione FIGURA 2-11 I valori True e False sono difficili da decodificare senza una descrizione. Ponetevi questa domanda: che significano le etichette False e True nel report? Si può assegnare un significato a False solo se si ricorda che il relativo valore proviene da OnlineOrderFlag ma, nel report di per sé, non c’è alcuna chiara prova del fatto che il valore True significhi L’ordine è stato effettuato online. Chiaramente, disporre di una descrizione differente e più comprensibile migliorerebbe notevolmente la leggibilità del report. Nota Da notare che OnlineOrderFlag non è una colonna tecnica. La sua descrizione è criptica, ma vogliamo certamente sezionare i dati utilizzando questa colonna. Pertanto non andremo a nascondere affatto la colonna. Invece, forniremo per essa una migliore descrizione in modo che il significato del campo sia più chiaro. Pertanto andremo a descrivere alcune tecniche standard per mostrare la dicitura ONLINE ORDER quando il valore della colonna è True e INTERNAL ORDER quando il valore è False. Per poter eseguire questo compito, si hanno due possibilità di scelta: Q Si può aggiungere una nuova colonna calcolata alla tabella OrderDetails, assegnandole un valore descrittivo per OnlineOrderFlag. Si può quindi nascondere la colonna TRUE/FALSE e fornire solo la nuova colonna per il filtraggio e il sezionamento dei dati. Q Si può aggiungere una nuova tabella al modello dei dati, che ha una colonna TRUE/FALSE come chiave e una ulteriore colonna che contiene la descrizione. Poi si può creare una relazione tra OrderDetails e questa nuova tabella per permettere a PowerPivot di sezionare i dati originali con questa nuova tabella. Entrambe queste operazioni hanno avere a che fare con un argomento molto più ampio: il modellamento dei dati. Siccome sono entrambe soluzioni interessanti e istruttive, le descriveremo entrambe, in primis per avere un’idea di ciò che è un modello dati e anche per capire come un buon modello dati può influenzare l’esperienza utente. Tratteremo i modelli dei dati in modo completo nel Capitolo 4, “Modelli dei dati”. Nondimeno, questa prima occhiata ora è utile per la comprensione dei modelli dei dati. 25 26 Microsoft PowerPivot per Excel 2010 La prima opzione è quella più facile. Per aggiungere una colonna alla tabella SalesOrderHeader, è necessario fornire un nome e un’espressione in modo che PowerPivot sappia come selezionare questa colonna e come calcolarne i valori. Per aggiungere una nuova colonna è necessario selezionare il pulsante Aggiungi del gruppo Colonne dalla scheda Progettazione della barra multifunzione di PowerPivot, come si può vedere nella Figura 2-12. Questa operazione sposta il cursore alla fine della tabella corrente e lo posiziona all’interno dell’editor delle formule. FIGURA 2-12 Il pulsante Aggiungi crea una nuova colonna calcolata. Ora si può scrivere la formula per la nuova colonna nella barra delle formule di PowerPivot. La barra delle formule è molto simile alla barra delle formule di Excel. Tuttavia, le formule in PowerPivot sono molto differenti dalle formule di Excel. PowerPivot non utilizza il linguaggio delle formule di Excel. Invece, utilizza un nuovo linguaggio denominato DAX, che introduciamo nel Capitolo 3, “Introduzione a DAX”. Ma per questo semplice esempio possiamo ignorare la complessità di DAX e inserire una semplice formula, che è comprensibile di per sé (per di più, appare simile a una formula Excel) ed è mostrata nella Figura 2-13. FIGURA 2-13 La formula per la nuova colonna, mostrata nella barra delle formule. Questo codice utilizza la funzione IF di DAX, che appare e funziona come la funzione IF di Excel. Se il valore del primo parametro vale True, la funzione restituisce il secondo parametro; altrimenti, restituisce il terzo. In altri termini, se OnlineOrderFlag è True, la formula restituisce ONLINE ORDER; altrimenti, il valore attribuito è INTERNAL ORDER. La colonna appena aggiunta è stata denominata da PowerPivot CalculatedColumn1, che non è realmente mnemonico. Per rinominare la colonna, è sufficiente selezionarla, premere il tasto destro del mouse sul nome della colonna, e scegliere “Rinomina colonna” dal menu, come si può vedere nella Figura 2-14. Si può scegliere, ad esempio, di denominarla OrderType. Capitolo 2 PowerPivot in azione 27 FIGURA 2-14 L’opzione “Rinomina colonna” del menu della colonna, disponibile con un clic destro. Nella Figura 2-15, si può vedere il risultato finale, che mostra sia la nuova colonna sia la barra delle formule della colonna calcolata. FIGURA 2-15 La barra delle formule con la colonna calcolata. Ora che abbiamo una buona descrizione del tipo di ordine, si può nascondere con sicurezza la colonna OnlineOrderFlag, che ora è diventata una colonna tecnica. (Contiene un valore necessario per calcolare la descrizione, ma si vogliono esaminare e sezionare i dati utilizzando la descrizione definita nella nuova colonna Order Type e non il valore originale). Fatto ciò, si può utilizzare il nuovo campo OrderType in una tabella pivot, e il risultato appare come nella Figura 2-16. 28 Microsoft PowerPivot per Excel 2010 FIGURA 2-16 Report d’esempio con OnlineOrderFlag decodificato. Si può vedere che nessun valore è cambiato ma il report ora è più facile da comprendere perché si ha una chiara conoscenza del significato delle righe. In altri termini, i valori ora sono autoesplicativi, pertanto il report è più facile da utilizzare. Importante Ogni volta che si crea una cartella di lavoro PowerPivot, è necessario ricordare che le descrizioni di testo delle colonne sono sempre molto più facili da comprendere in confronto al codice sottostante. È una pessima idea utilizzare il codice all’interno delle tabelle pivot perché ciò rende la tabella pivot finale più difficile da utilizzare. Dopo aver eliminato le colonne tecniche inutili e nascoste, normalmente è necessario decodificare alcune colonne e creare le nuove con descrizioni migliori. Poi è necessario nascondere le colonne originali per permettere agli utenti di scegliere solo tra le colonne autodescrittive. A questo punto non vogliamo investigare ulteriormente come definire colonne più complesse perché questa prima tecnica è banale. Preferiamo investire del tempo per mostrare una soluzione differente allo stesso problema, che consiste nel creare una nuova tabella correlata. Questa seconda tecnica è interessante da studiare perché, nel svilupparla, si andrà a modificare il modello dei dati, qualcosa che si dovrà apprendere quanto prima possibile. Nel database non vi è alcuna tabella che fornisce una descrizione per OnlineOrderFlag, pertanto è necessario creare un foglio di calcolo Excel che contiene la tabella e poi mettere a conoscenza PowerPivot di queste nuove informazioni. Per creare la tabella, basta digitare le informazioni in un foglio di calcolo Excel (si veda la Figura 2-17) e poi, dopo aver selezionato le sei celle, scegliere “Formatta come tabella” dalla scheda Home della barra multifunzione di Excel. L’esempio è presente nella cartella di lavoro CH02-02-Related.xlsx del contenuto associato al libro. FIGURA 2-17 Tabella di decodifica per OnlineOrderFlag. Capitolo 2 PowerPivot in azione 29 Ora che si ha una tabella Excel, tutto ciò che serve fare è mettere al corrente PowerPivot dell’esistenza di questa tabella. Dalla scheda PowerPivot della barra multifunzione di Excel, scegliere il pulsante “Crea tabella collegata” con il cursore all’interno della tabella (si veda la Figura 2-18). Da notare che, se il cursore non si trova nella tabella, è necessario fornire manualmente i limiti della tabella, un compito tedioso che PowerPivot svolge automaticamente se il cursore è all’interno della tabella. FIGURA 2-18 Il comando “Crea tabella collegata” importa una tabella Excel all’interno di PowerPivot. Questa operazione apre la finestra PowerPivot nella quale si può vedere la propria tabella Excel esattamente come se fosse una tabella importata standard. L’unica differenza è nella piccola catena davanti al nome, ad indicare che si tratta di una tabella Excel collegata e non importata. La tabella può essere rinominata con un nome più appropriato se necessario: ad esempio, si può rinominarla SalesOrderHeader_OnlineOrderFlag. Si può vedere ciò nella Figura 2-19. FIGURA 2-19 La tabella di decodifica importata in PowerPivot. Forse la potenza di ciò che stiamo facendo non è immediatamente evidente, pertanto vale la pena spendere qualche parola a tal riguardo. Stiamo mescolando, nello stesso modello PowerPivot, tabelle provenienti da un database SQL con una tabella ad-hoc creata in Excel per soddisfare le nostre necessità. In altri termini, stiamo estendendo il modello esistente con nostre informazioni personali. Questo semplice fatto ci aiuta a costruire modelli di dati complessi e interessanti. 30 Microsoft PowerPivot per Excel 2010 L’unica cosa che manca è una relazione tra SalesOrderHeader e questa nuova tabella. Per creare la relazione, è necessario andare nella tabella SalesOrderHeader, scegliere la colonna OnlineOrderFlag, e cliccare il pulsante “Crea relazione” della scheda Struttura della barra multifunzione. Questa azione apre una finestra di dialogo nella quale si descrive la relazione. La finestra dovrà apparire come nella Figura 2-20. FIGURA 2-20 Definizione della relazione con la tabella di decodifica in PowerPivot. Nella Figure 2-20, si sta indicando che OnlineOrderFlag della tabella SalesOrderHeader è in relazione con la colonna OnlineOrderFlag della tabella SalesOrderHeader_OnlineOrderFlag. Siccome le colonne correlate hanno lo stesso tipo (in questo caso un valore TRUE/FALSE), la relazione può essere creata. Cliccare “Crea” è sufficiente per far sì che PowerPivot analizzi i dati e crei la relazione. Tabelle di lookup Questo tipo di tabella, che contiene le chiavi e i relativi valori descrittivi, normalmente viene chiamata tabella di lookup (ossia, tabella di ricerca) perché permette di fornire un nome a un codice ricercando il codice nella tabella. Le tabelle di lookup sono molto simili alle funzioni VLOOKUP/HLOOKUP di Excel (in Excel italiano CERCA.VERT/CERCA.ORIZZ). Se, in un foglio di calcolo Excel standard, vogliamo fornire una descrizione a un particolare codice, potremmo utilizzare una funzione CERCA in una cella che fa riferimento a un’area di decodifica. Le relazioni di lookup operano in modo pressoché analogo anche se, con PowerPivot, utilizziamo le relazioni per creare modelli molto più complessi. Ora che abbiamo portato a termine la creazione di una tabella collegata e abbiamo definito la relazione con questa nuova tabella, è tempo di tornare alla tabella pivot e cliccare il pulsante Aggiorna per vedere cosa è cambiato (si veda la Figura 2-21). Capitolo 2 PowerPivot in azione 31 FIGURA 2-21 La nuova tabella di decodifica nel selettore di PowerPivot. All’interno di “Elenco campi PowerPivot” ora si vede una nuova tabella, denominata SalesOrderHeader_OnlineOrderFlag, con due colonne (una delle quali è una colonna tecnica che dovrete nascondere in seguito). La colonna Order Type in questa nuova tabella svolge lo stesso compito che veniva svolto da Order Type nella tabella SalesOrderHeader. La differenza è che ora è molto più facile modificare le descrizioni perché non sono cablate in una formula DAX ma contenute in una tabella ospitata all’interno della cartella di lavoro Excel. Ciò significa che modificare le descrizioni è ora un compito semplice per chiunque, e non vi è più alcuna necessità di conoscere il significato del codice. Fermiamoci qualche secondo e consideriamo ciò che è stato fatto. Q Siete stati in grado di mescolare differenti sorgenti di dati in un’unica vista coerente delle informazioni, plasmando il modello dei dati per adattarlo alle vostre necessità. Q Avete fornito ai vostri utenti (e a voi stessi) un modo facile per fornire descrizioni di valori tecnici, rendendo più intuitivo il processo di consultazione della tabella pivot e della produzione dei report. Q Avete creato il vostro primo pezzo di un modello dei dati: cioè, un modello che descrive le entità che intendete esaminare. L’unico svantaggio di questa soluzione è che, se molti campi richiedono una tabella di lookup, il selettore dei campi della tabella pivot potrebbe diventare un po’ disordinato perché iniziano ad apparire troppe tabelle al suo interno. Fortunatamente, c’è una semplice soluzione a questo problema: in DAX si può utilizzare la funzione RELATED, come andrete ad apprendere più avanti in questo capitolo. 32 Microsoft PowerPivot per Excel 2010 Aggiunta delle misure Anche se potete eseguire molti calcoli interessanti lavorando a livello di righe delle tabelle, alcuni calcoli non possono essere definiti a questo livello perché dipendono dal contesto di interrogazione. (In altri termini, dipendono dalla selezione effettuata dall’utente nella tabella pivot). Esplorerete molti di questi calcoli in seguito in questo libro (nei Capitoli 3, 6, 7 e 8), e per farlo, è necessario apprendere il linguaggio DAX. Ma subito vogliamo mostrarvi un semplice esempio delle differenze tra una colonna calcolata e una misura in PowerPivot. Investigheremo anche brevemente perché le misure sono talvolta necessarie. Andrete a implementare una colonna che calcola il conteggio distinto dei prodotti venduti. Un conteggio distinto calcola il numero dei valori distinti di una specifica colonna ed è molto utile, ad esempio, per clienti o prodotti che appaiono diverse volte in una tabella, come in SalesOrderDetails. Questa formula non può essere calcolata a livello di riga perché, per ciascuna vendita, il relativo valore è 1 (un prodotto venduto) mentre, per più vendite, il relativo valore non è la somma di tutti i valori a livello di riga. Invece, deve essere calcolato in base alla selezione dell’utente. Questi tipi di calcolo non possono essere definiti a livello di riga, pertanto vengono chiamati misure e devono essere definiti a livello di tabella pivot. Per creare una nuova misura, dobbiamo premere il tasto destro del mouse in Elenco campi di PowerPivot e scegliere “Aggiungi nuova misura” come nella Figura 2-22. Questo esempio è disponibile nel file CH02-03-Measures.xlsx del materiale associato al libro. FIGURA 2-22 Il menu di contesto con cui si aggiunge una nuova misura al modello PowerPivot alla base della tabella pivot. A questo punto, appare una nuova finestra di dialogo (si veda la Figura 2-23) in cui è necessario fornire le proprietà della nuova misura. Digitate un nome per la nuova misura, ad esempio DistinctProducts, e poi dovete scrivere la formula DAX che calcola il valore. Capitolo 2 PowerPivot in azione 33 FIGURA 2-23 La finestra di dialogo in cui si aggiunge una nuova misura al modello PowerPivot. Benché sia facile da leggere, la formula DAX nasconde in effetti molto della potenza di DAX. Non siamo interessati a comprendere ora i dettagli di come funziona. Andiamo giusto a dare un’occhiata alla formula: COUNTROWS (DISTINCT (SalesOrderDetail[ProductID])) La formula può essere letta come “conta il numero di righe presenti in una tabella contenenti solo i valori distinti della colonna ProductID della tabella SalesOrderDetail”. Per calcolare il valore di questa misura, PowerPivot effettua il calcolo nel contesto definito dalla query della tabella pivot e fornisce il corretto conteggio distinto dei prodotti per ciascuna cella della tabella pivot. Ad esempio, si può produrre un report interessante come quello nella Figura 2-24, che calcola il numero dei prodotti distinti venduti, suddividendo i dati per colore. FIGURA 2-24 Query dei prodotti distinti. 34 Microsoft PowerPivot per Excel 2010 Come si può vedere, per ciascuna cella vi è un calcolo del numero di prodotti univoci venduti. Per di più, va detto che l’aggregazione del conteggio distinto non è la somma. Se si osserva, ad esempio, la riga per il colore giallo, abbiamo venduto 33 prodotti distinti con ordini interni e 22 online, ma il totale generale dei prodotti distinti è 34. In altri termini, dei 34 prodotti gialli venduti, 22 sono stati venduti online, 33 sono stati venduti direttamente, e uno solo è stato venduto online e non direttamente, dando così come totale generale 34. A prima vista ciò potrebbe disorientare, ma è effettivamente il comportamento corretto da aspettarsi quando si utilizzano i conteggi distinti. Dal punto di vista della tabella pivot, misure e colonne appaiono molto simili anche se, per ciò che riguarda il motore interno di PowerPivot, sono elementi completamente differenti. A partire dal Capitolo 3, inizierete ad apprendere il linguaggio DAX e l’esatta differenza tra colonne calcolate e misure. Aggiunta di ulteriori tabelle Tutti i report mostrati finora si basavano su tre tabelle solamente, e già hanno mostrato dei dati interessanti. Tuttavia, il database AdventureWorks contiene molte altre tabelle che si possono aggiungere al modello dati di PowerPivot per migliorare i report. Si sarà notato, ad esempio, che la tabella Products contiene una colonna ProductSubcategoryID. Questa colonna è una chiave per la tabella ProductSubcategory, che non abbiamo ancora caricato. Risulta, a sua volta, che la tabella ProductSubcategory contiene una chiave, di nome ProductCategoryID, che si riferisce alla tabella ProductCategory. Questa catena di relazioni ci permette di recuperare la categoria del prodotto, per mezzo di un cammino a due passi, da un prodotto alla sua sottocategoria e dalla sottocategoria alla relativa categoria. Graficamente, la relazione può essere vista nella Figura 2-25. FIGURA 2-25 La relazione concatenata (o in cascata) tra tre tabelle. Capitolo 2 PowerPivot in azione 35 Questi tipi di relazioni, che appaiono molto spesso nel mondo dei database, sono dette relazioni concatenate perché formano una catena che si può seguire dall’inizio alla fine per mettere in relazione più tabelle. Nota Da notare un curioso fenomeno che appare spesso nel mondo dei database. Anche se prevediamo di suddividere i dati prima per categoria, poi per sottocategoria, e infine per prodotti, seguendo un percorso molto naturale, in realtà la catena delle relazioni è invertita, partendo dalla tabella più di dettaglio e andando in quella meno di dettaglio. Questo è assolutamente normale: riguarda come vengono modellati i dati nei database relazionali. In tutto il libro scopriremo molte altre relazioni che devono essere lette in questo modo inverso. Per far sì che PowerPivot vi permetta di suddividere i dati con le colonne di queste nuove tabelle, è necessario importarle nel proprio modello dei dati. Per farlo, è sufficiente ripetere il processo di caricamento che si è visto prima per importare le prime tre tabelle. Stavolta, invece di utilizzare il pulsante “Da database”, si dovrà utilizzare il pulsante “Connessioni esistenti”, che è situato nella scheda Struttura della barra multifunzione di PowerPivot, come si può vedere nella Figura 2-26. Si può fare questo perché la connessione al database è stata già salvata all’interno della cartella di lavoro Excel e si può ora utilizzarla per importare tutte le tabelle utili senza dover creare una nuova connessione. Questo esempio è disponibile, con le tabelle già caricate, nella cartella di lavoro CH02-04-NewTables.xlsx. FIGURA 2-26 Il pulsante “Connessioni esistenti” apre una connessione a un database precedentemente utilizzato. Già sapete che durante il processo di caricamento PowerPivot rileva la relazione tra Subcategory e Category. Per di più, sapete anche di dover nascondere le colonne tecniche (ProductSubcategoryID, ProductCategoryID) e rimuovere quelle inutili (rowguid e UpdatedDate in entrambe le tabelle) per creare un modello dei dati lineare. Ora, se si prova ad aggiungere Category o Subcategory alla tabella pivot, PowerPivot rileva la necessità delle nuove relazioni e, quando gli viene richiesto, rileva automaticamente la relazione tra SubcategoryID della tabella Products e la colonna omonima di ProductSubcategory. 36 Microsoft PowerPivot per Excel 2010 Nota Ci si potrebbe chiedere perché PowerPivot è così bravo nel ricercare le relazio- ni durante il caricamento delle tabelle mentre non ha rilevato la relazione tra Product e ProductSubcategory, anche se questa relazione è già memorizzata nei metadati del database. Il motivo è che, durante il caricamento dei dati, PowerPivot ricerca le relazioni tra le tabelle che sta attualmente caricando, ignorando le tabelle che sono già presenti nel modello dei dati PowerPivot. Queste altre relazioni (tra tabelle esistenti e tabelle nuove) deve essere rilevata in seguito, attraverso l’algoritmo di rilevazione delle relazioni. Ora che si è potenziato il modello dati di PowerPivot con queste due tabelle, si possono produrre facilmente report complessi come quello mostrato nella Figura 2-27, nel quale mescoliamo colonne da prodotti, categorie, sottocategorie e ordini, permettendo a PowerPivot di risolvere le relazioni complesse che rendono possibile il processo di consultazione. FIGURA 2-27 Report d’esempio con categorie e sottocategorie. Il report, come appare ora, è abbastanza ben fatto. Tuttavia, siccome state certamente ricercando la perfezione, si notano due piccoli problemi: Q Entrambe le tabelle (ProductCategory e ProductSubcategory) hanno la stessa descrizione del nome della colonna, come si può vedere nell’elenco “Etichette di riga” nella Figura 2-27. Ciò non è molto agevole perché è difficile comprendere se avete inserito correttamente la sottocategoria sotto la categoria o viceversa (a parte, chiaramente, la regola del buon senso non appena vedete dei dati errati). Q ProductCategory e ProductSubcategory sono separate dalla tabella Products, anche se sono strettamente correlate ai prodotti. In una piccola tabella pivot come questa, non è un grosso problema. Tuttavia, man mano che il modello dei dati diventa più grande, si dovrà provare a ridurre il più possibile il numero di tabelle mostrate all’utente, per rendere più facile individuare le colonne. Una regola pratica del mondo della Business Intelligence impone che non si dovranno mai scorrere più di 15 tabelle differenti. Se permettete alle tabelle di diffondersi a un tasso di una tabella per lookup, raggiungerete questo limite molto rapidamente. Capitolo 2 PowerPivot in azione 37 Benché la soluzione del primo punto sia banale (è sufficiente modificare il nome delle colonne visualizzate da PowerPivot nella finestra PowerPivot), il secondo è molto più interessante perché ci permette di introdurre una formula DAX molto semplice ma potente: RELATED. Andrete ora rimuovere le tabelle ProductCategory e ProductSubcategory dall’elenco dei campi dell’editor della tabella pivot, sostituendole con due nuove colonne della tabella Product, denominate Category e Subcategory. Per di più, così facendo, risolverete entrambi i punti evidenziati prima. Il problema che dovete affrontare è che la tabella Product originale non contiene la descrizione testuale della categoria o della sottocategoria, ma contiene solo ProductSubcategoryID, che è una colonna tecnica utilizzata per creare la relazione con la tabella ProductSubcategory. È sicuramente necessario un modo per creare una colonna calcolata in una tabella che contiene il valore di una colonna in una ulteriore tabella seguendo una relazione. Questo è esattamente il motivo per cui è stata concepita la funzione RELATED. La funzione RELATED restituisce il valore di una colonna da una ulteriore tabella se ha una relazione valida con la tabella corrente. Utilizzando queste formule si possono definire due nuove colonne all’interno della tabella Product, come è mostrato nella Tabella 2-1. TABELLA 2-1 Utilizzo della funzione RELATED. Colonna Formula SubCategory =RELATED (ProductSubcategory[Name]) Category =RELATED (ProductCategory[Name]) La colonna calcolata SubCategory contiene il valore della colonna Name della tabella ProductSubcategory, mentre la colonna calcolata Category contiene il nome della categoria, estratto dalla tabella ProductCategory. Nota Non dobbiamo preoccuparci del fatto che la relazione tra Products e ProductCategory sia una relazione concatenata, il che la rende necessaria perché PowerPivot segua i due passi di relazione per raccogliere il valore corretto della categoria. PowerPivot già sa dell’esistenza delle relazioni concatenate e gestisce questa complessità di per sé. Questa semplice definizione porta a una esperienza utente molto migliore perché ora si vedono due nuove colonne all’interno della tabella Products che contiene il valore della categoria e della sottocategoria. Pertanto si possono nascondere con sicurezza tutte le colonne delle tabelle di lookup (che, a loro volta, fanno scomparire entrambe le tabelle dall’elenco dei campi). Il report appare come quello nella Figura 2-28. 38 Microsoft PowerPivot per Excel 2010 FIGURA 2-28 Report d’esempio con categorie e sottocategorie collegate al prodotto. Benché questo possa sembrare un semplice miglioramento, è invece molto importante perché ci permette di introdurre il concetto di modellazione dei dati, al quale andremo a dedicare l’intero Capitolo 4. L’utente interroga il modello dei dati, e più questo è semplice, migliore sarà la sua esperienza. Una delle abilità più complesse di un modellatore di dati è creare modelli che, anche se complessi nella loro implementazione, appaiono molto facili all’utente finale. Nota Anche se il modello dati originale di AdventureWorks ha due tabelle distinte per categoria e sottocategoria (che è la scelta corretta per un sistema database standard), il modello dati è molto più facile da interrogare se si nascondono queste due tabelle e si trasforma il relativo contenuto delle colonne all’interno della tabella Product , che è esattamente ciò che avete fatto. Modificando il modello dati, avete ridotto il numero delle tabelle mostrate all’utente e avete fornito un nome significativo alle colonne. Le due tabelle esistono ancora nel modello dati, ma sono nascoste all’utente, che può avere accesso ai relativi valori attraverso le nuove colonne calcolate. Questa è la prima situazione d’esempio in cui si utilizza un modello dati interno mentre all’utente se ne mostra uno differente. Avrete familiarità con questa tecnica perché la utilizziamo in tutto il libro. Un esercizio interessante, che lasciamo da provare al lettore, è utilizzare la funzione RELATED per rimuovere la tabella tecnica che abbiamo utilizzato precedentemente per fornire una descrizione del flag per l’ordine online. La tecnica è esattamente la stessa utilizzata in questi paragrafi e l’esercizio vi da maggiore confidenza nell’utilizzo della funzione RELATED. Per di più, si dovrà utilizzare la stessa tecnica ogni qualvolta lo scopo di una tabella è fornire valori di lookup e quella tabella non è una parte del modello dati che si vuole mostrare all’utente. Capitolo 2 PowerPivot in azione 39 Lavorare con le date Finora, abbiamo utilizzato colonne che contengono un insieme relativamente piccolo di valori distinti, come il colore o la categoria dei prodotti, per suddividere i dati nella tabella pivot. Quando, invece, una colonna contiene molti valori distinti, la tabella pivot risultante diventa più difficile da utilizzare. Andremo ora a descrivere questo problema in maggior dettaglio e a fornire una soluzione. La tabella SalesOrderHeader contiene una colonna, OrderDate, che riporta la data dell’ordine. I dettagli in questa colonna sono importanti ma, allo scopo della produzione di un report, la colonna contiene troppe informazioni. Se si inseriscono semplicemente i dati OrderDate nelle colonne, ci si ritrova con un report che contiene tutte le informazioni necessarie ma è molto difficile da leggere (si veda la Figura 2-29) a causa dell’alta frammentazione dei valori. In termini tecnici, diciamo che la colonna della data dell’ordine non è un buon aggregatore perché non ci permettere di concentrarci su informazioni interessanti. Un buon aggregatore, invece, raggruppa assieme un enorme numero di elementi distinti delle informazioni, portando a risultati interessanti. Questo esempio è reperibile nella cartella di lavoro CH02-05-WorkingWithDates.xlsx. FIGURA 2-29 Le colonne con date non sono buoni aggregatori; il report è frammentato. Come si può vedere, consultare le informazioni a livello di data produce un report frammentato. Un aggregatore decisamente migliore sarebbe a livello di anno o di mese. Entrambi questi aggregatori riducono notevolmente la frammentazione del report e danno come risultato una migliore comprensione dei dati. PowerPivot può aggregare i dati, ma per farlo, ha bisogno di colonne. Pertanto si devono aggiungere nuove colonne, alla tabella SalesOrderHeader che contiene l’anno e alla tabella che contiene il mese dell’ordine. L’aggregazione di queste colonne produce il risultato voluto. Nota Come si può vedere, stiamo spostando il nostro interesse dal problema del report sparso a quello di aggiungere nuove colonne calcolate, e siccome già sappiamo come aggiungere nuove colonne calcolate, stiamo ora cercando un nostro approccio alla soluzione del problema. Si possono aggiungere due nuove colonne calcolate alla tabella SalesOrderHeader nella finestra PowerPivot, seguendo la procedura già descritte, e utilizzando la Tabella 2-2 per ricavare le formule. 40 Microsoft PowerPivot per Excel 2010 TABELLA 2-2 Utilizzo di funzioni data/ora. Colonna Formula Order Year =YEAR (SalesOrderHeader[OrderDate]) Order Month =MONTH (SalesOrderHeader[OrderDate]) State utilizzando due funzioni DAX: YEAR e MONTH, che, come suggeriscono i nomi, restituiscono l’anno e il mese della data che ricevono come parametro. Ora avete due nuove colonne che vi permettono di suddividere i dati per anno e mese. Potete utilizzare queste colonne per produrre report interessanti, come quello della Figura 2-30, che aggrega a livello di anno. FIGURA 2-30 L’aggregazione per anno produce report più interessanti. O combinando mesi e anni, si può produrre il report mostrato nella Figura 2-31. FIGURA 2-31 Combinazione di anni e mesi nello stesso report. Capitolo 2 PowerPivot in azione 41 Si sarà notato che il report mostra i numeri dei mesi e non i relativi nomi, il che deve certamente essere corretto. Nel Capitolo 7, “Calcoli sulle date in DAX”, dove trattiamo la gestione delle date in maggior dettaglio, si apprende come mostrare i nomi dei mesi. Ciò nonostante, un aiuto più veloce ci viene dato nel Capitolo 3, dove è presente un paragrafo “Funzioni data e ora” con un elenco delle funzioni disponibili per la manipolazione delle date. Nel Capitolo 3 si trova anche una semplice formula per ricavare sia il numero sia il nome di un mese a partire da una data. La tecnica di aggiungere più colonne alla tabella, per produrre aggregati se i dati all’interno della tabella sono troppo dettagliati, viene utilizzata frequentemente con le date. Per di più, le date sono un argomento così importante nell’analisi BI che dedicheremo l’intero Capitolo 7 a questo argomento. Ciò detto, ci sono molte colonne che rappresentano aggregatori non buoni. Ad esempio, nel Capitolo 10, “Pattern di modelli di dati PowerPivot”, si vede un completo sistema di raggruppamento che esegue aggregazioni per fasce di prezzo e, come si apprenderà, la tecnica è simile a quella che abbiamo appena utilizzato: ogni qualvolta una colonna non è un buon aggregatore, è necessario aggiungere nuove colonne che raggruppano più dati in modo che i valori aggregati diventino interessanti. Aggiornamento dei dati Ora che abbiamo scalfito la superficie di alcune delle tante funzionalità di PowerPivot, è tempo di comprendere cosa accade ai propri report quando cambiano i dati sottostanti, qualcosa che avviene rapidamente a causa del normale ciclo di vita dei dati. Un report non è altro che un file Excel con una tabella pivot che interroga i dati e fornisce risultati interessanti. Il nostro modello attuale è già una buona fonte che produce report ben fatti come quello della Figura 2-32. Come si può notare, abbiamo utilizzato l’anno e il mese della data nelle colonne, pertanto possiamo aspettarci che questo report cambi nel tempo. FIGURA 2-32 Un report che contiene date attuali probabilmente deve essere aggiornato periodicamente. 42 Microsoft PowerPivot per Excel 2010 Probabilmente si vogliono produrre report come questo e poi aggiornare periodicamente i relativi valori per ottenere i dati più recenti e coprire i periodi di tempo più recenti. Nondimeno, quando si importano dati in PowerPivot, non si crea un collegamento attivo tra la tabella sorgente e la cartella di lavoro Excel. Invece, si copiano i dati in PowerPivot, che memorizza le informazioni nel suo database a colonne e agisce separatamente dalla fonte date originale. Per questo motivo, se si vogliono aggiornare i dati, è necessario ricaricare le informazioni direttamente dalla sorgente dei dati. Per ricaricare i dati, è necessario cliccare il pulsante Aggiorna della scheda Home della barra multifunzione di PowerPivot, mostrato nella Figura 2-33. FIGURA 2-33 Per aggiornare i dati, dobbiamo utilizzare la finestra PowerPivot. Siccome aggiornare una tabella significa in realtà ricaricarla dal database, talvolta può richiedere tempo. È un’operazione abbastanza veloce per piccole tabelle (meno di un milione di righe, ad esempio), ma diventa più onerosa in termini di tempo man mano che tabella diventa più grande. Nota Questa operazione PowerPivot funziona in modo molto differente dal comportamento di una tabella pivot Excel collegata a un database SQL Server Analysis Services. Quando si connette Excel a Analysis Services, Excel memorizza solo i risultati, non i dati originali. Pertanto ogni volta che cambia il dataset sottostante nel database Analysis Services, si può aggiornare semplicemente la tabella pivot per far sì che Excel interroghi nuovamente il database e recuperi le nuove informazioni. La differenza sostanziale è che una cartella di lavoro PowerPivot memorizza i dati mentre una classica tabella pivot è solo un livello di presentazione dei dati memorizzati altrove (nell’esempio, nel database Analysis Services). L’unico tipo di tabelle che vengono aggiornate automaticamente sono le tabelle collegate, ossia, tabelle che esistono nella cartella di lavoro Excel e che vengono importate all’interno di PowerPivot attraverso il pulsante “Crea tabella collegata”. Si possono attivare o disattivare gli aggiornamenti automatici delle tabelle collegate, utilizzando le opzioni disponibili nella scheda “Tabella collegata” della barra multifunzione di PowerPivot. L’opzione “Modalità aggiornamento” della scheda “Tabella collegata” è impostata a “Automatico” per default, e esistono casi molto rari per cui può essere utile disattivarla. Capitolo 2 PowerPivot in azione 43 Utilizzo dei sezionamenti Sino ad ora, abbiamo osservato le funzionalità di PowerPivot. A questo punto gradiremmo concludere questo capitolo discutendo una caratteristica standard di Excel che è molto utile quando si lavora con PowerPivot. Excel 2010 può aggiungere dei sezionamenti a una tabella pivot. Benché i sezionamenti siano stati introdotti principalmente per tabelle pivot collegate a dati PowerPivot, rappresentano una funzionalità flessibile: si possono definire i sezionamenti per tabelle pivot collegate a database Analysis Services o per semplici tabelle pivot collegate a dati nella stessa cartella di lavoro Excel. Siccome i sezionamenti sono così utili per i report, meritano certamente una menzione in un libro su PowerPivot. I sezionamenti sono elementi grafici che permettono all’utente di definire facilmente filtri su una tabella pivot. Date un’occhiata al report nella Figura 2-34, che contiene una tabella pivot e due sezionamenti. Questo esempio è reperibile nella cartella di lavoro CH02-06-Slicers.xlsx. FIGURA 2-34 I sezionamenti sono elementi grafici che eseguono il filtraggio dei dati con un clic. I due sezionamenti sulla sinistra mostrano tutti i possibili valori delle colonne Color e Category. Si può cliccare una singola cella e attivare un filtro per un valore specifico o premere il tasto Ctrl e cliccare per attivare il filtro per valori multipli. I sezionamenti sono chiaramente utili quando una colonna contiene un piccolo numero di valori differenti, come colore e categoria. I sezionamenti per colonne che hanno molti differenti valori possibili sono difficili da utilizzare. Nondimeno, siccome il filtraggio normalmente avviene su colonne con un piccolo numero di valori distinti, i sezionamenti sono graficamente allettanti e molto facili da utilizzare. I sezionamenti si comportano esattamente come filtri, ma sono più raffinati e più facili da utilizzare. Vale la pena di osservare, per di più, che i sezionamenti possono mostrare colonne che già appaiono nella tabella pivot, come accade nell’esempio della colonna Category. In primo luogo inseriamo la categoria sulle righe, e poi inseriamo la categoria sui sezionamenti. La stessa colonna può apparire nei sezionamenti e nel report. Si tratta di una caratteristica che i filtri standard di una tabella pivot non supportano. 44 Microsoft PowerPivot per Excel 2010 Per di più, i sezionamenti hanno una ulteriore differenza importante rispetto ai filtri: mentre i filtri si applicano a una singola tabella pivot (dopotutto, fanno parte della query inviata alla sorgente dei dati), i sezionamenti possono essere collegati a più di una tabella pivot, filtrandole tutte con un singolo clic. Andiamo a dare un’occhiata al report della Figura 2-35. FIGURA 2-35 I sezionamenti possono essere collegati a più di una tabella pivot, creando report interattivi. La tabella pivot superiore mostra il numero degli articoli venduti nel tempo, mentre quella inferiore mostra un dettaglio dell’anno 2004 e visualizza il valore finanziario delle vendite. Sarebbe utile essere in grado di collegare il sezionamento a entrambe le tabelle pivot in modo da poter produrre un report interattivo nel quale si può selezionare colore e categoria e aggiornare rapidamente entrambe le tabelle pivot. Per collegare un sezionamento a più di una tabella pivot, si può spostare il cursore all’interno della tabella pivot che si vuole collegare a un sezionamento e poi scegliere l’opzione “Connessioni filtro dati” dal pulsante “Inserisci filtro dati” del gruppo “Ordina e filtra” della scheda Opzioni della barra multifunzione di Excel. Appare la finestra di dialogo mostrata nella Figura 2-36. Capitolo 2 PowerPivot in azione 45 FIGURA 2-36 Con questa finestra di dialogo, possiamo collegare un sezionamento a più di una tabella pivot. Si possono collegare entrambi i sezionamenti (Category e Color) o effettuare una selezione di quale sezionamento collegare alla tabella pivot e quali non utilizzare. Se si collegano entrambi i sezionamenti a entrambe le tabelle pivot, entrambe le tabelle vengono aggiornate per riflettere i filtri quando si effettua una selezione nei sezionamenti. Questa semplice caratteristica dei sezionamenti li rendono un’ottima possibilità quando è necessario creare report interattivi. Attenzione Ogni volta che si colloca più di una tabella pivot sullo stesso foglio di calcolo, è necessario fare attenzione a non sovrapporle. Le tabelle pivot, per loro natura, cambiano dimensione in base alle selezioni effettuate. (Man mano che si cambia il numero delle categorie, la tabella pivot che contiene le categorie aumenta in altezza per ospitare le nuove categorie selezionate). Se si vogliono affiancare le tabelle pivot, ad esempio, è necessario assicurarsi che non possano espandersi al punto di sovrapporsi. Se accade ciò, Excel genera un errore. In sintesi In questo capitolo, si sono apprese alcune delle funzionalità più utili di PowerPivot: Q Le stringhe di formattazione dovranno essere impostate nelle impostazioni dei campi della tabella pivot in modo che il ridimensionamento delle colonne sia eseguito dalla tabella pivot stessa. Q Le colonne inutili dovranno essere eliminate dal modello dei dati PowerPivot, e quelle tecniche dovranno essere nascoste in modo da avere meno colonne da ricercare per produrre il report. Q Si possono aggiungere semplici colonne calcolate o utilizzare funzioni più complesse, come RELATED, per arricchire una tabella con informazioni calcolate dalle tabelle correlate. RELATED è una funzione molto utile perché permette di ridurre il numero delle tabelle e di spostare le colonne in posizioni in cui l’utente se le aspetta. Q Avete creato la vostra prima tabella collegata, che arricchisce il modello dati originale con altre informazioni memorizzate direttamente nella cartella di lavoro Excel. Q Avete appreso la differenza basilare tra colonne calcolate e misure, cosa di cui discuteremo in maggior dettaglio nel prossimo capitolo. Q Ogni qualvolta i dati all’interno del modello dati sono troppo dettagliati, dovrete creare colonne aggreganti per evitare l’esplosione di troppi dettagli. Si è vista una dimostrazione di questa tecnica su colonne di date, ma può essere facilmente estesa ad altri tipi di dati. Q I dati che devono essere aggiornati devono essere ricaricati dal database perché le tabelle PowerPivot sono una copia dei dati originali, e non un collegamento ad esse. Ciò potrebbe rappresentare un problema con database molto grandi. Q I sezionamenti sono strumenti grafici per creare filtri per una o più tabelle pivot. I sezionamenti sono utili e hanno un aspetto gradevole, e permettono di costruire report interattivi combinando più di una tabella pivot nella stessa cartella di lavoro Excel.