Iniciar sessão com a Microsoft
Iniciar sessão ou criar uma conta.
Olá,
Selecione uma conta diferente.
Tem várias contas
Selecione a conta com a qual pretende iniciar sessão.

As tabelas de data no Power Pivot são essenciais para procurar e calcular dados ao longo do tempo. Este artigo fornece uma compreensão completa das tabelas de data e de como pode criá-las no Power Pivot. Em particular, este artigo descreve:

  • Porque é que uma tabela de data é importante para procurar e calcular dados por datas e horas.

  • Como utilizar o Power Pivot para adicionar uma tabela de datas ao Modelo de Dados.

  • Como criar novas colunas de data, como Ano, Mês e Período numa tabela de datas.

  • Como criar relações entre tabelas de datas e tabelas de factos.

  • Como trabalhar com o tempo.

Este artigo destina-se a utilizadores novos no Power Pivot. No entanto, é importante já ter uma boa compreensão da importação de dados, da criação de relações e da criação de colunas e medidas calculadas.

Este artigo não descreve como utilizar funções DAX Time-Intelligence em fórmulas de medida. Para obter mais informações sobre como criar medidas com as funções da Time Intelligence do DAX, consulte o trml Intelligence no Power Pivot no Excel.

Nota: No Power Pivot, os nomes "measure" e "calculated field" são sinónimos. Estamos a utilizar a medida do nome ao longo deste artigo. Para obter mais informações, consulte Medidas no Power Pivot.

Conteúdos

Noções sobre tabelas de datas

Quase todas as análises de dados envolvem a navegação e a comparação de dados ao longo das datas e horas. Por exemplo, poderá querer somar os montantes de vendas do último trimestre fiscal e, em seguida, comparar esses totais com outros trimestres ou calcular o saldo de fecho de um mês para uma conta. Em cada um destes casos, está a utilizar datas como forma de agrupar e agregar transações de vendas ou saldos para um determinado período de tempo.

Power View relatório

Vendas totais por tabela dinâmica de trimestre fiscal

Uma tabela de datas pode conter muitas representações diferentes de datas e horas. Por exemplo, uma tabela de datas terá frequentemente colunas como Ano Fiscal, Mês, Trimestre ou Período que pode selecionar como campos de uma Lista de Campos ao cortar e filtrar os seus dados em tabelas Power View relatórios.

Power View Lista de Campos

Lista de Campos do Power View

Para colunas de data como Ano, Mês e Trimestre para incluir todas as datas no respetivo intervalo, a tabela de datas tem de ter, pelo menos, uma coluna com um conjunto contíguo de datas. Ou seja, essa coluna tem de ter uma linha para todos os dias para cada ano incluída na tabela de datas.

Por exemplo, se os dados que pretende procurar têm datas de 1 de fevereiro de 2010 a 30 de novembro de 2012 e comunicar um ano de calendário, irá querer uma tabela de datas com pelo menos um intervalo de datas entre 1 de janeiro de 2010 e 31 de dezembro de 2012. Todos os anos na sua tabela de datas têm de conter todos os dias para cada ano. Se irá atualizar regularmente os seus dados com dados mais recentes, poderá querer executar a data de fim um ou dois anos, para que não tenha de atualizar a sua tabela de datas à medida que a hora passa.

Tabela de data com um conjunto contíguo de datas

Tabela de data com datas contíguas

Se comunicar um ano fiscal, pode criar uma tabela de datas com um conjunto contíguo de datas para cada ano fiscal. Por exemplo, se o seu ano fiscal começar a 1 de março e tiver dados para os anos fiscais de 2010 até à data atual (por exemplo, no dia 2013), pode criar uma tabela de datas que começa a 1/3/2009 e inclui, pelo menos, todos os dias em cada ano fiscal até à última data do Ano Fiscal 2013.

Se irá comunicar o ano de calendário e o ano fiscal, não precisa de criar tabelas de datas separadas. Uma única tabela de data pode incluir colunas para um ano de calendário, ano fiscal e até mesmo um calendário de treze períodos de quatro semanas. O importante é que a sua tabela de datas contém um conjunto contíguo de datas para todos os anos incluídos.

Adicionar uma tabela de datas ao Modelo de Dados

Existem várias formas de adicionar uma tabela de datas ao seu Modelo de Dados:

  • Importar a partir de uma base de dados relacional ou outra origem de dados.

  • Crie uma tabela de datas no Excel e, em seguida, copie ou ligue a uma nova tabela no Power Pivot.

  • Importe do Microsoft Azure Marketplace.

Vamos ver cada uma destas informações mais atentamente.

Importar a partir de uma base de dados relacional

Se importar alguns ou todos os seus dados a partir de um armazém de dados ou de outro tipo de base de dados relacional, é possível que já haja uma tabela de datas e relações entre a mesma e os restantes dados que está a importar. É provável que as datas e o formato correspondam às datas nos seus dados de factos e, provavelmente, as datas começam bem no passado e vão muito para o futuro. A tabela de datas que pretende importar pode ser muito grande e conter um intervalo de datas para além do que precisará de incluir no seu Modelo de Dados. Pode utilizar as funcionalidades avançadas do Assistente de Importação de Tabelas do Power Pivot para escolher seletivamente apenas as datas e as colunas específicas de que realmente necessita. Isto pode reduzir significativamente o tamanho do seu livro e melhorar o desempenho.

Assistente de Importação de Tabelas

Caixa de diálogo do Assistente de Importação de Tabelas

Na maioria dos casos, não terá de criar colunas adicionais, como Ano Fiscal, Semana, Nome do Mês, etc. porque já existirão na tabela importada. No entanto, em alguns casos, após importar a tabela de datas para o seu Modelo de Dados, poderá ter de criar colunas de data adicionais, dependendo de uma necessidade de relatórios específica. Felizmente, é fácil utilizar o DAX. Mais informações sobre como criar campos de tabela de data mais tarde. Todos os ambientes são diferentes. Se não tiver a certeza se as origens de dados têm uma data ou tabela de calendário relacionada, fale com o administrador da sua base de dados.

Criar uma tabela de datas no Excel

Pode criar uma tabela de datas no Excel em seguida, copiá-la para uma nova tabela no Modelo de Dados. Isto é muito fácil de fazer e dá-lhe muita flexibilidade.

Quando cria uma tabela de datas no Excel, começa com uma única coluna com um intervalo contíguo de datas. Em seguida, pode criar colunas adicionais, como Ano, Trimestre, Mês, Ano Fiscal, Período, etc., na livro Excel utilizando fórmulas Excel ou, depois de copiar Excel tabela para o Modelo de Dados, pode criá-las como colunas calculadas. A criação de colunas de data adicionais no Power Pivot está descrita na secção Adicionar Novas Colunas de Data à Tabela de Datas mais à frente neste artigo.

Como: Criar uma tabela de datas no Excel e copiá-la para o Modelo de Dados

  1. No Excel, numa folha de dados em branco, na célula A1,escreva o nome do cabeçalho de uma coluna para identificar um intervalo de datas. Normalmente, será algo como Data, DateTime ou DateKey.

  2. Na célula A2, escreva uma data de início. Por exemplo, 01/01/2010.

  3. Clique na alça de preenchimento e arraste-a para baixo para um número de linha que inclua uma data de fim. Por exemplo, 31/12/2016.

    Coluna de data no Excel

  4. Selecionar todas as linhas na coluna Data (incluindo o nome do cabeçalho na célula A1).

  5. No grupo Estilos, clique em Formatar como Tabela e, em seguida,selecione um estilo.

  6. Na caixa de diálogo Formatar como Tabela, clique em OK.

    Coluna de data no Power Pivot

  7. Copie todas as linhas, incluindo o cabeçalho.

  8. No Power Pivot, no separador Base, clique em Colar.

  9. Em Colar Pré-visualização > Nome da Tabela escreva um nome como Data ouCalendário. Deixe a verificação Utilizar a primeira linha como cabeçalhos de coluna e, em seguida, clique em OK.

    Colar Pré-visualização

    A nova tabela de datas (com o nome Calendário neste exemplo) no Power Pivot tem o seguinte asqueto:

    Tabela de data no Power Pivot

    Nota: Também pode criar uma tabela ligada utilizando Adicionar ao Modelo de Dados. No entanto, isto torna o seu livro desnecessariamente grande porque tem duas versões da tabela de datas; um na Excel e outro no Power Pivot.

Nota: A data do nome é uma palavra-chave no Power Pivot. Se nomear a tabela que criar na Data do Power Pivot, terá de escrever o nome da tabela com aspas simples em qualquer fórmula DAX que a referencie num argumento. Todas as imagens e fórmulas de exemplo neste artigo referem-se a uma tabela de datas criada no Power Pivot denominada Calendário.

Agora tem uma tabela de datas no seu Modelo de Dados. Pode adicionar novas colunas de data, como Ano, Mês, etc. através de DAX.

Adicionar novas colunas de data à tabela de datas

Uma tabela de datas com uma coluna de data única que tenha uma linha para cada dia para cada ano é importante para definir todas as datas num intervalo de datas. Também é necessário para criar uma relação entre a tabela de factos e a tabela de datas. Contudo, essa coluna de data única com uma linha para cada dia não é útil ao analisar por datas numa tabela dinâmica ou Power View relatório. Pretende que a sua tabela de datas inclua colunas que o ajudem a agregar os seus dados de um intervalo ou grupo de datas. Por exemplo, poderá querer somar os montantes de vendas por mês ou trimestre ou pode criar uma medida que calcula o crescimento anual ao longo do ano. Em cada um destes casos, a sua tabela de datas necessita de colunas de ano, mês ou trimestre que lhe permitam agregar os seus dados para esse período.

Se tiver importado a sua tabela de datas a partir de uma origem de dados relacional, esta poderá já incluir os diferentes tipos de colunas de data que pretende. Em alguns casos, poderá querer modificar algumas dessas colunas ou criar colunas de data adicionais. Isto é especialmente verdadeiro se criar a sua própria tabela de datas no Excel e copiá-la para o Modelo de Dados. Felizmente, criar novas colunas de data no Power Pivot é bastante fácil com as Funções de Data e Hora no DAX.

Sugestão: Se ainda não trabalhou com o DAX, um excelente local para começar a aprender é com o QuickStart: Aprenda as Noções Básicas do DAX em 30 Minutos em Office.com.

Funções de Data e Hora do DAX

Se alguma vez trabalhou com funções de data e hora em fórmulas Excel, é provável que esteja familiarizado com as Funções de Data e Hora. Embora estas funções sejam semelhantes às suas homólogos Excel, existem algumas diferenças importantes:

  • As funções do DAX Date e Time utilizam um tipo de dados datetime.

  • Podem assumir valores de uma coluna como um argumento.

  • Podem ser utilizadas para devolver e/ou manipular valores de data.

Estas funções são frequentemente utilizadas ao criar colunas de data personalizadas numa tabela de datas, pelo que são importantes de compreender. Iremos utilizar várias destas funções para criar colunas para Ano, Trimestre, Fim Fiscal, entre outras.

Nota: As funções de Data e Hora no DAX não são o mesmo que as funções de Informações de Tempo. Saiba mais sobre a Inteligência De Tempo no Power Pivot no Excel 2013.

O DAX inclui as seguintes funções de Data e Hora:

Também existem muitas outras funções DAX que pode utilizar nas suas fórmulas. Por exemplo, muitas das fórmulas descritas aqui utilizam Funções Matemáticas e Trigonométricas como RESTO e TRUNQUE,Funções Lógicas como SE e Funções de Texto como FORMAT Para obter mais informações sobre outras funções DAX, consulte a secção Recursos Adicionais mais à frente neste artigo.

Exemplos de fórmulas para um ano de calendário

Os seguintes exemplos descrevem fórmulas utilizadas para criar colunas adicionais numa tabela de datas denominada Calendário. Uma coluna, denominada Data, já existe e contém um intervalo contíguo de datas de 1/1/2010 a 31/12/2016.

Ano

=ANO([data])

Nesta fórmula, a função ANO devolve o ano do valor na coluna Data. Uma vez que o valor na coluna Data é do tipo de dados datetime, a função ANO sabe como devolver o ano a partir da mesma.

Coluna Ano

Mês

=MÊS([data])

Nesta fórmula, tal como na função ANO, podemos simplesmente utilizar a função MÊS para devolver um valor de mês da coluna Data.

Coluna Mês

Trimestre

=INT(([Mês]+2)/3)

Nesta fórmula, utilizamos a função INT para devolver um valor de data como um valor inteiro. O argumento que especificamos para a função INT é o valor da coluna Mês, adicione 2 e, em seguida, divida-o por 3 para obter o nosso trimestre, 1 através de 4.

Coluna Trimestre

Nome do Mês

=FORMAT([data],"mmmm")

Nesta fórmula, para obter o nome do mês, utilizamos a função FORMATAR para converter um valor numérico da coluna Data em texto. Especificamos a coluna Data como o primeiro argumento e, em seguida, o formato; queremos que o nome do mês mostre todos os carateres, pelo que utilizamos "mmmm". O nosso resultado tem o mesmo aseque isto:

Coluna Nome do Mês

Se quisermos devolver o nome do mês abreviado para três letras, utilizaríamos "mmm" no argumento formato.

Dia da Semana

=FORMAT([data],"ddd")

Nesta fórmula, utilizamos a função FORMAT para obter o nome do dia. Uma vez que queremos apenas um nome abreviado para o dia, especificamos "ddd" no argumento formato.

Coluna Dia da Semana
Tabela Dinâmica de Exemplo

Assim que tiver campos para datas como Ano, Trimestre, Mês, etc., pode usá-los numa Tabela Dinâmica ou relatório. Por exemplo, a imagem seguinte mostra o campo SalesAmount da tabela de factos Vendas em VALORES e Ano e Trimestre da tabela de dimensão Calendário em LINHAS. SalesAmount é agregado para o contexto anual e trimestral.

Tabela Dinâmica de Exemplo

Exemplos de fórmulas para um ano fiscal

Ano Fiscal

=SE([Mês]<= 6,[Ano],[Ano]+1)

Neste exemplo, o ano fiscal começa a 1 de julho.

Não existe uma função que possa extrair um ano fiscal de um valor de data, uma vez que as datas de início e de fim de um ano fiscal são frequentemente diferentes das de um ano civil. Para obter o ano fiscal, utilizamos primeiro uma função SE para testar se o valor de Mês é menor ou igual a 6. No segundo argumento, se o valor de Mês for menor ou igual a 6, então devolve o valor da coluna Ano. Caso não o seja, devolva o valor de Ano e adicione 1.

Coluna Ano Fiscal

Outra forma de especificar um valor de mês de fim de ano fiscal é criar uma medida que especifique simplesmente o mês. Por exemplo, AF:=6. Em seguida, pode referenciar o nome da medida em vez do número do mês. Por exemplo, =SE([Mês]<=[AF],[Ano],[Ano]+1). Isto fornece mais flexibilidade ao referenciar o mês de fim do ano fiscal em várias fórmulasdiferentes.

Mês Fiscal

=SE([Mês]<= 6, 6+[Mês], [Mês]- 6)

Nesta fórmula, especificamos se o valor de [Mês] é menor ou igual a 6, então, pegue em 6 e adicione o valor de Mês, caso contrário, subtraia 6 do valor de [Mês].

Coluna Mês Fiscal

Trimestre Fiscal

=INT(([Month Fiscal]+2)/3)

A fórmula que utilizamos para oQuartor Fiscal é muito igual ao trimestre no nosso ano civil. A única diferença é que especificamos [Mês Fiscal] em vez de [Mês].

Coluna Trimestre Fiscal

Feriados ou datas especiais

Poderá querer incluir uma coluna de data que indique que determinadas datas são feriados ou outra data especial. Por exemplo, poderá querer somar os totais de vendas do Dia de Ano Novo ao adicionar um campo Feriado a uma Tabela Dinâmica, como uma filtragem ou a uma filtragem. Noutros casos poderá querer excluir essas datas de outras colunas de datas ou de uma medida.

Incluir feriados ou dias especiais é bastante simples. Pode criar uma tabela no Excel com as datas que pretende incluir. Em seguida, pode copiar ou utilizar Adicionar a Modelo de Dados para adicioná-lo ao Modelo de Dados como uma tabela ligada. Na maioria dos casos, não é necessário criar uma relação entre a tabela e a tabela Calendário. Todas as fórmulas que a referenciem podem utilizar a função VALOR.UP para devolver valores.

Segue-se um exemplo de uma tabela criada no Excel que inclui feriados a adicionar à tabela de datas:

Data

Feriado

1/1/2010

Anos Novos

11/25/2010

Assado

12/25/2010

Natal

1/1/2011

Anos Novos

11/24/2011

Assado

12/25/2011

Natal

01/01/2012

Anos Novos

22/11/2012

Assado

12/25/2012

Natal

1/1/2013

Anos Novos

11/28/2013

Assado

12/25/2013

Natal

11/27/2014

Assado

12/25/2014

Natal

1/1/2014

Anos Novos

11/27/2014

Assado

12/25/2014

Natal

1/1/2015

Anos Novos

11/26/2014

Assado

12/25/2015

Natal

1/1/2016

Anos Novos

11/24/2016

Assado

12/25/2016

Natal

Na tabela de datas, criamos uma coluna denominada Feriados e utilizamos uma fórmula como esta:

=VALOR.UP(Feriados[Feriado],Feriados[data],Calendário[data])

Vamos olhar para esta fórmula com mais atenção.

Utilizamos a função VALOR.UP para obter valores da coluna Feriados na tabela Feriados. No primeiro argumento, especificamos a coluna onde o nosso valor de resultado será. Especificamos a coluna Feriados na tabela Feriados porque é esse o valor que pretendemos devolvido.

=VALOR.UP(Feriados[Feriado],Feriados[data],Calendário[data])

Em seguida, especificamos o segundo argumento, a coluna de pesquisa que tem as datas que pretendemos procurar. Especificamos a coluna Data na tabela Feriados, da seguinte forma:

=VALOR.UP(Feriados[Feriado],Feriados[data],Calendário[data])

Por fim, especificamos a coluna na tabela do Calendário que tem as datas que pretendemos procurar na tabela Feriados. Esta é, claro, a coluna Data na tabela Calendário.

=VALOR.UP(Feriados[Feriado],Feriados[data],Calendário[data])

A coluna Feriados irá devolver o nome do feriado para cada linha que tenha um valor de data que corresponda a uma data na tabela Feriados.

Tabela de Feriados

Calendário personalizado – treze períodos de quatro semanas

Algumas organizações, como o retalho ou o serviço de alimentação, comunicam frequentemente sobre períodos diferentes, como treze períodos de quatro semanas. Com um calendário de treze dias de quatro semanas, cada período é de 28 dias; assim, cada período contém quatro segundas-feiras, quatro terças-feiras, quatro quartas-feiras, entre outros. Cada período contém o mesmo número de dias e, normalmente, os feriados recaem no mesmo período de cada ano. Pode optar por iniciar um período em qualquer dia da semana. Tal como com as datas num calendário ou ano fiscal, pode utilizar o DAX para criar colunas adicionais com datas personalizadas.

Nos exemplos abaixo, o primeiro período completo começa no primeiro domingo do ano fiscal. Neste caso, o ano fiscal começa a 1/7.

Semana

Este valor dá-nos o número da semana a começar na primeira semana completa do ano fiscal. Neste exemplo, a primeira semana completa começa ao domingo, por isso a primeira semana completa no primeiro ano fiscal na tabela Calendário começa a 4/7/2010 e continua até à última semana completa na tabela Calendário. Embora este valor não seja muito útil na análise, é necessário calcular a utilização noutras fórmulas de períodos de 28 dias.

=INT([data]-40356)/7)

Vamos olhar para esta fórmula com mais atenção.

Primeiro, criamos uma fórmula que devolve valores da coluna Data como um inteiro, da seguinte forma:

=INT([data])

Pretendemos então procurar o primeiro domingo do primeiro ano fiscal. Vemos que se trata de 04/07/2010.

Coluna da semana

Agora, subtraia 40356 (que é o número inteiro de 27/6/2010, o último domingo do ano fiscal anterior) desse valor para obter o número de dias desde o início dos dias na nossa tabela Calendário, da seguinte forma:

=INT([data]-40356)

Em seguida, divida o resultado por 7 (dias numa semana), da seguinte forma:

=INT(([data]-40356)/7)

O resultado tem o isto:

Coluna da semana

Period

O período neste calendário personalizado contém 28 dias e começa sempre num domingo. Esta coluna irá devolver o número do período a começar com o primeiro domingo no primeiro ano fiscal.

=INT(([Semana]+3)/4)

Vamos olhar para esta fórmula com mais atenção.

Primeiro, criamos uma fórmula que devolve um valor da coluna Semana como um valor inteiro, da seguinte forma:

=INT([Semana])

Em seguida, adicione 3 a esse valor, desta forma:

=INT([Semana]+3)

Em seguida, divida o resultado por 4, desta forma:

=INT(([Semana]+3)/4)

O resultado tem o isto:

Coluna Período

Período Ano Fiscal

Este valor devolve o ano fiscal de um período.

=INT(([Período]+12)/13)+2008

Vamos olhar para esta fórmula com mais atenção.

Primeiro, criamos uma fórmula que devolve um valor do Período e adiciona 12:

= ([Período]+12)

O resultado é dividido por 13, uma vez que existem treze períodos de 28 dias no ano fiscal:

=(([Período]+12)/13)

Adicionamos 2010 porque este é o primeiro ano na tabela:

=(([Período]+12)/13)+2010

Por fim, utilizamos a função INT para remover qualquer fração do resultado e devolvemos um número inteiro quando dividido por 13, da mesma forma:

=INT(([Período]+12)/13)+2010

O resultado tem o isto:

Coluna de período de ano fiscal

Período no Ano Fiscal

Este valor devolve o número de período, 1 a 13, começando pelo primeiro Período completo (a começar ao domingo) em cada ano fiscal.

=SE(MOD([Período],13), MOD([Período],13),13)

Esta fórmula é um pouco mais complexa, pelo que vamos descrevê-la primeiro num idioma que melhor compreendemos. Esta fórmula indica que divida o valor de [Período] por 13 para obter o número de período (1-13) no ano. Se esse número for 0, então devolve 13.

Primeiro, criamos uma fórmula que devolve o resto do valor de Período por 13. Podemos utilizar a função MOD (funções matemáticas e trigonométricas) da mesma forma:

=MOD([Período],13)

Isto, na maioria dos casos, dá-nos o resultado que pretendemos, exceto em que o valor do Período é 0 porque essas datas não se insirem no primeiro ano fiscal, como nos primeiros cinco dias da nossa tabela de datas do Calendário de exemplo. Podemos resolver este problema com uma função SE. Se o nosso resultado for 0, devolvemos 13, desta forma:

=SE(MOD([Período],13),MOD([Período],13),13)

O resultado tem o isto:

Coluna de período no ano fiscal

Tabela Dinâmica de Exemplo

A imagem abaixo mostra uma tabela dinâmica com o campo SalesAmount da tabela de factos Vendas em VALORES e os campos PeriodFiscalYear e PeriodInFiscalYear da tabela de dimensão Data do calendário em LINHAS. SalesAmount é agregado para o contexto por ano fiscal e período de 28 dias no ano fiscal.

Tabela Dinâmica de exemplo para ano fiscal

Relações

Após criar uma tabela de datas no Modelo de Dados, para começar a procurar dados em tabelas dinâmicas e relatórios e para agregar os dados com base nas colunas na sua tabela de dimensão de data, tem de criar uma relação entre a tabela de factos com os seus dados de transação e a tabela de datas.

Uma vez que é necessário criar uma relação com base em datas, deve certificar-se de que cria essa relação entre colunas cujos valores são do tipo de dados datetime (Date).

Para cada valor de data na tabela de factos, a coluna de procura relacionada na tabela de datas tem de conter valores que correspondam. Por exemplo, uma linha (registo de transação) na tabela de factos Vendas com o valor 8/15/2012 12:00 na coluna ChaveData tem de ter um valor correspondente na coluna Data relacionada na tabela data (denominada Calendário). Esta é uma das razões mais importantes para pretender que a coluna de datas na tabela de datas contenha um intervalo contíguo de datas que inclua qualquer data possível na sua tabela de factos.

Relações na Vista de Diagrama

Nota: Embora a coluna de data em cada tabela tem de ter o mesmo tipo de dados (Data), o formato de cada coluna não é importante.

Nota: Se o Power Pivot não lhe permitir criar relações entre as duas tabelas, os campos de data poderão não armazenar a data e hora com o mesmo nível de precisão. Dependendo da formatação das colunas, os valores podem ter o mesmo aspas, mas podem ser armazenados de forma diferente. Leia mais sobre como trabalhar com o tempo.

Nota: Evite utilizar teclas de substituto inteiro nas relações. Quando importa dados a partir de uma origem de dados relacional, muitas vezes as colunas de data e hora são representadas por uma chave de substituto, que é uma coluna de número inteiro utilizada para representar uma data exclusiva. No Power Pivot, deve evitar criar relações utilizando teclas de data/hora inteiras e, em vez disso, utilizar colunas que contenham valores exclusivos com um tipo de dados de data. Apesar de a utilização de chaves de substituto ser considerada uma prática recomendada em armazéns de dados tradicionais, as chaves numéricas não são necessárias no Power Pivot e podem dificultar a agrupamento de valores nas tabelas dinâmicas por períodos de datas diferentes.

Se for apresentado um erro de incomparável tipo ao tentar criar uma relação, é provável que a coluna na tabela de factos não seja do tipo de dados Data. Isto pode acontecer quando o Power Pivot não consegue converter automaticamente um tipo de dados de data sem data (normalmente um tipo de dados de texto) num tipo de dados de data. Ainda pode utilizar a coluna na sua tabela de factos, mas terá de converter os dados com uma fórmula DAX numa nova coluna calculada. Consulte Converter datas de tipo de dados de texto num tipo de dados de data posteriormente no apêndice.

Relações múltiplas

Em alguns casos, poderá ser necessário criar múltiplas relações ou criar múltiplas tabelas de datas. Por exemplo, se existem múltiplos campos de data na tabela de factos Vendas, como DataDeData, DataDeDeVinha e DataDeVolvolção, todos podem ter relações com o campo Data na tabela de data do Calendário, mas apenas uma dessas pode ser uma relação ativa. Neste caso, uma vez que DateKey representa a data da transação e, por conseguinte, a data mais importante, isto serve melhor como a relação ativa. Os outros têm relações inativas.

A tabela dinâmica seguinte calcula o total de vendas por Ano Fiscal e Trimestre Fiscal. Uma medida denominada Total de Vendas, com a fórmula Total de Vendas:=SOMA([SalesAmount]), é colocada em VALORES e os campos Ano Fiscal eQuarde Fiscal da tabela de data Calendário são colocados em LINHAS.

Vendas totais pela Tabela Dinâmica de trimestre fiscal Lista de Campos da Tabela Dinâmica

Esta tabela dinâmica direta funciona corretamente porque queremos somar as nossas vendas totais até à data datransação na DateKey. A nossa medida Total de Vendas utiliza as datas em DateKey e é somada por ano fiscal e trimestre fiscal porque existe uma relação entre DateKey na tabela Vendas e a coluna Data na tabela Data do Calendário.

Relações inativas

Mas e se quiséssemos somar as nossas vendas totais não por data de transação, mas por data de lançamento? Precisamos de uma relação entre a coluna DataDeEdimento na tabela Vendas e a coluna Data na tabela Calendário. Se não criarmos essa relação, as nossas agregações são sempre baseadas na data da transação. No entanto, podemos ter várias relações, embora apenas uma possa estar ativa e porque a data de transação é a mais importante, obtemos a relação ativa com a tabela Calendário.

Neste caso, DataDeCesso tem uma relação inativa, pelo que qualquer fórmula de medida criada para agregar dados com base em datas de expedição tem de especificar a relação inativa utilizando a função USERELATIONSHIP.

Por exemplo, uma vez que existe uma relação inativa entre a coluna DataDePaís na tabela Vendas e a coluna Data na tabela Calendário, podemos criar uma medida que soma o total de vendas por data de lançamento. Utilizamos uma fórmula como esta para especificar a relação a utilizar:

Total de Vendas por Data de Expedição:=CALCULATE(SOMA(Vendas[MontanteDas Vendas]), USERELATIONSHIP(Vendas[DataDeTransceção], Calendário[Data]))

Esta fórmula só indica: Calcular uma soma para SalesAmount, mas filtrar utilizando a relação entre a coluna DataDeTransceção na tabela Vendas e a coluna Data na tabela Calendário.

Agora, se criarmos uma tabela dinâmica e colocarmos o total de Vendas por Data de Lançamento em VALORES e Ano Fiscal e Trimestre Fiscal em LINHAS, vemos o mesmo Total Geral, mas todos os outros montantes de somas do ano fiscal e do trimestre fiscal são diferentes porque são baseados na data de expedição e não na data de transação.

Vendas totais pela Tabela Dinâmicas de data de envio Lista de Campos da Tabela Dinâmica

A utilização de relações inativas permite-lhe utilizar apenas uma tabela de datas, mas exige que as medidas (como Total de Vendas por Data de Lançamento) referenciam a relação inativa na sua fórmula. Existe outra alternativa, ou seja, utilizar várias tabelas de datas.

Múltiplas tabelas de datas

Outra forma de trabalhar com múltiplas colunas de data na sua tabela de factos é criar múltiplas tabelas de datas e criar relações ativas separadas entre as mesmas. Voltemos ao exemplo da tabela Vendas. Temos três colunas com datas em que podemos agregar dados:

  • Uma DateKey com a data de venda de cada transação.

  • Uma DataDePaís, com a data e hora em que os itens vendidos foram enviados para o cliente.

  • Uma DataDeVolvida – com a data e hora em que um ou mais item devolvido foi recebido.

Lembre-se de que o campo DateKey com a data de transação é mais importante. Iremos fazer a maior parte das nossas agregações com base nestas datas, pelo que iremos querer, com certeza, uma relação entre a mesma e a coluna Data na tabela Calendário. Se não quisermos criar relações inativas entre DataDeVagem e DataDeVolvido e o campo Data na tabela Calendário, assim que requerem fórmulas de medida especiais, podemos criar tabelas de datas adicionais para a data de entrega e a data de devolução. Podemos então criar relações ativas entre elas.

Relações com várias tabelas de data na Vista de Diagrama

Neste exemplo, criámos outra tabela de datas denominada ShipCalendar. Isto também significa criar colunas de data adicionais e, uma vez que estas colunas de datas estão numa tabela de datas diferente, queremos dar-lhes nomes que as diferenciam das mesmas colunas na tabela Calendário. Por exemplo, criámos colunas com o nome AnoDeMeu,Month, ShipQuarter, entre outros.

Se criarmos a nossa Tabela Dinâmica e colocarmos a nossa medida Total de Vendas em VALORES e ShipFiscalYear e ShipFiscalQuarter em LINHAS, vemos os mesmos resultados que vimos quando criamos uma relação inativa e um campo calculado Total de Vendas Por Data de Enviado especial.

Vendas totais por Tabela Dinâmica de data de envio com calendário de envio Lista de Campo de Tabela Dinâmica

Cada uma destas abordagens exige uma atenção cuidada. Ao utilizar múltiplas relações com uma única tabela de data, poderá ter de criar medidas especiais que transitem relações inativas utilizando a função USERELATIONSHIP. Por outro lado, criar múltiplas tabelas de data pode ser confuso numa Lista de Campos e, uma vez que tem mais tabelas no Modelo de Dados, irá precisar de mais memória. Experimente aquilo que funciona melhor para si.

Propriedade Tabela de Datas

A propriedade Tabela de Datas define os metadados necessários para que Time-Intelligence funções como TOTALYTD, PREVIOUSMONTH e DATESBETWEEN funcionem corretamente. Quando um cálculo é executado com uma destas funções, o motor de fórmulas do Power Pivot sabe onde ir para obter as datas de que necessita.

Aviso: Se esta propriedade não estiver definida, as medidas que utilizam funções daX Time-Intelligence podem não devolver resultados corretos.

Quando define a propriedade Tabela de Datas, especifica uma tabela de datas e uma coluna de data do tipo de dados Data (datetime).

Caixa de diálogo Marcar Como Tabela de Data

Como: Definir a propriedade Tabela de Datas

  1. Na janela PowerPivot, selecione a tabela Calendário.

  2. No separador Estrutura, clique em Marcar como Tabela de Datas.

  3. Na caixa de diálogo Marcar como Tabela de Datas, selecione uma coluna com valores exclusivos e o tipo de dados Data.

Trabalhar com o tempo

Todos os valores de data com um tipo de dados Data Excel ou SQL Server são realmente um número. Incluído nesse número são dígitos que referem uma hora. Em muitos casos, esse tempo para cada linha é a meia-noite. Por exemplo, se um campo DateTimeKey numa tabela de factos Vendas tiver valores como 19/10/2010 00:00, isto significa que os valores estão até ao nível de precisão do dia. Se os valores do campo DateTimeKey incluíram uma hora, por exemplo 19/10/2010 8:44:00, isto significa que os valores estão ao nível de precisão dos minutos. Os valores também podem ser para a precisão do nível de hora ou até mesmo para os segundos de precisão. O nível de precisão no valor de tempo terá um impacto significativo na forma como cria a sua tabela de datas e nas relações entre ela e a sua tabela de factos.

Tem de determinar se irá agregar os seus dados para um nível de precisão diariamente ou para um nível de tempo de precisão. Por outras palavras, poderá querer utilizar colunas na sua tabela de datas, como Manhã, Tarde ou Hora como campos de data/hora nas áreas Linha, Coluna ou Filtro de uma Tabela Dinâmica.

Nota: Os dias são a unidade de tempo mais pequena com que as funções da Inspeção de Tempo do DAX podem trabalhar. Se não precisar de trabalhar com valores de tempo, deve reduzir a precisão dos seus dados para utilizar dias como unidade mínima.

Se quiser agregar os seus dados ao nível do tempo, a sua tabela de datas precisará de uma coluna de datas com a hora incluída. Na verdade, precisará de uma coluna de datas com uma linha para cada hora ou talvez até a cada minuto, de cada dia, para todos os anos no intervalo de datas. Isto deve-se ao facto de, para criar uma relação entre a coluna DateTimeKey na tabela de factos e a coluna data na tabela de datas, tem de ter valores a corresponder. Como pode imaginar, se incluir muitos anos, isto pode tornar uma tabela de datas muito grande.

Na maioria dos casos, só quer agregar os seus dados ao dia. Por outras palavras, irá utilizar colunas como Ano, Mês, Semana ou Dia da Semana como campos nas áreas Linha, Coluna ou Filtro de uma Tabela Dinâmica. Neste caso, a coluna de datas na tabela de datas só precisa de conter uma linha para cada dia num ano, como descrito anteriormente.

Se a sua coluna de data incluir um nível de precisão de tempo, mas irá agregar apenas um nível dia, para criar a relação entre a tabela de factos e a tabela de datas, poderá ter de modificar a sua tabela de factos criando uma nova coluna que trunca os valores na coluna de datas para um valor do dia. Por outras palavras, converta um valor como 19/10/2010 8:44:00para19/10/2010 00:00:00. Em seguida, pode criar a relação entre esta nova coluna e a coluna de data na tabela de datas porque os valores correspondem.

Vamos ver um exemplo. Esta imagem mostra uma coluna DateTimeKey na tabela de factos Vendas. Todas as agregações de dados nesta tabela têm de estar apenas ao nível do dia, utilizando colunas na tabela de datas do Calendário como Ano, Mês, Trimestre, etc. A hora incluída no valor não é relevante, apenas a data real.

Coluna ChaveDeDataHora

Uma vez que não precisamos de analisar estes dados ao nível da hora, não precisamos da coluna Data na tabela Data do Calendário para incluir uma linha para cada hora e todos os minutos de cada dia em cada ano. Então, a coluna Data na nossa tabela de datas tem o seguinte aspas:

Coluna de data no Power Pivot

Para criar uma relação entre a coluna DateTimeKey na tabela Vendas e a coluna Data na tabela Calendário, podemos criar uma nova coluna calculada na tabela de factos Vendas e utilizar a função TRUNQUE PARA truncar o valor de data e hora na coluna DateTimeKey num valor de data que corresponda aos valores na coluna Data na tabela Calendário. A nossa fórmula tem o seguinte asqueto:

=TRUNCO([DateTimeKey],0)

Isto dá-nos uma nova coluna (denominada DateKey) com a data da coluna DateTimeKey e uma hora de 00:00:00 para cada linha:

Coluna ChaveDeData

Agora podemos criar uma relação entre esta nova coluna (DateKey) e a coluna Data na tabela Calendário.

Da mesma forma, podemos criar uma coluna calculada na tabela Vendas que reduz a precisão de tempo na coluna DateTimeKey para o nível de precisão de hora. Neste caso, a função TRUNQUE não funcionará, mas podemos utilizar outras funções DAX de Data e Hora para extrair e concatenar um novo valor para um nível de precisão de hora. Podemos utilizar uma fórmula como esta:

= DATA (ANO([DateTimeKey]), MÊS([DateTimeKey]), DIA([DateTimeKey]) ) + HORA ([DateTimeKey]), 0, 0)

A nossa nova coluna tem o mesmo aspas:

Coluna ChaveDeDataHora

Desde que a nossa coluna Data na tabela de datas tenha valores para o nível de precisão da hora, podemos criar uma relação entre os mesmos.

Tornar as datas mais usáveis

Muitas das colunas de data que cria na sua tabela de datas são necessárias para outros campos, mas na verdade não são muito úteis na análise. Por exemplo, o campo DateKey na tabela Vendas a que fizemos referência e apresentados ao longo deste artigo é importante porque, para cada transação, essa transação é registada como ocorrendo numa data e hora específicas. No entanto, a partir de um ponto de vista de análise e de relatório, não é muito útil porque não o podemos utilizar como uma linha, coluna ou campo de filtro numa Tabela Dinâmica ou relatório.

Do mesmo modo, no nosso exemplo, a coluna Data na tabela Calendário é bastante útil e, na verdade, crítica, mas não pode utiltá-la como uma dimensão numa Tabela Dinâmica.

Para manter as tabelas e colunas o mais útil possível e facilitar Power View navegação nas listas de campos da Tabela Dinâmica ou de um relatório, é importante ocultar colunas desnecessárias das ferramentas de cliente. Também poderá querer ocultar determinadas tabelas. A tabela Feriados apresentada anteriormente contém datas de feriados que são importantes para determinadas colunas na tabela Calendário, mas não pode utilizar as colunas Data e Feriados na tabela Feriados em si como campos numa tabela dinâmica. Mais uma vez, para facilitar a navegação nas Listas de Campos, pode ocultar toda a tabela Feriados.

Outro aspeto importante do trabalho com datas é as convenções de no nome. Pode dar o nome que quiser às tabelas e colunas no Power Pivot. Tenha em atenção, especialmente se quiser partilhar o seu livro com outros utilizadores, uma boa convenção de notificações facilita a identificação de tabelas e datas, não só nas Listas de Campos, mas também nas fórmulas Power Pivot e DAX.

Depois de ter uma tabela de datas no Seu Modelo de Dados, pode começar a criar medidas que o ajudarão a tirar o máximo partido dos seus dados. Alguns podem ser tão simples como somar totais de vendas do ano atual e outros podem ser mais complexos, em que precisa de filtrar um intervalo de datas exclusivos específico. Saiba mais em Medidas no Power Pivot e Funções de Informações de Tempo.

Apêndice

Converter datas de tipo de dados de texto num tipo de dados de data

Em alguns casos, uma tabela de factos com dados de transações pode conter datas de tipo de dados de texto. Ou seja, uma data que aparece como 12-12-04T11:47:09 não é, de todo, uma data ou não é, pelo menos, o tipo de data que o Power Pivot consegue compreender. Na verdade, é apenas texto que lê como uma data. Para criar uma relação entre uma coluna de data na tabela de factos e uma coluna de data numa tabela de datas, ambas as colunas têm de ser do tipo de dados Data.

Normalmente, quando tenta alterar o tipo de dados de uma coluna de datas que são do tipo de dados de texto para um tipo de dados de data, o Power Pivot consegue interpretar as datas e convertê-las automaticamente num verdadeiro tipo de dados de data. Se o Power Pivot não conseguir fazer uma conversão de tipo de dados, receberá um erro de tipo de não lógica.

No entanto, ainda pode converter as datas num verdadeiro tipo de dados de data. Pode criar uma nova coluna calculada e utilizar uma fórmula DAX para analisar o ano, mês, dia, hora, etc. a partir das cadeias de texto e, em seguida, concatená-la novamente em conjunto de uma forma que o Power Pivot possa ler como uma data verdadeira.

Neste exemplo, importámos uma tabela de factos com o nome Vendas para o Power Pivot. Contém uma coluna denominada DateTime. Os valores são apresentados da forma que é apresentado:

Coluna DataHora numa tabela de factos.

Se olharmos para o Tipo de Dados no separador Base do grupo Formatação do Power Pivot, vemos que é o tipo de dados Texto.

Tipo de dados no friso

Não é possível criar uma relação entre a coluna DateTime e a coluna Data na nossa tabela de datas porque os tipos de dados não correspondem. Se tentarmos alterar o tipo de dados para Data,é apresentado um erro de tipo de incomparável:

Erro de tipo incompatível

Neste caso, o Power Pivot não conseguiu converter o tipo de dados de texto para data. Ainda podemos utilizar esta coluna, mas para torná-la um verdadeiro tipo de dados de data, precisamos de criar uma nova coluna que a analisar e criar de novo num valor que o Power Pivot possa criar um tipo de dados Data.

Lembre-se de que, na secção Trabalhar com Tempo anteriormente neste artigo; a menos que seja necessário que a sua análise se transforme num nível de precisão de hora do dia, deve converter as datas na sua tabela de factos num nível de precisão diariamente. Neste caso, queremos que os valores na nossa nova coluna sejam ao nível de precisão do dia (excluindo a hora). Podemos converter os valores na coluna DateTime num tipo de dados de data e remover o nível de precisão de hora com a seguinte fórmula:

=DATA(ESQUERDA([DateTime],4), SETA.SE.S([DateTime],6,2), SETA.SE.S([DateTime],9,2))

Isto dá-nos uma nova coluna (neste caso, denominada Data). O Power Pivot deteta até os valores a ser datas e define o tipo de dados automaticamente como Data.

Coluna Data numa tabela de factos

Se quisermos preservar o nível de tempo de precisão, basta expandir a fórmula para incluir as horas, minutos e segundos.

=DATA(ESQUERDA([DateTime],4), SETA.SE.S([DateTime],6,2), SETA.SE.S([DateTime],9,2)) +

TEMPO(SETA.SE.S([DateTime],12,2), SETA.SE.S([DataData],15,2), SETA.SE.S([DataData],18,2))

Agora que temos uma coluna Data do tipo de dados Data, podemos criar uma relação entre a mesma e uma coluna de data numa data.

Recursos adicionais

Datas no Power Pivot

Cálculos no PowerPivot

Guia de Introdução: Noções Básicas sobre a linguagem DAX em 30 Minutos

Referência de Expressões de Análise de Dados

Centro de Recursos DAX

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.

Estas informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?
Ao selecionar submeter, o seu feedback será utilizado para melhorar os produtos e serviços da Microsoft. O seu administrador de TI poderá recolher estes dados. Declaração de Privacidade.

Obrigado pelo seu feedback!

×