Date in PowerPivot
In questa sezione vengono descritte alcune procedure consigliate per l'importazione dei dati che contengono date e per l'utilizzo delle date nelle relazioni e nelle tabelle pivot.
Procedure consigliate per l'importazione di dati relativi alle date
Quando si importano dati che dispongono di dati relativi a data/ora, in particolare da più origini, molto spesso i dati potrebbero contenere date in formati diversi o con livelli differenti di granularità.
Ad esempio, Excel fornisce due funzioni per la restituzione di data/ora correnti: la funzione TODAY restituisce la stessa data della funzione NOW, ma la funzione TODAY restituisce sempre l'ora predefinita (12 AM), mentre la funzione NOW restituisce un'ora precisa.
In questo caso, la causa del problema è la possibile generazione di valori non corrispondenti da parte delle informazioni aggiuntive sull'ora. Se si tenta pertanto di sommare valori in una tabella pivot, è possibile scoprire che i valori non possono essere raggruppati nel modo previsto.
Oltre alle date con livelli diversi di precisione, le origini dati potrebbero includere date scritte in vari formati di testo, date in formati internazionali differenti o date basate su anni fiscali diversi.
Per utilizzare e integrare questi tipi diversi di date in un solo modello, una volta importato i dati, è necessario:
Utilizzare formule DAX nelle colonne calcolate per troncare i valori o per creare un set coerente di valori di data/ora.
Creare una tabella master di data/ora utilizzabile per creare relazioni tra colonne di date.
Nelle sezioni seguenti vengono fornite informazioni dettagliate.
Determinare i requisiti per le date.
Prima di modificare qualsiasi valore relativo alla data, pensare all'analisi che si intende fare utilizzando i dati e porsi le seguenti domande:
Che livelli di granularità considerare oppure come raggruppare i fattori numerici: per giorni, ore, settimane, trimestri?
Che livelli di granularità verranno utilizzati per raggruppare le date: settimane, trimestri fiscali, ecc.?
Mancano delle date? È consentita la mancanza di date o di altri valori oppure è necessario inserire date o valori segnaposto? Se i valori mancano, si utilizza uno zero o altri valori scelti per rappresentare i valori sconosciuti?
Utilizzare formule per convertire le date in un formato di data coerente.
Se i dati importati contengono date in più formati, è possibile lasciare le colonne invariate e utilizzare formule DAX per creare colonne calcolate che rappresentino le date nel formato corretto e al livello specificato di granularità.
Per gli esempi, vedere gli argomenti seguenti:
Utilizzare una funzione DAX per estrarre valori quali il giorno, l'anno e il mese, se necessario.
Utilizzare funzioni DAX per creare valori in un formato data/ora.
Se i valori relativi alle date non sono formattati come date o se il formato è incoerente, è possibile utilizzare le funzioni di data e ora fornite in DAX per compilare date valide.
- Utilizzare la funzione FORMAT per utilizzare formati numerici o di data/ora personalizzati.
Per un elenco completo delle funzioni di data e ora, vedere Guida di riferimento alle funzioni DAX per PowerPivot.
Troncare i valori di ora se è necessario utilizzare giorni, settimane e mesi.
I giorni rappresentano l'unità di tempo più piccola che le funzioni di Business Intelligence per le gerarchie temporali di DAX possono utilizzare. Pertanto, se non è necessario utilizzare valori di ora, si deve ridurre la granularità dei dati per utilizzare i giorni come unità minima.
Per risolvere problemi relativi a valori di ora non necessariamente precisi, è possibile effettuare le seguenti operazioni:
Troncare le ore dai valori di data/ora o fare in modo che tutti i valori di data/ora utilizzino lo stesso valore di ora predefinito.
Se è necessario utilizzare i valori di ora, ad esempio, ore, minuti e secondi, creare un campo separato o campi che rappresentino gli incrementi dell'ora, utilizzando colonne calcolate. È quindi possibile analizzare le ore separatamente.
Il tipo di dati relativi a data/ora utilizzato in PowerPivot è un tipo di dati SQL Server e per impostazione predefinita crea un valore di ora per ciascuna data.
Filtrare i dati al momento dell'importazione per rimuovere quelli errati.
Se i dati esterni contengono valori non validi, tali valori possono essere filtrati al momento dell'importazione. Per ulteriori informazioni, vedere gli argomenti seguenti:
Aggiungere dati utilizzando l'Importazione guidata tabella (esercitazione)
Procedure consigliate per l'utilizzo di date in tabelle pivot
In questa sezione vengono forniti alcuni suggerimenti, che consentono di utilizzare le date nelle tabelle pivot, e formule che utilizzano funzioni di Business Intelligence per le gerarchie temporali di DAX.
Evitare l'utilizzo di chiavi surrogate integer nelle relazioni.
Quando si importano dati esterni da un'origine dati relazionale, molto spesso le colonne di data e ora sono rappresentate da una chiave surrogata, ovvero una colonna integer utilizzata per rappresentare una data univoca. Tuttavia, in una cartella di lavoro di PowerPivot è necessario evitare di creare relazioni tramite chiavi data/ora integer e, invece, per le chiavi, utilizzare colonne che contengono valori univoci con un tipo di dati date.
Sebbene l'utilizzo di chiavi surrogate sia considerato una procedura consigliata nei data warehouse tradizionali, le chiavi integer non sono necessarie in PowerPivot e possono rendere difficile raggruppare valori nelle tabelle pivot per periodi di data diversi.
Creare una tabella master di date.
Se ogni tabella di dati nella cartella di lavoro contiene una colonna di valori di data/ora e le tabelle vengono connesse in tali colonne di data/ora, è probabile che molti valori non corrisponderanno: ad esempio, la tabella Sales potrebbe disporre di date relative solo alla seconda metà del 2008, mentre la tabella Suppliers potrebbe elencare date comprese tra il 2006 e il 2008.
Piuttosto che associare le varie tabelle di dati in molte colonne indipendenti contenenti le varie date e ore, è possibile ottenere risultati migliori creando una tabella master in cui archiviare solo le informazioni relative alla data. È quindi possibile collegare tale tabella, tramite relazioni, alle tabelle di dati e sfruttare i vantaggi di disporre di un set coerente di date da utilizzare.
La cartella di lavoro di esempi di DAX fornisce un esempio di tabella master di data/ora connessa ad altre tabelle tramite relazioni.
Oltre a disporre di un valore di data/ora univoco per ciascuna data utilizzata, la tabella master contiene gerarchie che si possono utilizzare per raggruppare le date in tabelle pivot, come mostrato in questa tabella:
DayNumberOfWeek |
WeekNumberOfYear |
CalendarQuarter |
FiscalQuarter |
DayNameOfWeek |
WeekNumberOfMonth |
CalendarSemester |
FiscalSemester |
DayNumberOfMonth |
MonthName |
CalendarYear |
FiscalYear |
DayNumberOfYear |
MonthNumberOfYear |
|
|
Creare copie di colonne di date quando necessario
Il concetto di tabella master di date sarà familiare qualora siano stati utilizzati database di Analysis Services tradizionali in cui viene utilizzata una dimensione della data per rappresentare e raggruppare le date.
In una tabella di PowerPivot, invece, ogni colonna univoca può far parte di un'unica relazione tra due tabelle qualsiasi. Pertanto, se una sola tabella contiene più colonne che devono essere correlate alla chiave della data, è necessario creare una copia della colonna della chiave della data e il collegamento.
Ad esempio, si supponga che la tabella Orders contenga le colonne di date: SalesDate, TransactionDate e ShippingDate. Si desidera collegare tutte queste colonne alla colonna della chiave della data nella tabella master di date, ma in PowerPivot tale operazione non è consentita, per assicurarsi che qualsiasi relazione fornisca un percorso univoco, non ambiguo nonostante i valori. Invece è necessario passare le colonne di date aggiuntive in tabelle separate, quindi collegare la colonna di date in ognuna di tali tabelle alla chiave della data nella tabella master di date. Ad esempio, si potrebbe decidere di mantenere la colonna SalesDate nella tabella Orders, ma di creare una nuova tabella per le transazioni e una tabella separata per le informazioni sulle spedizioni. Per creare le copie delle colonne ShippingDate e TransactionDate, è possibile utilizzare una colonna calcolata per assicurarsi che restino sincronizzate.
La cartella di lavoro di esempi di DAX fornisce un esempio su come creare e utilizzare in modo efficiente le copie delle colonne di date. Per ulteriori informazioni sulla posizione degli esempi, vedere Come ottenere i dati di esempio per PowerPivot.