Datas no PowerPivot
Esta seção descreve algumas práticas recomendadas para importar dados que contenham datas e para trabalhar com datas em relações e Tabelas Dinâmicas.
Práticas recomendadas para importar dados de data
Quando você importa dados de data/hora, especialmente de várias fontes, é muito comum que os dados possam conter datas em formatos diferentes ou com níveis diferentes de granularidade nas datas.
Por exemplo, o Excel fornece duas funções para retornar a data/hora atual: a função TODAY retorna a mesma data que a função NOW, mas a função TODAY sempre retorna a hora padrão de 12 AM, enquanto a função NOW retorna uma hora precisa.
O problema disso é que as informações adicionais sobre a hora podem tornar os valores não correspondentes. Assim, ao tentar somar valores em uma Tabela Dinâmica, você talvez descubra que os valores não podem ser agrupados da maneira esperada.
Além de datas com níveis diferentes de precisão, as fontes de dados podem incluir datas gravadas em vários formatos de texto, datas em formatos regionais diferentes ou datas com base em anos fiscais diferentes.
Para trabalhar com e integrar esses tipos diferentes de datas em um único modelo, depois de importar os dados, você deve:
Usar fórmulas DAX em colunas calculadas para truncar valores ou criar um conjunto consistente de valores de data/hora.
Criar uma tabela de data/hora mestre que é possível usar para criar relações entre colunas de data.
As seções a seguir fornecem informações detalhadas.
Determine requisitos de datas.
Antes de alterar algum dos valores de data, pense na análise que você pretende fazer usando os dados e faça estas perguntas:
Com que nível ou níveis de granularidade eu conto ou agrupo fatos numéricos por -- dias, horas, semanas, trimestres?
Quais níveis de granularidade serão usados para agrupar datas -- semanas, trimestres fiscais etc.?
Alguma data não foi encontrada? Isso é aceitável para datas ou outros valores não encontrados, ou você precisa inserir valores de espaço reservado ou datas? Se os valores não forem encontrados, você usará um zero ou algum outro valor escolhido para representar valores desconhecidos?
Use fórmulas para converter datas em um formato de data consistente.
Se os dados importados contiverem datas em vários formatos, será possível deixar as colunas como estão e usar fórmulas DAX para criar colunas calculadas que representem as datas no formato correto e no nível especificado de granularidade.
Para obter exemplos, consulte os seguintes tópicos:
Usar uma função DAX para extrair valores como dia, mês e ano, se necessário.
Usar funções DAX para compor valores em um formato de data/hora.
Se os valores de data não forem formatados como datas ou tiverem um formato inconsistente, será possível usar as funções data e hora fornecidas no DAX para compilar valores válidos.
- Usar a função FORMAT para trabalhar com formatos numéricos personalizados ou de data/hora.
Para obter uma lista completa das funções data e hora, consulte Referência de função DAX para PowerPivot.
Trunque os tempos se você precisar trabalhar com dias, semanas e meses.
Os dias são a menor unidade de tempo com a qual as funções de inteligência de tempo podem trabalhar. Portanto, se não precisar trabalhar com valores de tempo, você deverá reduzir a granularidade dos dados para usar dias como a unidade mínima.
Para resolver problemas com valores de tempo desnecessariamente precisos, há um algumas coisas que é possível fazer:
Truncar horas de valores de data/hora ou fazer todos os valores de data/hora usar o mesmo valor de hora padrão.
Se você precisar trabalhar com tempos -- como, horas, minutos e segundos --, crie um campo separado ou campos que representem os incrementos de hora, usando colunas calculadas. Em seguida, é possível analisar os tempos separadamente.
O tipo de dados data/hora usado no PowerPivot é um tipo de dados SQL Server e, por padrão, cria um valor de tempo para cada data.
Filtre dados durante a importação para remover dados inválidos.
Se os dados externos contiverem valores inválidos, será possível filtrá-los no momento da importação. Para obter mais informações, consulte os seguintes tópicos:
Adicionar dados usando o Assistente de Importação de Tabela (Tutorial)
Práticas recomendadas para trabalhar com datas em Tabelas Dinâmicas
Esta seção fornece algumas dicas para ajudar a trabalhar com datas em Tabelas Dinâmicas e fórmulas que usem funções de inteligência de tempo DAX.
Evite o uso de chaves substitutas de inteiros em relações.
Quando você importa dados externos de uma fonte de dados relacional, é muito comum as colunas de data e hora serem representadas por uma chave substituta, que é uma coluna de inteiro usada para representar uma data exclusiva. No entanto, em uma pasta de trabalho PowerPivot, evite criar relações usando chaves date/time de inteiro e, em vez disso, para suas chaves, use colunas que contenham valores exclusivos com um tipo de dados date.
Embora o uso de chaves substitutas seja considerado uma prática recomendada nos data warehouses tradicionais, as chaves de inteiro não são necessárias no PowerPivot e podem dificultar o agrupamento de valores em Tabelas Dinâmicas por períodos de datas diferentes.
Crie uma tabela mestre de datas.
Se cada tabela de dados na pasta de trabalho contiver uma coluna de valores de data/hora e você conectar as tabelas a essas colunas de data/hora, será provável que muitos valores não correspondam: por exemplo, a tabela Vendas pode ter datas apenas para a segunda parte de 2008, e a tabela Fornecedores pode listar datas de 2006 a 2008.
Em vez de unir várias tabelas de dados em muitas colunas independentes que contenham várias datas e horas, é possível obter os melhores resultados, criando-se uma tabela mestre que armazene apenas as informações de data. Em seguida, é possível vincular essa tabela, usando-se relações, às tabelas de dados, e colher os benefícios de ter um conjunto de datas consistente com o qual trabalhar.
A pasta de trabalho DAX Samples fornece um exemplo de uma tabela de data/hora mestre conectada a outras tabelas que usem relações.
Além de ter um valor de data/hora exclusivo para cada data que você usaria, a tabela mestre contém hierarquias que é possível usar para agrupar datas em Tabelas Dinâmicas, como mostrado nesta tabela:
DayNumberOfWeek |
WeekNumberOfYear |
CalendarQuarter |
FiscalQuarter |
DayNameOfWeek |
WeekNumberOfMonth |
CalendarSemester |
FiscalSemester |
DayNumberOfMonth |
MonthName |
CalendarYear |
FiscalYear |
DayNumberOfYear |
MonthNumberOfYear |
|
|
Crie cópias de colunas de data quando necessário
O conceito de uma tabela de datas mestre será familiar se você já tiver trabalhado com bancos de dados tradicionais Analysis Services, que usam uma dimensão de data para representar e agrupar datas.
O que é diferente no PowerPivot é que cada coluna exclusiva de uma tabela do PowerPivot pode participar apenas de uma relação entre duas tabelas. Portanto, se uma única tabela contiver várias colunas que precisem estar relacionadas à chave de data, você deverá criar uma cópia da coluna da chave de data e do link.
Por exemplo, suponhamos que a tabela Pedidos contenha estas colunas de data: SalesDate, TransactionDate e ShippingDate. Você deseja vincular todas elas à coluna da chave de data na tabela de datas mestre, mas o PowerPivot não permite isso, para garantir que qualquer relação forneça um caminho exclusivo, não ambíguo, apesar dos valores. Em vez disso, você precisa mover as colunas de data adicionais em tabelas separadas e, em seguida, vincular a coluna de data em cada uma dessas tabelas à chave de data na tabela de datas mestre. Por exemplo, você pode optar por manter a coluna SalesDate n tabela Pedidos, mas criar uma nova tabela para transações e uma tabela separada para informações de envio. É possível usar uma coluna calculada para criar as cópias das colunas, ShippingDate e TransactionDate, para verificar se elas estão sincronizadas.
A pasta de trabalho DAX Samples fornece um exemplo de como criar e trabalhar efetivamente com cópias de colunas de data. Para obter mais informações sobre como conseguir os exemplos, consulte Obter dados de exemplo para o PowerPivot.