Como calcular idade no Power BI com a DATEDIFF
Power BI · 5 min de leitura
Em resumo
Para calcular idade no Power BI, crie uma coluna com =DATEDIFF(Tabela[Nascimento]; TODAY(); YEAR). Atenção: a DATEDIFF conta as viradas de ano, então pode somar um ano antes do aniversário; quando a precisão importa, use uma fórmula que confere se o aniversário já passou.

Idade de clientes, de funcionários, de alunos: é um cálculo muito comum em relatórios, e no Power BI ele cabe numa linha de DAX com a função DATEDIFF. Neste guia você vai criar uma pequena tabela direto no Power BI com o recurso Inserir dados, calcular a idade com DATEDIFF e TODAY e, principalmente, entender um detalhe da DATEDIFF que pode fazer a idade sair um ano a mais, e como corrigir.
Caso prefira aprender por vídeo, veja o vídeo abaixo:

O que você vai aprender
- Como criar uma tabela manualmente com Inserir dados;
- A sintaxe da DATEDIFF e suas unidades;
- Como calcular a idade com DATEDIFF e TODAY;
- Por que a DATEDIFF pode errar a idade e a fórmula exata;
- Coluna calculada ou medida: qual usar.
Passo 1: criar a tabela com Inserir dados
Normalmente os dados vêm de Obter Dados (Excel, banco, etc.). Para testes, exemplos ou pequenas tabelas de apoio, o Power BI permite digitar os dados direto:
- Num relatório em branco, clique em Página Inicial > Inserir dados;
- Dê duplo clique no cabeçalho "Coluna1" e renomeie para Nome;
- Clique no + ao lado para criar outra coluna e renomeie para Data de Nascimento;
- Preencha as linhas com alguns nomes e datas de nascimento. O + abaixo adiciona linhas; botão direito > Excluir remove;
- Em Nome (da tabela), escreva dPessoas.
Clique em Editar para abrir o Power Query e conferir os tipos: Nome deve estar como texto e Data de Nascimento como data. Depois, Fechar e Aplicar.
Passo 2: a função DATEDIFF
DATEDIFF(data_inicial, data_final, intervalo)
O intervalo pode ser SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER ou YEAR. O separador de argumentos pode ser vírgula ou ponto e vírgula, dependendo da configuração regional do seu Power BI.
Passo 3: a coluna de idade
- Vá para a Exibição de tabela e selecione a dPessoas;
- Em Ferramentas de tabela, clique em Nova coluna;
- Escreva:
Idade = DATEDIFF(dPessoas[Data de Nascimento], TODAY(), YEAR)
A TODAY() retorna a data de hoje, e o YEAR pede a diferença em anos. A coluna mostra a idade de cada pessoa.
Atenção: DATEDIFF conta viradas de ano
Aqui está o detalhe que pouca gente conhece. A DATEDIFF não conta anos completos; ela conta quantas vezes o calendário virou de um ano para o outro entre as duas datas. Exemplo: quem nasceu em 31 de dezembro e é comparado com 1º de janeiro do ano seguinte tem "1" de DATEDIFF em anos, com só um dia de vida.
Na prática: antes do aniversário no ano corrente, a DATEDIFF dá um ano a mais. Quem faz aniversário em setembro aparece com a idade nova desde janeiro. O mesmo vale para MONTH: ela conta viradas de mês, não meses completos.
A fórmula exata
Para a idade correta, subtraia os anos e desconte 1 se o aniversário ainda não chegou:
Idade =
VAR Nasc = dPessoas[Data de Nascimento]
VAR Hoje = TODAY()
RETURN
YEAR(Hoje) - YEAR(Nasc)
- IF(DATE(YEAR(Hoje), MONTH(Nasc), DAY(Nasc)) > Hoje, 1, 0)
A expressão DATE(YEAR(Hoje), MONTH(Nasc), DAY(Nasc)) é o aniversário deste ano. Se ele é depois de hoje, a pessoa ainda não fez aniversário, e o cálculo tira 1.
Use DATEDIFF com YEAR quando a diferença de "anos de calendário" basta (por exemplo, "contratado há X anos" de forma aproximada), e a fórmula acima quando a idade precisa ser exata.
Faixas etárias
Com a idade calculada, crie uma coluna de faixa para usar em gráficos e segmentações:
Faixa Etária =
SWITCH(
TRUE(),
dPessoas[Idade] < 18, "Até 17",
dPessoas[Idade] < 25, "18 a 24",
dPessoas[Idade] < 35, "25 a 34",
dPessoas[Idade] < 50, "35 a 49",
"50 ou mais"
)
Para a faixa aparecer na ordem certa nos gráficos, crie uma coluna numérica de ordem e use Classificar por Coluna. Veja como em como ordenar gráficos por dia da semana no Power BI.
Coluna calculada ou medida?
- Coluna calculada (como neste guia): a idade fica gravada em cada linha e pode ser usada em eixos, filtros e faixas. A
TODAY()é avaliada na atualização dos dados, então a idade muda quando o relatório é atualizado; - Medida: útil para a idade média de um grupo, por exemplo
Idade Média = AVERAGE(dPessoas[Idade]), que responde aos filtros do relatório.
Outros usos da DATEDIFF
| Cálculo | Fórmula |
|---|---|
| Dias entre pedido e entrega | DATEDIFF(Pedidos[Data Pedido], Pedidos[Data Entrega], DAY) |
| Tempo de atendimento em horas | DATEDIFF(Chamados[Abertura], Chamados[Fechamento], HOUR) |
| Dias desde a última compra | DATEDIFF(Clientes[Última Compra], TODAY(), DAY) |
Em dias, horas e minutos, a contagem de "viradas" coincide com o tempo decorrido, então a DATEDIFF é exata.
Perguntas frequentes
Como calcular idade no Power BI?
Com uma coluna calculada: DATEDIFF(Data de Nascimento, TODAY(), YEAR), ou a fórmula exata que desconta 1 antes do aniversário.
Por que a idade no Power BI está com um ano a mais?
Porque a DATEDIFF com YEAR conta viradas de ano, não anos completos. Use a fórmula com o IF do aniversário.
A idade atualiza sozinha?
Numa coluna calculada, ela é recalculada a cada atualização do relatório.
DATEDIFF é igual à DATADIF do Excel?
Não exatamente. A DATADIF do Excel conta períodos completos; a DATEDIFF do DAX conta limites de calendário cruzados.
Conclusão
A DATEDIFF calcula diferenças entre datas em qualquer unidade e é perfeita para dias e horas. Para idade, lembre que ela conta viradas de ano: quando a precisão importa, use a fórmula que confere se o aniversário já passou. Para aprofundar em DAX, veja o minicurso gratuito de fórmulas DAX.
Bons estudos e até o próximo conteúdo! 🚀
Quer dominar o Power BI do básico ao avançado? Conheça o curso de Power BI online da Atuar: 245 aulas, certificado e monitoria 24h com IA.


