Selo de estado:
Preview(teto atual do produto) · Curso ACD-320 — Fórmulas pt-BR: de SOMA a CALCULAR · Aula 8 de 13 · Atualizado em 2026-10-04.
Objetivo#
Ao final desta aula você vai criar YTD/MTD sobre calendário fiscal.
Vídeo#
Identificador no manifesto: acd-320-08-time-intelligence-acumulados · duração-alvo 8 min · tela do produto: /dashboards.
Roteiro:
| # | Capítulo | Minutagem-alvo | Rota |
|---|---|---|---|
| 1 | Abertura — inteligência de tempo é contexto de filtro sobre datas | 00:00–00:50 | /dashboards |
| 2 | ACUM_ANO (YTD) numa linha do tempo mensal | 00:50–02:40 | /dashboards (biblioteca de medidas) |
| 3 | ACUM_TRI e ACUM_MES — a mesma ideia, janela menor | 02:40–03:50 | /dashboards (editor de fórmulas) |
| 4 | PRIMEIRA_DATA / ULTIMA_DATA do grupo | 03:50–05:00 | /dashboards (editor de fórmulas) |
| 5 | INICIO_MES/FIM_MES/INICIO_ANO/FIM_ANO e o calendário fiscal | 05:00–07:00 | /dashboards (configuração do calendário) |
| 6 | Encerramento — "faça você mesmo" | 07:00–08:00 | /dashboards |
Conteúdo#
Inteligência de tempo não é mágica: são funções que reescrevem o contexto de filtro de datas (aula 5) antes de reavaliar a medida — e todas elas exigem uma coluna de data no grupo atual, ligada ao calendário do modelo.
ACUM_ANO — o YTD
ACUM_ANO(expr; arg2)DIFERE do DAX: o TOTALYTD do DAX exige uma tabela de datas marcada no modelo tabular; aqui ACUM_ANO reavalia a medida sobre as linhas do visual, sem exigir "marcar" nada — e já nasce com suporte a calendário fiscal/4-4-5: reinicia no início do ano do calendário configurado (janeiro no civil, abril num fiscal abr–mar).
ACUM_ANO(MEDIDA('Receita'); data)Num visual por mês, o acumulado sobe dentro do ano e zera na virada — exatamente o comportamento esperado de um YTD.
ACUM_TRI e ACUM_MES — a mesma função, janela menor
ACUM_TRI(expr; arg2)
ACUM_MES(expr; arg2)ACUM_TRI(MEDIDA('Receita'); data)ACUM_MES(MEDIDA('Receita'); data)Aliases: totalqtd/qtd e totalmtd/mtd. A mesma observação do ACUM_ANO vale para as duas: operam sobre as linhas do visual, sem tabela de datas marcada, e respeitam o calendário fiscal quando configurado.
PRIMEIRA_DATA e ULTIMA_DATA — a menor e a maior data do grupo
PRIMEIRA_DATA(coluna)
ULTIMA_DATA(coluna)DIFEREM do DAX: FIRSTDATE/LASTDATE no DAX devolvem uma tabela de uma coluna; aqui devolvem a data como um valor escalar direto.
PRIMEIRA_DATA(data)ULTIMA_DATA(data)São a base de janelas móveis (DATAS_NO_PERIODO, aula 9) e de SALDO_FINAL/SALDO_INICIAL (aula 10): "o último dia com lançamento" só é calculável porque ULTIMA_DATA devolve um valor que outra função consegue usar.
INICIO_MES, FIM_MES, INICIO_ANO, FIM_ANO — as bordas do período
INICIO_MES(coluna)
FIM_MES(coluna)
INICIO_ANO(coluna)
FIM_ANO(coluna)Também diferem do DAX pelo mesmo motivo (STARTOFMONTH/ENDOFMONTH/STARTOFYEAR/ENDOFYEAR devolvem tabela no DAX, aqui devolvem data escalar) e também respeitam o calendário fiscal/4-4-5 configurado no modelo — "início do ano" não é sempre 1º de janeiro se o workspace usa ano fiscal.
INICIO_MES(data)FIM_MES(data)INICIO_ANO(data)FIM_ANO(data)Essas quatro funções raramente aparecem soltas numa medida — elas servem de referência para outras funções. ENTRE_DATAS (aula 9 mostra DATAS_NO_PERIODO, da mesma família) aceita exatamente uma data de início e uma de fim: INICIO_MES/FIM_MES são o jeito certo de produzir essas duas pontas sem escrever uma data fixa, que ficaria errada no mês seguinte.
Calendário fiscal/4-4-5: o que muda por baixo
Todas as nove funções desta aula aceitam um modelo com calendário fiscal (ano começando em qualquer mês, inclusive esquema 4-4-5) sem precisar de uma fórmula diferente. Sem calendário fiscal configurado, elas se comportam de forma idêntica, byte a byte, ao calendário civil — é um guard-rail de regressão: ativar o fiscal não muda o resultado de quem nunca precisou dele. Quando o workspace configura, por exemplo, ano fiscal começando em abril, INICIO_ANO(data) passa a devolver 1º de abril (não 1º de janeiro) e ACUM_ANO reinicia nessa mesma data — a mesma fórmula, sem reescrever nada, porque a inteligência de tempo lê o calendário do modelo, não assume um calendário fixo.
Referência das nove funções
| Função | Alias | Devolve |
|---|---|---|
ACUM_ANO | totalytd, ytd | Número acumulado no ano |
ACUM_TRI | totalqtd, qtd | Número acumulado no trimestre |
ACUM_MES | totalmtd, mtd | Número acumulado no mês |
PRIMEIRA_DATA | firstdate | Data (menor do grupo) |
ULTIMA_DATA | lastdate | Data (maior do grupo) |
INICIO_MES | startofmonth | Data (1º dia do mês/período) |
FIM_MES | endofmonth | Data (último dia do mês/período) |
INICIO_ANO | startofyear | Data (1º dia do ano, fiscal se configurado) |
FIM_ANO | endofyear | Data (último dia do ano, fiscal se configurado) |
Erros comuns
- Usar
ACUM_ANOsem uma coluna de data ligada ao calendário do modelo — a comparação temporal exige a dimensão calendário relacionada ao fato. - Esperar que
PRIMEIRA_DATA/ULTIMA_DATAdevolvam uma tabela (hábito do DAX) — aqui o valor já vem pronto para usar direto noutra fórmula. - Repetir a fórmula de YTD em cada widget em vez de criar a medida central uma vez — ela diverge em silêncio se alguém editar uma cópia e esquecer a outra.
Estado da capacidade
Time intelligence sobre calendário configurável (C06.4) está em Preview; sem calendário fiscal configurado, o comportamento é idêntico ao civil (janeiro–dezembro), byte a byte.
Faça você mesmo#
No workspace de treino Aurora Varejo (abra /dashboards no console):
- Na biblioteca de medidas, crie Receita YTD com
ACUM_ANO(MEDIDA('Receita'); data). - Coloque
Receita,Receita YTDnuma linha do tempo mensal e confirme que o acumulado sobe dentro do ano e zera em janeiro seguinte. - Crie
PRIMEIRA_DATA(data)eULTIMA_DATA(data)como medidas de apoio e confirme as datas de início/fim do período selecionado. - Duplique a medida trocando a função por
ACUM_MES(MEDIDA('Receita'); data)eACUM_TRI(MEDIDA('Receita'); data)e ponha os três acumulados lado a lado — cada um zera no seu próprio ciclo.
Você terminou quando Receita YTD existir na biblioteca de medidas e você conseguir mostrar, no visual, o acumulado zerando na virada do ano.
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#
- formulas/acum_ano
- formulas/acum_tri
- formulas/acum_mes
- formulas/primeira_data
- formulas/ultima_data
- formulas/inicio_mes
- formulas/fim_mes
- formulas/inicio_ano
- formulas/fim_ano
- bi/tutorial-medidas-e-comparacoes-temporais
Capacidades ensinadas#
C06.4 — o selo exibido na aula é sempre o estado mais conservador entre as capacidades citadas; nada aqui é "GA".