A fórmula contains() do Notion verifica se uma string de texto aparece dentro de outra. Por padrão, essa função faz uma correspondência que diferencia maiúsculas de minúsculas, tratando letras maiúsculas e minúsculas como caracteres diferentes. Esse comportamento pode causar falsos negativos quando você precisa comparar texto independentemente da capitalização, como ao corresponder entrada do usuário, dados importados ou tags com maiúsculas e minúsculas misturadas. Este artigo explica como modificar a fórmula contains() para realizar uma correspondência que ignora maiúsculas e minúsculas usando a função lower().
Principais Conclusões: Correspondência que Ignora Maiúsculas e Minúsculas em Fórmulas do Notion
- lower() aplicado em ambos os argumentos: Converta tanto o texto de origem quanto o termo de pesquisa para minúsculas antes de usar contains()
- contains(lower(prop(“Nome”)), lower(“pesquisa”)): A sintaxe exata da fórmula para uma correspondência que ignora maiúsculas e minúsculas
- Teste com dados de maiúsculas e minúsculas misturadas: Verifique se a fórmula retorna verdadeiro para strings como “Olá”, “OLÁ” e “oLá”
Por que o contains() Padrão Diferencia Maiúsculas de Minúsculas
A função contains() no Notion compara texto caractere por caractere usando o ponto de código Unicode exato. Como letras maiúsculas têm pontos de código diferentes de suas contrapartes minúsculas, contains("Olá", "olá") retorna false. Esse é um comportamento padrão em muitas linguagens de programação e sistemas de fórmulas. O Notion não fornece uma variante embutida de contains() que ignore maiúsculas e minúsculas, então você deve transformar ambas as strings para o mesmo caso antes da comparação.
A função lower() converte qualquer texto para caracteres minúsculos. Quando você aplica lower() tanto na propriedade de origem quanto no termo de pesquisa, a função contains() compara duas strings em minúsculas. Isso efetivamente remove a capitalização como fator na correspondência. A mesma técnica funciona com upper() se você preferir conversão para maiúsculas, mas lower() é mais comum e legível.
Passos para Construir uma Fórmula contains() que Ignora Maiúsculas e Minúsculas
- Abra o editor de fórmulas
Adicione uma propriedade de Fórmula ao seu banco de dados. Clique em qualquer célula na coluna dessa propriedade, depois clique em Editar propriedade e depois em Editar fórmula. - Referencie a propriedade de origem com lower()
Digitelower(prop("NomeDaSuaPropriedade")). SubstituaNomeDaSuaPropriedadepelo nome exato da propriedade de texto que você deseja pesquisar. Isso converte o texto de origem para minúsculas. - Aplique lower() no termo de pesquisa
Após a vírgula dentro decontains(), digitelower("termo de pesquisa"). Substituatermo de pesquisapelo texto que você deseja encontrar. Por exemplo:lower("urgente"). - Combine tudo na fórmula final
Escreva:contains(lower(prop("Nome")), lower("urgente")). Esta fórmula retornatruese a propriedade Nome contiver a palavra “urgente” em qualquer capitalização. - Teste com várias capitalizações
Crie algumas linhas de teste com valores como “URGENTE”, “Urgente”, “urgente” e “uRgEnTe”. A fórmula deve retornartruepara todas elas.
Usando um Termo de Pesquisa Dinâmico de Outra Propriedade
Em vez de codificar o termo de pesquisa como uma string, você pode referenciar outra propriedade. Por exemplo, se você tem uma propriedade chamada “Termo de Pesquisa” onde os usuários podem digitar qualquer texto, use esta fórmula:
contains(lower(prop("Nome")), lower(prop("Termo de Pesquisa")))
Isso torna a pesquisa dinâmica. Qualquer texto inserido na propriedade Termo de Pesquisa será correspondido sem diferenciar maiúsculas de minúsculas com a propriedade Nome. Observe que, se a propriedade Termo de Pesquisa estiver vazia, a fórmula retorna false porque lower("") produz uma string vazia e contains() com uma string de pesquisa vazia retorna false no Notion.
Problemas Comuns com contains() que Ignora Maiúsculas e Minúsculas
A Fórmula Retorna Falso para Texto Parcialmente Correspondente
Se sua fórmula retornar false quando você espera true, verifique se há espaços iniciais ou finais nos valores da propriedade. Por exemplo, " Olá" contém um espaço inicial. Use a função replaceAll() para remover espaços: contains(lower(replaceAll(prop("Nome"), " ", "")), lower("olá")). Isso remove todos os espaços antes de converter para minúsculas.
A Fórmula Quebra Quando a Propriedade Contém Números ou Símbolos
A função lower() afeta apenas letras. Números e símbolos como @, # ou % passam inalterados. Isso não é um bug. A fórmula ainda corresponderá corretamente porque contains() compara a string completa incluindo esses caracteres. Se você precisar ignorar pontuação, aplique replaceAll() na propriedade para remover caracteres não alfanuméricos antes de usar lower().
A Fórmula Não Funciona Dentro de um Rollup ou Lookup
Ao usar contains() dentro de uma fórmula de Rollup ou Lookup, você deve primeiro converter o valor do rollup para texto usando format(). Por exemplo: contains(lower(format(prop("PropriedadeRollup"))), lower("teste")). Sem format(), o valor do rollup pode ser interpretado como número ou data, fazendo a fórmula falhar.
| Item | contains() com Diferenciação | contains() sem Diferenciação |
|---|---|---|
| Sintaxe da fórmula | contains(prop("Nome"), "olá") |
contains(lower(prop("Nome")), lower("olá")) |
| Corresponder “Olá” | false | true |
| Corresponder “OLÁ” | false | true |
| Corresponder “olá” | true | true |
| Desempenho | Mais rápido (uma chamada de função) | Mais lento (três chamadas de função) |
Agora você pode criar fórmulas no Notion que correspondem a texto independentemente da capitalização. Use lower() tanto na propriedade de origem quanto no termo de pesquisa para criar um contains() confiável que ignora maiúsculas e minúsculas. Para filtragem avançada, combine esta técnica com a função if() para retornar rótulos personalizados como “Correspondência Encontrada” ou “Nenhuma Correspondência”. Lembre-se de testar com casos extremos como strings vazias, caracteres especiais e valores de rollup para garantir que sua fórmula se comporte conforme o esperado.