Você quer uma fórmula no Notion que calcule automaticamente a idade de uma pessoa a partir da data de nascimento. Sem uma fórmula, você precisa atualizar as idades manualmente a cada ano ou usar scripts externos. A propriedade de fórmula do Notion pode calcular a idade usando funções de data como dateBetween e now. Este artigo explica como criar uma fórmula de idade confiável que lida com anos bissextos e datas futuras.
Principais Conclusões: Criando uma Fórmula de Data de Nascimento para Idade no Notion
- dateBetween(prop(“Birthdate”), now(), “years”): Retorna o número de anos completos entre a data de nascimento e hoje. Este é o núcleo do cálculo da idade.
- Ajuste para aniversários que ainda não ocorreram este ano: Use uma instrução
ifpara subtrair um ano quando a data atual é anterior ao aniversário no ano corrente. - O tipo de propriedade deve ser Data: O campo de data de nascimento deve ser uma propriedade do tipo Data, não um campo de texto ou número, para que a fórmula funcione.
Como a Função dateBetween do Notion Funciona para Cálculo de Idade
A linguagem de fórmulas do Notion inclui a função dateBetween, que calcula a diferença entre duas datas em uma unidade especificada (anos, meses, dias, etc.). Para calcular a idade, você passa a data de nascimento e a data atual (now()) para dateBetween com a unidade "years". Isso retorna o número de anos civis completos entre as duas datas. A função conta apenas anos completos, então uma pessoa nascida em 31 de dezembro de 2000, avaliada em 1º de janeiro de 2024, retornaria 23 (não 24) porque o aniversário ainda não ocorreu em 2024.
A função now() no Notion retorna a data e hora atuais. Quando usada em uma fórmula, ela é atualizada dinamicamente cada vez que o banco de dados é aberto ou atualizado. Isso significa que a idade calculada permanece atual sem atualizações manuais. No entanto, now() é uma função volátil, o que pode fazer com que a fórmula recalcule com mais frequência do que funções não voláteis. Isso é aceitável para a maioria dos casos de uso.
Um erro comum é usar dateBetween com now() e assumir que sempre retorna a idade correta. A função leva em conta o mês e o dia, mas apenas quando a data de nascimento está no passado. Se a data de nascimento estiver no futuro, dateBetween retorna um número negativo. Você deve lidar com esse caso extremo. Além disso, dateBetween usa o fuso horário do sistema do seu espaço de trabalho do Notion, então as idades podem variar ligeiramente para usuários em diferentes fusos horários se a data de nascimento estiver próxima da meia-noite.
Pré-requisitos para a Fórmula de Idade
Antes de escrever a fórmula, certifique-se de que seu banco de dados tenha uma propriedade Data chamada Birthdate (ou qualquer nome que preferir). O tipo de propriedade deve ser Data, não Texto ou Número. Se você usar um campo de texto, a fórmula não analisará a data. Além disso, observe que as fórmulas do Notion não podem modificar outras propriedades — elas apenas exibem valores calculados. A idade aparecerá em uma coluna de propriedade Fórmula e não pode ser editada diretamente.
Passos para Escrever a Fórmula de Idade no Notion
Siga estes passos para criar uma fórmula que calcula a idade a partir de uma propriedade de data de nascimento. A fórmula leva em conta se o aniversário já ocorreu este ano e retorna um número inteiro.
- Adicione uma propriedade Data para a data de nascimento
Se você ainda não tiver uma, clique no botão + no cabeçalho do banco de dados. Selecione Data como o tipo de propriedade. Nomeie como Birthdate. Insira as datas de nascimento para seus registros. - Adicione uma propriedade Fórmula
Clique no botão + novamente. Selecione Fórmula como o tipo de propriedade. Nomeie como Idade. - Abra o editor de fórmulas
Clique no cabeçalho da propriedade Idade e depois em Editar propriedade. No campo de fórmula, você escreverá a expressão. - Escreva a fórmula base
Cole ou digite a seguinte fórmula:dateBetween(now(), prop("Birthdate"), "years")
Isso retorna o número de anos completos da data de nascimento até hoje. Teste — você deve ver uma idade inteira para cada linha com uma data de nascimento. - Lide com datas de nascimento futuras (opcional, mas recomendado)
Se uma data de nascimento estiver no futuro, a fórmula base retorna um número negativo. Para mostrar 0 ou uma mensagem personalizada, envolva a fórmula em uma instruçãoif:if(prop("Birthdate") > now(), 0, dateBetween(now(), prop("Birthdate"), "years"))
Isso retorna 0 para datas futuras e a idade correta para datas passadas. - Teste com uma data de nascimento de exemplo
Insira uma data de nascimento como 1990-03-15. A fórmula deve retornar a idade com base na data de hoje. Verifique se a idade incrementa corretamente quando você altera a data do sistema (o Notion não permite substituições manuais de data; você pode adicionar uma linha de teste com uma data passada conhecida).
Avançado: Idade com Meses ou Dias
Se você precisar exibir a idade em anos e meses, use uma fórmula mais complexa. A expressão a seguir calcula anos completos e meses restantes, retornando texto como “30 anos, 4 meses”:
let(
years, dateBetween(now(), prop("Birthdate"), "years"),
months, dateBetween(now(), prop("Birthdate"), "months") - years * 12,
years + " anos, " + months + " meses"
)
Esta fórmula usa let para armazenar valores intermediários. Ela calcula o total de meses entre as duas datas e depois subtrai os meses já contabilizados pelos anos completos. O resultado é uma string, não um número.
Erros Comuns e Como Evitá-los
A Fórmula Retorna um Número Negativo
Uma idade negativa significa que a data de nascimento está no futuro. A fórmula base dateBetween não lida com isso. Use a instrução if mostrada no Passo 5 para retornar 0 ou um valor em branco. Alternativamente, você pode retornar uma string vazia: if(prop("Birthdate") > now(), "", dateBetween(now(), prop("Birthdate"), "years")).
A Fórmula Mostra um Erro (Texto Vermelho)
Uma mensagem de erro vermelha geralmente indica um erro de sintaxe. Verifique se os nomes das propriedades estão escritos exatamente como aparecem no banco de dados (diferenciam maiúsculas de minúsculas). Certifique-se de usar aspas retas, não aspas curvas. Se o erro persistir, remova espaços ao redor dos parênteses. A fórmula dateBetween(now(), prop("Birthdate"), "years") deve funcionar. Se a propriedade tiver um nome diferente, atualize a referência dentro de prop().
A Idade Não Atualiza Automaticamente
As fórmulas do Notion que usam now() recalculam quando o banco de dados é carregado ou quando qualquer propriedade muda. Se a idade parecer travada, feche e reabra a página do banco de dados. A fórmula não é executada continuamente, mas é atualizada a cada visita à página. Para painéis ao vivo, a idade será atualizada quando você atualizar o navegador.
A Propriedade de Data de Nascimento Não é do Tipo Data
Se você inseriu datas de nascimento em uma propriedade de Texto ou Número, a fórmula não funcionará. Altere o tipo da propriedade para Data. Para fazer isso, abra as configurações da propriedade, clique em Tipo e selecione Data. O Notion tentará analisar o texto existente em datas, mas pode falhar para formatos ambíguos. Reinsira as datas no formato AAAA-MM-DD para melhores resultados.
Funções de Data do Notion para Cálculo de Idade Comparadas
| Função | O Que Retorna | Melhor Caso de Uso |
|---|---|---|
| dateBetween(now(), prop(“Birthdate”), “years”) | Número inteiro de anos completos | Idade simples em anos inteiros |
| dateBetween(now(), prop(“Birthdate”), “months”) | Número inteiro de meses completos | Idade em meses para bebês ou intervalos curtos |
| dateBetween(now(), prop(“Birthdate”), “days”) | Número inteiro de dias completos | Idade precisa em dias (por exemplo, para rastreamento) |
| Fórmula combinada com let() | String como “30 anos, 4 meses” | Exibir idade com meses para clareza |
Agora você pode criar uma fórmula no Notion que calcula a idade a partir de uma propriedade de data de nascimento. Comece com a expressão básica dateBetween e adicione a condição if para lidar com datas futuras. Para exibições mais precisas, use a fórmula com let para incluir meses. Lembre-se de manter a propriedade de data de nascimento como tipo Data. Como dica avançada, você pode combinar a fórmula de idade com uma propriedade Rollup para calcular a idade média em um grupo.