Ao escrever uma fórmula em um banco de dados do Notion, você pode ver o erro “Type Mismatch”. Isso acontece porque as fórmulas do Notion exigem que todos os valores em uma operação sejam do mesmo tipo de dados. Por exemplo, você não pode adicionar texto a um número ou comparar uma data com uma string. Este artigo explica por que o erro de incompatibilidade de tipos ocorre em fórmulas do Notion e fornece etapas claras para corrigi-lo. Você aprenderá a identificar os tipos incompatíveis e usar funções de conversão como format(), toNumber() e dateAdd() para fazer suas fórmulas funcionarem corretamente.
Principais Conclusões: Corrigindo o Erro Type Mismatch no Notion
- format() function: Converte um número, data ou booleano em uma string de texto para que você possa concatená-lo com outro texto.
- toNumber() function: Converte uma string de texto que se parece com um número em um número real para operações aritméticas.
- dateAdd() e dateSubtract() functions: Funcionam apenas com propriedades de data e retornam uma data, evitando incompatibilidade de tipos ao calcular datas futuras ou passadas.
Por que o Erro “Type Mismatch” Ocorre em Fórmulas do Notion
As fórmulas do Notion usam um sistema de tipos estrito. Cada valor em uma fórmula pertence a um destes tipos: string (texto), número, data, booleano (verdadeiro/falso) ou array (lista). Quando você combina dois valores com um operador ou função, ambos devem ser do mesmo tipo. Se você tentar adicionar um número a uma string, o Notion gera um erro “Type Mismatch” porque a operação é indefinida.
A causa raiz é quase sempre uma propriedade que retorna um tipo que você não esperava. Por exemplo, uma propriedade Rollup pode retornar um número, mas você a trata como texto. Ou uma propriedade Formula que gera uma data não pode ser comparada diretamente com uma string de texto. O Notion não converte automaticamente tipos em fórmulas. Você deve usar funções de conversão explícitas para alterar um tipo para outro.
Cenários Comuns de Incompatibilidade de Tipos
As incompatibilidades mais frequentes incluem: adicionar um número a texto com o operador +, comparar uma data a uma string com > ou <, e passar uma string para uma função que espera um número como round(). Outro caso comum é usar uma declaração if() onde os ramos verdadeiro e falso retornam tipos diferentes. Por exemplo, if(prop(“Status”) == “Done”, “Complete”, 0) falha porque o primeiro ramo retorna texto e o segundo retorna um número.
Passos para Identificar e Corrigir um Erro de Incompatibilidade de Tipos
Siga estas etapas para localizar os tipos incompatíveis e corrigir a fórmula. Você precisará inspecionar cada propriedade e usar a função de conversão apropriada.
- Abra o editor de fórmulas
No seu banco de dados do Notion, clique no cabeçalho da coluna da propriedade Formula que mostra o erro. Em seguida, clique em “Edit formula” no menu suspenso. O editor de fórmulas abre com a fórmula atual exibida. - Identifique o tipo de dados de cada propriedade usada
Passe o mouse sobre cada nome de propriedade na fórmula. O Notion mostra uma dica de ferramenta que inclui o tipo da propriedade: Text, Number, Date, Checkbox (booleano) ou Rollup. Anote o tipo de cada propriedade. Por exemplo, uma propriedade chamada “Quantity” pode ser um Number, enquanto “Product Code” pode ser Text. - Verifique o operador ou função que causa o erro
Observe a linha onde o erro aparece. A mensagem de erro geralmente destaca a posição exata. Se você usar + entre um número e texto, essa é a incompatibilidade. Se você usar dateAdd() com um valor de texto em vez de uma data, essa é a incompatibilidade. O operador ou função determina quais tipos são permitidos. - Aplique a função de conversão correta
Use uma destas funções para alterar o tipo de um valor:– format(prop(“PropertyName”)) — converte um número, data ou booleano em texto. Use isso quando precisar concatenar um número com texto.
– toNumber(prop(“PropertyName”)) — converte uma string de texto que contém dígitos em um número. Use isso quando precisar realizar aritmética em uma propriedade de texto.
– date(prop(“PropertyName”)) — converte uma string de texto em um formato de data reconhecido para uma data. Use isso ao comparar datas armazenadas como texto.
– if() com tipos de retorno consistentes — garanta que ambos os ramos de uma declaração if() retornem o mesmo tipo. Por exemplo, if(prop(“Status”) == “Done”, “Complete”, “Incomplete”) retorna texto em ambos os casos. - Teste a fórmula com dados de exemplo
Após fazer a alteração, clique em “Save” no editor de fórmulas. Adicione algumas linhas com diferentes valores de propriedade para verificar se a fórmula funciona para todos os casos. Verifique se a saída mostra o tipo e valor esperados. Se o erro persistir, repita as etapas 2 a 4.
Problemas Comuns Após Corrigir a Incompatibilidade de Tipos
A fórmula retorna um valor em branco ou vazio após a conversão
Isso geralmente acontece quando toNumber() recebe uma string de texto que não é um número válido. Por exemplo, “ABC” não pode ser convertido em um número. Para evitar isso, use if() para verificar o conteúdo antes da conversão: if(prop(“Code”) != “” and toNumber(prop(“Code”)) != 0, toNumber(prop(“Code”)), 0). Isso retorna 0 para texto inválido.
A comparação de datas ainda falha após usar date()
A função date() só funciona com strings de texto que correspondem a um formato específico como “2024-01-15” ou “Jan 15, 2024”. Se o seu texto usar um formato diferente, date() retorna um valor vazio. Nesse caso, use parseDate() com a string de formato correta. Por exemplo, parseDate(prop(“Date Text”), “MM/DD/YYYY”) converte uma string de texto no formato mês/dia/ano para uma data.
A propriedade Rollup retorna um tipo inesperado
Um Rollup pode retornar um único valor ou um array dependendo da agregação do rollup. Se você usar um Rollup que retorna um array em uma operação que espera um único número, você obtém uma incompatibilidade de tipos. Para corrigir isso, altere a agregação do rollup para “Show original” ou use a função first() para extrair o primeiro elemento: first(prop(“Rollup Property”)).
Funções de Fórmula do Notion para Conversão de Tipos Comparadas
| Função | Tipo de Entrada | Tipo de Saída |
|---|---|---|
| format() | Número, Data, Booleano ou Array | Texto (string) |
| toNumber() | Texto (string) | Número |
| date() | Texto (string em formato padrão) | Data |
| parseDate() | Texto (string com formato personalizado) | Data |
| first() | Array | Qualquer tipo (primeiro elemento) |
Use format() para converter números ou datas em texto para concatenação. Use toNumber() para converter dígitos de texto em números para matemática. Use date() ou parseDate() para converter texto em datas para aritmética de datas. Use first() para extrair um único valor de um array de rollup.
Agora você pode identificar e resolver qualquer erro “Type Mismatch” em suas fórmulas do Notion. Comece verificando o tipo de dados de cada propriedade e aplicando a função de conversão correta. Para fórmulas complexas, teste cada parte separadamente usando uma propriedade de fórmula temporária. Como dica avançada, use a função empty() para lidar com valores ausentes antes da conversão: if(empty(prop(“Quantity”)), 0, toNumber(prop(“Quantity”))). Isso evita erros de conversão quando uma propriedade está em branco.