DAX (Data Analysis Expressions) tem 35 funções especificamente para agregar e comparar dados ao longo do tempo. Ao contrário das funções de data e hora do DAX, as funções de Tempo não têm nada de semelhante no Excel. Isto deve-se ao facto de as funções de análise de tempo trabalharem com dados que estão em constante mudança, dependendo do contexto que selecionar nas tabelas dinâmicas e Power View visualizações.
Para trabalhar com funções de análise de tempo, precisa de ter uma tabela de datas incluída no seu Modelo de Dados. A tabela de datas tem de incluir uma coluna com uma linha para todos os dias de cada ano incluída nos seus dados. Esta coluna é considerada a coluna Data (embora possa ter o nome que quiser). Muitas funções de informações de tempo requerem a coluna de data para calcular de acordo com as datas que seleciona como campos num relatório. Por exemplo, se tiver uma medida que calcula um saldo final do trimestre de fecho utilizando a função FECHARBALANCEQTR, para que o Power Pivot saiba quando é o final do trimestre, tem de referenciar a coluna de datas na tabela de datas para saber quando é que o trimestre começa e termina. Para saber mais sobre tabelas de datas, veja Compreender e criar tabelas de datas no Power Pivot no Excel.
Funções
Funções que devolvem uma única data
As funções nesta categoria devolvem uma única data. Em seguida, o resultado pode ser utilizado como argumentos para outras funções.
As duas primeiras funções nesta categoria devolvem a primeira ou última data no Date_Column no contexto atual. Isto pode ser útil quando pretender encontrar a primeira ou última data na qual efetuou uma transação de um determinado tipo. Estas funções só aceitam um argumento, o nome da coluna de datas na sua tabela de datas.
As duas funções que se seguem nesta categoria localmente a primeira ou última data (ou qualquer outro valor de coluna, também) em que uma expressão tem um valor que não está em branco. Isto é mais frequentemente utilizado em situações como o inventário, onde pretende obter o último montante de inventário e não sabe quando foi feito o último inventário.
-
FIRSTNONBLANK (Date_Column, Expressão)
-
LASTNONBLANK (Date_Column, Expressão)
Outras seis funções que devolvem uma única data são as funções que devolvem a primeira ou última data de um mês, trimestre ou ano no contexto atual do cálculo.
-
STARTOFMONTH (Date_Column)
-
STARTOFQUARTER (Date_Column)
-
STARTOFYEAR (Date_Column [,YE_Date])
-
ENDOFMONTH (Date_Column)
-
ENDOFQUARTER (Date_Column)
-
ANO.FINAL (Date_Column [,YE_Date])
Funções que devolvem uma tabela de datas
Existem dezasseis funções de informações de tempo que devolvem uma tabela de datas. Na maioria das vezes, estas funções serão utilizadas como um argumento DefinirFiltro para a função CALCULATE. Tal como todas as funções de inteligência de tempo no DAX, cada função tem uma coluna de data como um dos seus argumentos.
As primeiras oito funções nesta categoria começam com uma coluna de data num contexto atual. Por exemplo, se utilizar uma medida numa Tabela Dinâmica, poderá haver um mês ou ano nas etiquetas de coluna ou etiquetas de linha. O efeito líquido é a coluna de data filtrada para incluir apenas as datas do contexto atual. A partir do contexto atual, estas oito funções calculam depois o dia anterior (ou seguinte) dia, mês, trimestre ou ano e devolvem essas datas sob a forma de uma única tabela de colunas. As funções "anteriores" funcionam em direção à primeira data no contexto atual e as funções "seguinte" avançam da última data no contexto atual.
-
DIA ANTERIOR (Date_Column)
-
MÊS ANTERIOR (Date_Column)
-
PREVIOUSQUARTER (Date_Column)
-
ANO ANTERIOR (Date_Column [,YE_Date])
-
DIA SEGUINTE (Date_Column)
-
NEXTMONTH (Date_Column)
-
NEXTQUARTER (Date_Column)
-
PRÓXIMOANO (Date_Column [,YE_Date])
As quatro funções que se seguem nesta categoria são semelhantes, mas, em vez de calcular um período anterior (ou seguinte), calculam o conjunto de datas no período que é "mês-a-data" (ou trimestral para data, ano a data ou no mesmo período do ano anterior). Todas estas funções efetuam os cálculos com a última data no contexto atual. Tenha em atenção que SAMEPERIODLASTYEAR requer que o contexto atual contenha um conjunto contíguo de datas. Se o contexto atual não for um conjunto contíguo de datas, a política SAMEPERIODLASTYEAR irá devolver um erro.
-
DATESMTD (Date_Column)
-
DATESQTD (Date_Column)
-
DATESYTD (Date_Column [,YE_Date])
-
SAMEPERIODLASTYEAR (Date_Column)
As últimas quatro funções nesta categoria são um pouco mais complexas e também um pouco mais poderosas. Estas funções são utilizadas para mudar do conjunto de datas que estão no contexto atual para um novo conjunto de datas.
-
DATEADD (Date_Column, Number_of_Intervals, Intervalo)
-
DATESBETWEEN (Date_Column, Start_Date, End_Date)
-
DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, intervalo)
-
PARALLELPERIOD (Date_Column, Number_of_Intervals, Intervalo)
DATESBETWEEN calcula o conjunto de datas entre a data de início e a data de fim especificadas. As três funções restantes deslocam algum número de intervalos de tempo do contexto atual. O intervalo pode ser dia, mês, trimestre ou ano. Estas funções facilitam a deslocação do intervalo de tempo de um cálculo de uma das seguintes maneiras:
-
Recuar dois anos
-
Recuar um mês
-
Avançar três trimestres
-
Recuar 14 dias
-
Avançar 28 dias
Em cada caso, só tem de especificar o intervalo e quantos desses intervalos devem ser alterados. Um intervalo positivo avançará no tempo, enquanto um intervalo negativo irá mover-se para trás no tempo. O intervalo em si é especificado por uma palavra-chave de DIA, MÊS, TRIMESTRE ou ANO. Estas palavras-chave não são cadeias, pelo que não devem estar entre aspas.
Funções que avaliam expressões ao longo de um período de tempo
Esta categoria de funções avalia uma expressão ao longo de um período de tempo especificado. Pode fazer o mesmo com a função CALCULATE e outras funções de informações de tempo. Por exemplo:
= TOTALMTD (Expressão, Date_Column [, FiltroDeFina])
é exatamente o mesmo que:
= CALCULATE (Expressão, DATASMTD (Date_Column)[, DefinirFiltro])
No entanto, é mais fácil utilizar estas funções de tempo quando são um bom ajuste para o problema que tem de ser resolvido:
-
TOTALMTD (Expressão, Date_Column [, FiltroDeFina])
-
TOTALQTD (Expressão, Date_Column [, FiltroDeFina])
-
TOTALYTD (Expressão, Date_Column [, FiltroDeFina] [,YE_Date]) *
Também nesta categoria estão um grupo de funções que calculam os saldos de abertura e de fecho. Existem determinados conceitos que deve compreender com estas funções específicas. Em primeiro lugar, como pode achar óbvio, o saldo de abertura de qualquer período é o mesmo que o saldo de fecho do período anterior. O saldo de fecho inclui todos os dados até ao final do período, enquanto o saldo de abertura não inclui dados do período atual.
Estas funções devolvem sempre o valor de uma expressão avaliada para um ponto específico no tempo. O ponto no tempo que nos interessa é sempre o último valor de data possível num período de calendário. O saldo de abertura baseia-se na última data do período anterior, enquanto o saldo de fecho é baseado na última data do período atual. O período atual é sempre determinado pela última data no contexto da data atual.
-
OPENINGBALANCEMONTH (Expressão, Date_Column [,SetFilter])
-
OPENINGBALANCEQUARTER Trimestre (Expressão, Date_Column [,SetFilter])
-
OPENINGBALANCEYEAR (Expressão, Date_Column [,SetFilter] [,YE_Date])
-
CLOSINGBALANCEMONTH (Expressão, Date_Column [,SetFilter])
-
CLOSINGBALANCEQUARTER (Expressão, Date_Column [,SetFilter])
-
CLOSINGBALANCEYEAR (Expressão, Date_Column [,SetFilter] [,YE_Date])
Recursos adicionais
Artigos: Compreender e criar tabelas de data no Power Pivot no Excel
Referência: Referência de Funções do DAXOffice.com
Exemplos: Análise e Modelação de Dados de Lucros e Perdas PowerPivot Microsoft Excel