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