Sommario
Prefazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Ringraziamenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix
1
Primi passi con PowerPivot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Lavorare con le classiche tabelle pivot di Excel . . . . . . . . . . . . . . . . . . . . . . . . . 2
Lavorare con le tabelle pivot in PowerPivot. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Importazione dei dati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Interrogazione dei dati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
In sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2
PowerPivot in azione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Utilizzo della tabella pivot per produrre report . . . . . . . . . . . . . . . . . . . . . . . 17
Formattazione di numeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Nascondere o rimuovere colonne inutili. . . . . . . . . . . . . . . . . . . . . . . . . 21
Aggiunta di colonne calcolate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Aggiunta delle misure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Aggiunta di ulteriori tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Lavorare con le date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Aggiornamento dei dati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Utilizzo dei sezionamenti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
In sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3
Introduzione a DAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Il calcolo in DAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
La sintassi DAX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Tipi di dati DAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Operatori DAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Valori DAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
ix
x
Sommario
Colonne calcolate e misure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Colonne calcolate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Misure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Gestione errori in espressioni DAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Errori di conversione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Operazioni aritmetiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Intercettazione degli errori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Funzioni DAX comuni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Funzioni statistiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Funzioni logiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Funzioni informative. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Funzioni matematiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Funzioni testo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Funzioni data e ora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
In sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4
Modelli dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Comprendere i modelli dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Seguendo il metodo Excel standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Alla scoperta dell’approccio con PowerPivot. . . . . . . . . . . . . . . . . . . . . 79
Cos’è un modello dati? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Modelli di dati fisici e logici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Normalizzazione e denormalizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Valori vuoti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Come e quando denormalizzare le tabelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Il designer delle query di PowerPivot . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Quando denormalizzare le tabelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Relazioni complesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
OLTP e i Data Mart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Data Mart, fatti e dimensioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Star Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Interrogazione del data warehouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Scoprire tipi avanzati di relazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Relazioni di ruolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Relazioni molti a molti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
In sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Sommario
5
Caricamento di dati e modelli. . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Sorgenti dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Caricamento da un database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Caricamento da un elenco di tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Caricamento delle relazioni. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Selezione delle tabelle correlate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Caricamento da una query SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Caricamento di viste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Apertura delle connessioni esistenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Caricamento da Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Caricamento da Analysis Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Utilizzo dell’editor MDX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Gestione delle chiavi nel cubo OLAP . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Utilizzo di tabelle collegate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Caricamento da file Excel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Caricamento da file di testo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Caricamento dalla Clipboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Caricamento da un report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Caricamento da un feed di dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Caricamento da SharePoint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
In sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6
Contesto di valuazione e CALCULATE . . . . . . . . . . . . . . . . . . . . . 169
Il contesto di valutazione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Contesto di filtro in una singola tabella . . . . . . . . . . . . . . . . . . . . . . . . 169
Contesto di riga in un singola tabella . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Aggiunta di filtri a un contesto di filtro di una singola tabella . . . . . 177
Rimozione di filtri da un contesto di filtro di una singola tabella . . 178
Contesto di riga con più tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Contesto di filtro con più tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Modifica del contesto di filtro per più tabelle . . . . . . . . . . . . . . . . . . . 187
Considerazioni finali sul contesto di valutazione . . . . . . . . . . . . . . . . 191
La funzione CALCULATE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
La funzione EARLIER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
In sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
xi
xii
Sommario
7
Calcoli su date in DAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Lavorare con una tabella di date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Come costruire una tabella di date . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Lavorare con più tabelle di date. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Distinguere le colonne in più tabelle di date . . . . . . . . . . . . . . . . . . . . 214
Calcolo dei giorni lavorativi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Aggregazione e confronto nel tempo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Calcolo annuale, trimestrale e mensile . . . . . . . . . . . . . . . . . . . . . . . . . 225
Periodi dall’anno precedente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Differenza rispetto all’anno precedente . . . . . . . . . . . . . . . . . . . . . . . . 233
Semplificazione della consultazione con una tabella periodo . . . . . 235
Saldo contabile nel tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Misure semiadditive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Funzioni OPENINGBALANCE e CLOSINGBALANCE . . . . . . . . . . . . . . . 242
Aggiornamento dei saldi utilizzando le transazioni . . . . . . . . . . . . . . 246
In sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
8
Conoscere a fondo le tabelle pivot . . . . . . . . . . . . . . . . . . . . . . . 251
Tipi differenti di tabelle pivot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Dimensione del file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Gestione dei sezionamenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Tabella pivot flat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Confronto delle caratteristiche. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Ordinamento personalizzato nelle tabelle pivot. . . . . . . . . . . . . . . . . . . . . . 255
Calcolo di rapporti e percentuali nelle tabelle pivot . . . . . . . . . . . . . . . . . . 259
Aggregazione di dati senza utilizzare la somma . . . . . . . . . . . . . . . . . . . . . . 262
Creazione di cruscotti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Utilizzo di query complesse come tabelle collegate. . . . . . . . . . . . . . . . . . . 270
Eseguire l’analisi congiunta di vecchi e nuovi dati . . . . . . . . . . . . . . . . . . . . 272
Definizione di insiemi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Creazione di insiemi dinamici con MDX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Creazione di insiemi di misure con MDX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
In sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Sommario
9
Pattern DAX in PowerPivot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Calcolo di rapporti e percentuali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Calcolo del rapporto in una singola tabella denormalizzata. . . . . . . 289
Calcolo del rapporto su più tabelle normalizzate . . . . . . . . . . . . . . . . 292
Calcolo della deviazione standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Posizionamento rispetto a una misura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Calcolo del posizionamento in una singola tabella denormalizzata 297
Calcolo del posizionamento in più tabelle normalizzate . . . . . . . . . . 303
Calcolo ABC e analisi di Pareto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Analisi ABC con un singola tabella denormalizzata . . . . . . . . . . . . . . 305
Analisi ABC con più tabelle normalizzate . . . . . . . . . . . . . . . . . . . . . . . 309
ABC con attributi denormalizzati su tabelle normalizzate . . . . . . . . 311
Eventi in corso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
In sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
10
Pattern di modelli dei dati in PowerPivot . . . . . . . . . . . . . . . . . . 317
Raggruppamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Raggruppamento con espansione della fascia. . . . . . . . . . . . . . . . . . . 319
Raggruppamento con utilizzo elementare di DAX . . . . . . . . . . . . . . . 321
Raggruppamento con CALCULATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Eseguire una simulazione corrieri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Caricamento della tabella principale . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Aggiunta delle informazioni sul corriere . . . . . . . . . . . . . . . . . . . . . . . 333
Utilizzo di DAX per risolvere relazioni complesse. . . . . . . . . . . . . . . . 334
Utilizzo di relazioni molti a molti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
In sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
11
Pubblicazione su SharePoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Integrazione di SharePoint 2010 e PowerPivot . . . . . . . . . . . . . . . . . . . . . . . 345
PowerPivot Gallery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Pubblicazione di una cartella di lavoro Excel . . . . . . . . . . . . . . . . . . . . . . . . . 351
Aggiornamento di dati PowerPivot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
In sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
xiii
xiv
Sommario
Appendice Guida alle funzioni DAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Funzioni statistiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Funzioni logiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Funzioni informative. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Funzioni matematiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Funzioni testo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Funzioni data e ora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Funzioni filtro e funzioni valore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Funzioni di Time Intelligence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Indice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Biografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377