Por que a Fórmula do Notion Retorna Número como Texto na Saída de Concatenação
🔍 WiseChecker

Por que a Fórmula do Notion Retorna Número como Texto na Saída de Concatenação

Ao escrever uma fórmula do Notion que une um número a um texto usando a função concat() ou o operador +, a saída geralmente exibe o número como uma string de texto em vez de um valor numérico. Isso acontece porque o Notion converte automaticamente números em texto quando eles são combinados com strings em uma fórmula. O resultado pode parecer correto visualmente, mas não pode ser usado em cálculos numéricos adicionais ou rollups do banco de dados que esperam um número. Este artigo explica por que a concatenação de fórmulas do Notion força números a se tornarem texto e fornece as etapas exatas para manter os valores numéricos intactos quando você precisar deles para cálculos.

Principais Conclusões: Evitando a Conversão de Número para Texto na Concatenação de Fórmulas do Notion

  • Função concat(): Sempre retorna uma string de texto; qualquer número passado para ela se torna texto automaticamente.
  • Operador + com texto: Quando um operando é texto, o Notion trata o + como concatenação e converte números em strings.
  • Função format(): Use format(número) para converter explicitamente um número em texto apenas quando você pretende exibi-lo em um contexto de texto.
  • Função toNumber(): Use toNumber(texto) para converter texto concatenado de volta em um número para operações numéricas adicionais.

ADVERTISEMENT

Por que o Notion Converte Números em Texto na Concatenação

As fórmulas do Notion usam um sistema de tipos onde cada valor tem um tipo de dados específico: texto, número, booleano, data ou array. Quando você usa a função concat(), sua definição exige que todos os argumentos sejam texto. O Notion chama automaticamente a função format() em qualquer valor não textual passado para concat(), convertendo números e outros tipos em sua representação de string. A mesma conversão automática acontece quando você usa o operador + com pelo menos um operando de texto. O Notion interpreta + como adição numérica apenas quando ambos os operandos são números. Se um operando for texto, o Notion trata + como concatenação e converte o outro operando em texto também.

Esse comportamento não é um bug. É uma escolha de design deliberada para evitar erros de tipo. No entanto, pode ser confuso porque a saída da fórmula parece um número, mas se comporta como texto. Você não pode usar o resultado em um rollup que soma valores ou em outra fórmula que espera um número. A célula de saída em uma propriedade do banco de dados mostrará o valor alinhado à esquerda, que é o padrão para texto no Notion, enquanto os números aparecem alinhados à direita.

Como a Conversão de Tipo Acontece

Considere esta fórmula: concat(“Pedido “, 42). O Notion avalia o número 42 e chama format(42) internamente, produzindo o texto “42”. A saída final é a string de texto “Pedido 42”. Da mesma forma, “Total: ” + 100 produz o texto “Total: 100”. O número 100 é convertido em texto antes da concatenação. Se você depois tentar usar o resultado em uma fórmula que espera um número, como sum(prop(“Total do Pedido”)), o Notion lançará um erro de tipo porque a propriedade contém texto, não um número.

Etapas para Controlar a Conversão de Número para Texto na Concatenação

Para evitar a conversão indesejada ou restaurar o comportamento numérico após a concatenação, use os seguintes métodos.

Método 1: Mantenha Números Separados do Texto

Se você precisa do valor numérico para cálculos, não o concatene com texto na mesma propriedade de fórmula. Em vez disso, crie duas propriedades de fórmula separadas: uma que retorna o número e outra que retorna a exibição de texto.

  1. Crie uma propriedade de fórmula numérica
    Adicione uma nova propriedade de fórmula chamada “Valor Numérico”. Escreva uma fórmula que retorne o número sem nenhum texto. Exemplo: prop(“Preço”) * 1.15. Esta propriedade permanecerá como tipo número e poderá ser usada em rollups e outras fórmulas numéricas.
  2. Crie uma propriedade de fórmula de exibição
    Adicione outra propriedade de fórmula chamada “Valor de Exibição”. Escreva uma fórmula que concatene o número com texto. Exemplo: concat(“Total: “, format(prop(“Valor Numérico”))). Esta propriedade retorna texto e é segura apenas para exibição.
  3. Use a propriedade numérica em cálculos
    Em rollups ou outras fórmulas que precisam do número, referencie a propriedade “Valor Numérico”. Não referencie a propriedade “Valor de Exibição” para operações matemáticas.

Método 2: Converta Texto Concatenado de Volta para Número

Se você já criou uma fórmula que gera texto e precisa usar a parte numérica em cálculos adicionais, use a função toNumber() para extrair o número.

  1. Identifique a propriedade de fórmula de texto
    Localize a propriedade de fórmula que retorna texto concatenado contendo um número. Exemplo: prop(“Informações do Pedido”) retorna “Pedido 42”.
  2. Extraia o número com toNumber() e slice()
    Em uma nova propriedade de fórmula, escreva uma fórmula que isole a parte numérica e a converta. Exemplo: toNumber(slice(prop(“Informações do Pedido”), 6)). Isso assume que o número começa após os primeiros 6 caracteres. Ajuste o índice inicial do slice com base na sua estrutura de texto.
  3. Use o número extraído
    A nova propriedade de fórmula retorna um tipo número. Agora você pode usá-la em rollups e outras fórmulas numéricas.

Método 3: Use format() Explicitamente Quando Desejar Texto

Quando sua intenção é exibir um número como texto, use a função format() explicitamente. Isso torna a conversão clara e evita confusão acidental de tipo.

  1. Escreva a fórmula com format()
    Exemplo: concat(“Receita: R$”, format(prop(“Receita”))). Isso converte explicitamente o número da Receita em texto antes da concatenação.
  2. Verifique o tipo de saída
    Confirme que a propriedade retorna texto. Você pode verificar isso tentando usar a propriedade em uma fórmula numérica. Se o Notion mostrar um erro de tipo, a propriedade é texto.
  3. Documente a conversão
    Adicione uma nota no campo de descrição da fórmula para que outros membros do espaço de trabalho saibam que a propriedade é apenas para exibição.

ADVERTISEMENT

Erros Comuns e Limitações com Números Concatenados

Usar concat() com Números Sem format()

Você não precisa chamar format() manualmente dentro de concat() porque o Notion faz isso automaticamente. No entanto, confiar na conversão implícita pode tornar sua fórmula mais difícil de ler. Sempre use format() para clareza. Se você esquecer e o número for o único argumento, concat(42) retorna o texto “42”, não o número 42.

Operador + com Texto e Número

Se você escrever “Valor: ” + 10, o resultado é texto. Se você escrever 10 + “Valor: “, o resultado também é texto. A ordem não importa. Para forçar a adição numérica, garanta que ambos os operandos sejam números. Se um operando puder ser texto, envolva-o com toNumber(). Exemplo: toNumber(prop(“Número em String”)) + 5.

Rollup Falha na Saída Concatenada

Uma propriedade de rollup que soma valores de linhas relacionadas do banco de dados ignorará qualquer propriedade que retorne texto. Se você concatenar um número com texto em uma propriedade de fórmula e depois tentar somar essa propriedade em um rollup, o rollup mostrará 0 ou um erro. Para corrigir isso, crie uma propriedade de fórmula numérica separada, conforme descrito no Método 1.

Mudanças no Comportamento de Ordenação

Valores de texto são ordenados alfabeticamente, não numericamente. Uma propriedade que retorna “10” como texto será ordenada antes de “2” porque “1” vem antes de “2” na ordem dos caracteres. Se você precisar de ordenação numérica correta, mantenha a propriedade como tipo número.

Comparação de Tipos de Saída de Fórmula do Notion: Texto vs Número

Item Saída de Texto Saída Numérica
Alinhamento no banco de dados Alinhado à esquerda Alinhado à direita
Suporte a soma em rollup Não suportado; retorna 0 Suportado
Comportamento de ordenação Alfabética Numérica
Funções de fórmula que podem usá-lo concat(), format(), slice(), replace() add(), subtract(), multiply(), divide(), pow(), round(), toNumber()
Criado por concat(), format(), + com um operando de texto Número direto, operadores aritméticos, toNumber() em texto

Entender essas diferenças ajuda você a decidir se deve manter um número como número ou convertê-lo em texto para exibição. Use os métodos deste artigo para controlar a conversão e evitar rollups quebrados ou ordenação incorreta.

ADVERTISEMENT