As propriedades de fórmula do Notion oferecem duas funções relacionadas a texto que se comportam de forma muito diferente: Repeat() e Replace(). A função Repeat() duplica uma string um número definido de vezes, enquanto Replace() substitui caracteres específicos dentro de uma string. Muitos usuários confundem essas duas funções porque ambas operam em texto, mas cada uma resolve um problema distinto. Este artigo explica a sintaxe exata, o comportamento e os casos de uso para Repeat() e Replace(), e fornece exemplos claros para que você possa escolher a função certa para seus bancos de dados do Notion.
Principais Conclusões: Repeat() vs Replace() em Fórmulas do Notion
- Repeat(“texto”, N): Gera a string “texto” repetida N vezes, sem separador entre as cópias.
- Replace(“fonte”, “antigo”, “novo”): Substitui cada ocorrência de “antigo” em “fonte” por “novo”, mantendo o restante da string inalterado.
- Use Repeat() para preenchimento, barras de progresso ou geração de padrões repetidos: Por exemplo, Repeat(“⭐”, 3) retorna “⭐⭐⭐”.
- Use Replace() para limpar dados, remover caracteres indesejados ou renomear itens: Por exemplo, Replace(“olá-mundo”, “-“, ” “) retorna “olá mundo”.
O que Repeat() e Replace() fazem nas Fórmulas do Notion
Tanto Repeat() quanto Replace() são funções de texto disponíveis no editor de fórmulas do Notion. Elas fazem parte do tipo de propriedade Fórmula, que você adiciona a um banco de dados criando uma nova propriedade e selecionando “Fórmula” como tipo. Para usar essas funções, você deve digitá-las manualmente no editor de fórmulas — não há interface de arrastar e soltar para funções individuais.
A função Repeat() aceita dois argumentos: a string a ser repetida e o número de repetições. Ela gera uma única string contendo a string original repetida consecutivamente. Por exemplo, Repeat(“ab”, 3) produz “ababab”. A função não adiciona espaços, vírgulas ou qualquer outro separador entre as cópias. Se você precisar de um separador, deve concatená-lo manualmente usando o operador +, como Repeat(“ab” + “, “, 3) que resulta em “ab, ab, ab, “. Observe o separador no final da última cópia — talvez seja necessário removê-lo com slice() ou lógica condicional.
A função Replace() aceita três argumentos: a string fonte, a substring a ser encontrada e a string de substituição. Ela varre toda a string fonte em busca de cada ocorrência da substring antiga e substitui cada uma pela nova substring. Replace() diferencia maiúsculas de minúsculas. Se a substring antiga não aparecer na string fonte, Replace() retorna a string fonte inalterada. Replace() não suporta expressões regulares ou curingas — ela corresponde apenas a texto literal exato.
Quando Usar Cada Função
Use Repeat() quando precisar gerar um padrão repetido para indicadores visuais como barras de progresso, classificações por estrelas ou separadores. Use Replace() quando precisar limpar ou transformar dados de texto existentes, como remover hífens de números de telefone, substituir sublinhados por espaços ou padronizar convenções de nomenclatura.
Passos para Usar Repeat() e Replace() em um Banco de Dados do Notion
Os passos a seguir mostram como criar uma propriedade de fórmula e testar ambas as funções. Você precisa de um banco de dados do Notion com pelo menos uma propriedade de texto para usar como fonte de dados para Replace().
- Adicione uma propriedade de fórmula ao seu banco de dados
Abra seu banco de dados do Notion. Clique no botão + no último cabeçalho de coluna. Selecione “Fórmula” na lista de tipos de propriedade. Nomeie a propriedade, por exemplo “Barra de Progresso” ou “Nome Limpo”. - Escreva uma fórmula Repeat() para uma barra de progresso
No editor de fórmulas, digite:if(prop("Status") == "Completo", Repeat("█", 10), Repeat("░", 10)). Isso exibe 10 blocos preenchidos quando a propriedade Status for igual a “Completo” e 10 blocos vazios caso contrário. Clique em “Salvar” para ver o resultado. - Escreva uma fórmula Replace() para limpar um campo de texto
Crie outra propriedade de fórmula chamada “Nome Limpo”. No editor de fórmulas, digite:Replace(prop("Nome Completo"), "-", " "). Isso substitui cada hífen na propriedade Nome Completo por um espaço. Clique em “Salvar” para aplicar. - Teste as fórmulas com dados de exemplo
Adicione uma linha ao seu banco de dados. Defina a propriedade “Status” como “Completo” e a propriedade “Nome Completo” como “João-Silva-Santos”. A fórmula da Barra de Progresso deve mostrar 10 blocos preenchidos. A fórmula Nome Limpo deve exibir “João Silva Santos”. - Combine Repeat() e Replace() em uma única fórmula
Crie uma terceira propriedade de fórmula. Digite:Replace(Repeat("-", 10), "-", "="). A função Repeat() gera “———-“. A função Replace() transforma cada hífen em um sinal de igual, produzindo “==========”. Isso demonstra como as duas funções podem trabalhar juntas.
Erros Comuns e Limitações
Repeat() com contagem zero ou negativa
Se você passar 0 como argumento de contagem, Repeat() retorna uma string vazia. Se passar um número negativo, o Notion retorna um erro. Sempre garanta que a contagem seja um inteiro não negativo. Use um condicional para lidar com casos extremos: if(prop("Contagem") > 0, Repeat("x", prop("Contagem")), "").
Replace() diferencia maiúsculas de minúsculas
Replace(“Olá Mundo”, “olá”, “Oi”) retorna “Olá Mundo” inalterado porque “olá” não corresponde a “Olá”. O Notion não possui uma função de substituição que ignore maiúsculas/minúsculas. Para contornar isso, use as funções lower() ou upper() tanto na fonte quanto na string de pesquisa antes de substituir, mas isso altera as maiúsculas/minúsculas do texto original. Por exemplo: Replace(lower(prop("Nome")), "joão", "maria") converte todo o nome para minúsculas antes de substituir, então a saída ficará toda em minúsculas.
Replace() substitui todas as ocorrências, não apenas a primeira
Replace(“a-a-a”, “-“, “+”) retorna “a+a+a”. Não há como substituir apenas a primeira ou última ocorrência usando apenas Replace(). Para substituir apenas a primeira ocorrência, você deve usar uma combinação de slice() e concat(). Por exemplo: slice(prop("Texto"), 0, index(prop("Texto"), "-")) + "+" + slice(prop("Texto"), index(prop("Texto"), "-") + 1).
Repeat() não adiciona separadores
Repeat(“item”, 3) retorna “itemitemitem”. Se você precisar de “item, item, item”, deve adicionar o separador dentro da string repetida e depois remover o separador final. Um padrão comum é: if(prop("Contagem") > 0, slice(Repeat(prop("Item") + ", ", prop("Contagem")), 0, -2), ""). Isso remove os dois últimos caracteres (a vírgula e o espaço) da string repetida.
Repeat() vs Replace(): Comparação de Funções
| Item | Repeat() | Replace() |
|---|---|---|
| Propósito | Gerar texto repetido | Substituir caracteres em texto existente |
| Argumentos | (string, contagem) | (fonte, antigo, novo) |
| Saída quando não há correspondência | String vazia se contagem for 0 | Retorna a fonte inalterada |
| Diferencia maiúsculas de minúsculas | Preserva maiúsculas/minúsculas originais | Diferencia maiúsculas de minúsculas |
| Suporta curingas | Não | Não |
| Caso de uso típico | Barras de progresso, separadores, preenchimento | Limpeza de dados, renomeação, formatação |
Agora você pode usar Repeat() para criar indicadores visuais em seus bancos de dados do Notion e Replace() para padronizar dados de texto. Tente construir uma barra de progresso simples com Repeat() e um caractere emoji como █ ou ⬜. Para limpar dados importados, aplique Replace() para remover espaços extras ou traços. Uma dica avançada: aninhe Replace() dentro de Repeat() para gerar padrões e depois transformá-los, como mostrado no passo 5 acima, para criar efeitos visuais personalizados sem edição manual.