Pular para o conteúdo

MESMO_PERIODO_ANO_ANTERIOR, MES_ANTERIOR, DESLOCAR_PERIODO, PERIODO_PARALELO, DATAS_NO_PERIODO

Aula 9 de 139 minOperarAtualizada em 2026-10-04

Vídeo em produção

A gravação desta aula está no lote de produção. O objetivo, o exercício e a documentação já valem. Duração-alvo: 9 min.

Objetivo: Comparar períodos; média móvel 12m

Selo de estado: Preview (teto atual do produto) · Curso ACD-320 — Fórmulas pt-BR: de SOMA a CALCULAR · Aula 9 de 13 · Atualizado em 2026-10-04.

Objetivo#

Ao final desta aula você vai comparar períodos; média móvel 12m.

Vídeo#

Identificador no manifesto: acd-320-09-time-intelligence-comparacoes · duração-alvo 9 min · tela do produto: /dashboards.

Roteiro:

#CapítuloMinutagem-alvoRota
1Abertura — comparar com o passado sem reescrever a medida00:00–00:50/dashboards
2MESMO_PERIODO_ANO_ANTERIOR e a Variação %00:50–02:50/dashboards (biblioteca de medidas)
3MES_ANTERIOR × intervalo deslocado — a diferença que confunde02:50–04:30/dashboards (editor de fórmulas)
4DESLOCAR_PERIODO × PERIODO_PARALELO — N unidades × N períodos inteiros (e as duas famílias de unidade)04:30–07:00/dashboards (editor de fórmulas)
5DATAS_NO_PERIODO — média móvel de 12 meses07:00–08:30/dashboards (biblioteca de medidas)
6Encerramento — "faça você mesmo"08:30–09:00/dashboards

Conteúdo#

A aula 8 acumulou dentro do período corrente; esta aula compara o período corrente com outro período — ano anterior, mês anterior, N períodos atrás, ou uma janela móvel de vários meses. Todas as funções aqui reavaliam a medida sobre as linhas do visual que caem numa janela diferente — nenhuma delas exige tabela de datas marcada, e todas respeitam calendário fiscal/4-4-5 quando configurado.

MESMO_PERIODO_ANO_ANTERIOR — o comparativo mais comum

código
MESMO_PERIODO_ANO_ANTERIOR(expr; arg2)

Desloca o intervalo do grupo atual um ano e reagrega. Sem dado no período deslocado, devolve vazio (nunca zero — aula 1).

formula
MESMO_PERIODO_ANO_ANTERIOR(MEDIDA('Receita'); data)

Com essa medida na biblioteca como Receita AA, a variação percentual fica simples:

formula
DIVIDIR(MEDIDA('Receita') - MEDIDA('Receita AA'); MEDIDA('Receita AA'))

MES_ANTERIOR — o mês anterior INTEIRO, não o grupo deslocado

código
MES_ANTERIOR(expr; arg2)

A observação que mais confunde quem migra do DAX: MES_ANTERIOR não é "o mesmo intervalo de dias, um mês atrás" — é o mês anterior completo, do dia 1 ao último dia. Se o grupo atual é "até dia 10 de março", MES_ANTERIOR ainda compara contra fevereiro inteiro, não contra "até dia 10 de fevereiro".

formula
MES_ANTERIOR(MEDIDA('Receita'); data)

Alias: previousmonth. As variantes ANO_ANTERIOR, TRIMESTRE_ANTERIOR, PROXIMO_MES, PROXIMO_ANO seguem a mesma regra do período inteiro — úteis para comparar com meta ou previsão já lançada no período seguinte.

DESLOCAR_PERIODO — desloca N unidades, com a granularidade que você escolher

código
DESLOCAR_PERIODO(expr; arg2; arg3; [arg4])

DIFERE do DAX: o DATEADD do DAX pede datas contíguas numa tabela marcada; aqui opera sobre as linhas do visual, com unidades "d" (dia), "m" (mês) ou "a" (ano).

formula
DESLOCAR_PERIODO(MEDIDA('Receita'); data; -1; "m")

N negativo volta no tempo; positivo avança.

PERIODO_PARALELO — o MES_ANTERIOR com o N que você escolhe

código
PERIODO_PARALELO(expr; arg2; arg3; [arg4])

Mesma ideia do MES_ANTERIOR/ANO_ANTERIOR (período inteiro, não o intervalo deslocado), mas com o número de períodos configurável.

formula
PERIODO_PARALELO(MEDIDA('Receita'); data; -1; "MES")

DATAS_NO_PERIODO — a janela móvel (média/soma de N meses)

código
DATAS_NO_PERIODO(coluna; arg2; arg3; [arg4])

DIFERE do DAX (DATESINPERIOD): usada dentro de CALCULAR, define uma janela de N períodos a partir de uma data de referência — é o jeito de montar "acumulado móvel de 12 meses" ou "últimos 7 dias".

formula
CALCULAR(SOMA(valor); DATAS_NO_PERIODO(data; ULTIMA_DATA(data); -12; "MES"))

Essa fórmula lê: "a partir da última data do grupo, volte 12 meses, e some valor nessa janela inteira" — a base de uma média móvel de 12 meses quando dividida por 12 (ou por ACUMULADO/contagem de meses, aula 11).

Duas famílias de unidade — não misture

Um detalhe de sintaxe que pega quem já decorou uma das duas funções: DESLOCAR_PERIODO aceita unidades curtas e minúsculas — "d", "m", "a" (dia/mês/ano) — enquanto PERIODO_PARALELO e DATAS_NO_PERIODO exigem as palavras "DIA", "MES", "TRI" ou "ANO". Pedir dia em PERIODO_PARALELO não é silenciosamente aceito: o motor recusa e já indica o caminho certo.

formula-errada
PERIODO_PARALELO(MEDIDA('Receita'); data; -7; "d")

Erro: "PERIODO_PARALELO: a unidade é 'MES', 'TRI' ou 'ANO' — para dias use DESLOCAR_PERIODO". Para deslocar por dias, troque de função: DESLOCAR_PERIODO(MEDIDA('Receita'); data; -7; "d").

Referência das cinco funções (+ variantes de período inteiro)

FunçãoUnidade aceitaDesloca
MESMO_PERIODO_ANO_ANTERIOR— (sempre 1 ano)o intervalo exato do grupo
MES_ANTERIOR / ANO_ANTERIOR / TRIMESTRE_ANTERIOR— (fixo por nome)o período inteiro anterior
DESLOCAR_PERIODO"d", "m", "a"N unidades, intervalo exato
PERIODO_PARALELO"MES", "TRI", "ANO"N períodos, período inteiro
DATAS_NO_PERIODO"DIA", "MES", "TRI", "ANO"janela móvel (dentro de CALCULAR)

Erros comuns

  • Confundir MESMO_PERIODO_ANO_ANTERIOR (desloca o intervalo exato do grupo) com ANO_ANTERIOR (sempre o ano inteiro) — em visual por mês dão o mesmo resultado, mas em visual por dia ou por intervalo customizado, não.
  • Esperar que MES_ANTERIOR recorte "até o mesmo dia do mês anterior" — ele sempre devolve o mês anterior inteiro.
  • Montar DATAS_NO_PERIODO sem ULTIMA_DATA/PRIMEIRA_DATA como referência e acabar fixando uma data literal que não acompanha o filtro do visual.
  • Pedir "d" em PERIODO_PARALELO/DATAS_NO_PERIODO — essas duas só aceitam a palavra completa, e dia só é aceito em DATAS_NO_PERIODO, nunca em PERIODO_PARALELO.

Estado da capacidade

Time intelligence sobre calendário configurável (C06.4) está em Preview, com as mesmas garantias da aula 8.

Faça você mesmo#

No workspace de treino Aurora Varejo (abra /dashboards no console):

  1. Crie Receita AA com MESMO_PERIODO_ANO_ANTERIOR(MEDIDA('Receita'); data).
  2. Crie Variação % com DIVIDIR(MEDIDA('Receita') - MEDIDA('Receita AA'); MEDIDA('Receita AA')).
  3. Crie Receita 12m com CALCULAR(SOMA(valor); DATAS_NO_PERIODO(data; ULTIMA_DATA(data); -12; "MES")) e divida por 12 para a média móvel.
  4. Numa linha do tempo mensal, confirme que Variação % fica vazia (não zero) nos meses sem ano anterior.

Você terminou quando Receita AA e Variação % existirem na biblioteca de medidas e a média móvel de 12 meses aparecer suave (sem dente de serra) na linha do tempo.

Checagem rápida#

Três perguntas no final da aula, corrigidas no servidor. A aula só conta como concluída depois da checagem.

Documentação relacionada#

Capacidades ensinadas#

C06.4 — o selo exibido na aula é sempre o estado mais conservador entre as capacidades citadas; nada aqui é "GA".

Carregando seu progresso…