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.