Como Usar a Fórmula slice() do Notion com Índice Negativo para Extrair do Final
🔍 WiseChecker

Como Usar a Fórmula slice() do Notion com Índice Negativo para Extrair do Final

As fórmulas do Notion oferecem a função slice() para extrair uma substring de uma propriedade de texto. Quando você precisa extrair caracteres do final de uma string, usar um índice negativo no parâmetro end permite especificar posições relativas ao último caractere. Este artigo explica como o slice() interpreta índices negativos e como usá-los para extrair texto do final de forma confiável. Você aprenderá a sintaxe exata, verá exemplos práticos e entenderá as armadilhas comuns.

Principais conclusões: Usando slice() com índice final negativo

  • slice(início, fim) com fim negativo: Extrai caracteres de início até comprimento + fim posições a partir do final da string.
  • Exemplo: slice(-4, -1): Retorna a substring começando 4 caracteres antes do final e terminando 1 caractere antes do final da string.
  • Erro comum: slice(2, -2) vs slice(-5, -2): O primeiro extrai do índice 2 até perto do final; o segundo extrai de perto do final até perto do final.

ADVERTISEMENT

Como a função slice() lida com índices negativos no Notion

A função slice() no Notion aceita dois argumentos: início e fim. Ambos podem ser inteiros positivos, zero ou negativos. Um índice positivo conta a partir do início da string, começando em 0. Um índice negativo conta a partir do final da string, onde -1 é o último caractere, -2 é o penúltimo e assim por diante. A substring extraída inclui caracteres da posição início até, mas não incluindo, a posição fim. Quando o argumento fim é negativo, o Notion calcula a posição final real como comprimento da string + fim. Por exemplo, se a string tem 10 caracteres e você define fim como -3, a extração para na posição 7 (10 + -3). Esse comportamento permite extrair um número fixo de caracteres do final sem saber o comprimento da string antecipadamente.

Regras de sintaxe e comportamento

A sintaxe completa é slice(texto, início, fim). O texto deve ser uma propriedade de string ou uma string literal. Os argumentos início e fim são números. Se início for maior ou igual a fim, o resultado é uma string vazia. Se fim for omitido, a extração vai até o final da string. Índices negativos são convertidos em posições positivas usando a fórmula índiceReal = comprimento + índiceNegativo. Se essa conversão resultar em um valor menor que 0 (por exemplo, comprimento é 5 e índice negativo é -10), o índice real é limitado a 0. Essa limitação pode causar resultados inesperados se você usar um índice negativo de magnitude maior que o comprimento da string.

Passos para escrever uma fórmula slice() com índice final negativo

Siga estes passos para criar uma fórmula no Notion que extrai uma substring do final de uma propriedade de texto usando um índice final negativo.

  1. Abra o banco de dados e adicione uma propriedade de fórmula
    Vá para seu banco de dados do Notion. Clique no botão + no cabeçalho da última coluna. Selecione Fórmula na lista de tipos de propriedade. Nomeie a propriedade, por exemplo, “Últimos Três Caracteres”.
  2. Escreva a expressão slice()
    No editor de fórmulas, digite slice(prop("Sua Propriedade de Texto"), -3, -1). Substitua “Sua Propriedade de Texto” pelo nome exato da sua coluna de texto. Isso extrai caracteres começando 3 posições antes do final até 1 posição antes do final — efetivamente os últimos 2 caracteres.
  3. Teste com dados de exemplo
    Insira uma string como “Notion” na propriedade de texto. A fórmula deve retornar “on” porque o comprimento da string é 6, início é -3 (posição 3), fim é -1 (posição 5), então extrai caracteres nos índices 3 e 4 (“o” e “n”).
  4. Ajuste para extrair mais caracteres
    Para extrair os últimos N caracteres, use slice(prop("Texto"), -N, -1) e depois remova o último caractere manualmente, ou use slice(prop("Texto"), -N, length(prop("Texto"))) para incluir o último caractere. Por exemplo, para obter os últimos 3 caracteres de “Notion”, use slice(prop("Texto"), -3, length(prop("Texto"))) que retorna “ion”.
  5. Use uma variável para comprimento dinâmico
    Se você precisa extrair um número variável de caracteres do final, pode calcular o índice inicial como length(prop("Texto")) - N onde N é uma propriedade numérica. Por exemplo, slice(prop("Texto"), length(prop("Texto")) - prop("Contagem"), length(prop("Texto"))) extrai os últimos Contagem caracteres.

Método alternativo: Usando slice() com início negativo e fim positivo

Se você deseja incluir o último caractere da string, a abordagem mais fácil é omitir o argumento fim completamente. Por exemplo, slice(prop("Texto"), -5) retorna os últimos 5 caracteres da string. Esse método é mais simples e evita confusão com índices finais negativos. Use o índice final negativo apenas quando precisar parar a extração antes do final da string.

ADVERTISEMENT

Erros comuns ao usar índices finais negativos

slice(-3, -1) retorna apenas dois caracteres, não três

Muitos usuários esperam que slice(-3, -1) retorne os últimos três caracteres. Mas como o índice fim é exclusivo, a extração para um caractere antes do final. O resultado são apenas o antepenúltimo e o penúltimo caracteres. Para obter os últimos três caracteres, use slice(-3, 0) ou simplesmente slice(-3). Note que slice(-3, 0) funciona porque 0 é tratado como o final da string, não o início, quando usado com um início negativo. Essa é uma peculiaridade conhecida no mecanismo de fórmulas do Notion.

Índice final negativo maior que o comprimento da string produz string vazia

Se o comprimento da string é 5 e você usa slice(0, -10), o índice final real se torna 5 + (-10) = -5, que é limitado a 0. O início é 0 e o fim é 0, então o resultado é uma string vazia. Para evitar isso, garanta que o valor absoluto do índice final negativo seja menor ou igual ao comprimento da string. Você pode proteger com uma instrução if: if(length(prop("Texto")) >= 5, slice(prop("Texto"), -5, -1), "").

Usar um início positivo com um fim negativo pode não extrair do final

Uma fórmula como slice(prop("Texto"), 2, -2) começa no índice 2 (terceiro caractere) e termina em comprimento - 2. Isso extrai uma parte do meio da string, não do final. Se seu objetivo é extrair do final, tanto início quanto fim devem ser negativos, ou início deve ser negativo e fim omitido.

slice() com fim negativo: Casos de uso comuns comparados

Caso de uso Fórmula Resultado em “Notion” (comprimento 6)
Últimos 2 caracteres (excluindo o último) slice(prop(“Texto”), -3, -1) “on”
Últimos 3 caracteres (incluindo o último) slice(prop(“Texto”), -3) “ion”
Últimos 3 caracteres (usando length) slice(prop(“Texto”), -3, length(prop(“Texto”))) “ion”
Extração do meio (início 2, fim -2) slice(prop(“Texto”), 2, -2) “ti”
Tudo menos o último caractere slice(prop(“Texto”), 0, -1) “Notio”

Agora você pode usar slice() com índices finais negativos para extrair substrings do final de qualquer propriedade de texto no Notion. Experimente as fórmulas em um banco de dados de teste para ver como diferentes combinações se comportam. Para uso avançado, combine slice() com length() para criar extrações dinâmicas baseadas em outros valores de propriedade.

ADVERTISEMENT