Como Usar o Equivalente à Função switch() do Notion com Cadeia If-Else
🔍 WiseChecker

Como Usar o Equivalente à Função switch() do Notion com Cadeia If-Else

As fórmulas do Notion não incluem uma função switch ou case como em muitas linguagens de programação. Quando você precisa avaliar múltiplas condições em um único valor, é necessário construir uma cadeia de funções if() aninhadas. Este artigo explica como construir uma cadeia if-else que funciona exatamente como um switch. Você aprenderá a sintaxe, verá exemplos reais e evitará erros comuns de aninhamento.

Principais Conclusões: Construindo um Equivalente a switch em Fórmulas do Notion

  • if(condição, resultado, if(condição, resultado, valorElse)): Aninhe funções if() para criar uma cadeia que verifica cada condição em ordem.
  • Teste o valor else final: Sempre forneça um valor de fallback no if() mais interno para lidar com casos não correspondentes.
  • Use empty() ou format() para exibição: Converta números ou datas em texto antes de concatenar na cadeia.

ADVERTISEMENT

Por que o Notion Não Tem Função switch() e Como o Aninhamento Funciona

As fórmulas do Notion suportam um conjunto limitado de funções em comparação com linguagens de programação completas. A instrução switch, que compara um valor com múltiplos casos, não existe. Em vez disso, você deve usar a função if() repetidamente. Cada if() verifica uma condição. Se a condição for verdadeira, retorna o resultado. Se falsa, passa para o próximo if(). Isso cria uma cadeia que se comporta de forma idêntica a um bloco switch.

A sintaxe para um único if() é if(condição, valor_se_verdadeiro, valor_se_falso). Para construir uma cadeia, substitua o valor_se_falso por outra chamada if(). O if() final na cadeia deve ter um valor simples — não outro if() — para servir como caso padrão. Esse padrão captura qualquer entrada que não corresponda às condições anteriores.

Um erro comum é esquecer que o Notion avalia todas as condições em ordem. Assim que uma condição é verdadeira, a fórmula retorna esse ramo e para. Condições que aparecem depois na cadeia são ignoradas. Isso significa que você deve ordenar suas condições da mais específica para a mais geral, ou da maior prioridade para a menor.

Quando Usar uma Cadeia If-Else vs um If Aninhado

Um if aninhado coloca um if() dentro do ramo verdadeiro de outro. Isso é útil quando você precisa verificar subcondições apenas após uma condição pai ser atendida. Uma cadeia if-else coloca cada if() no ramo falso do anterior. Use uma cadeia quando você tiver um conjunto de condições mutuamente exclusivas que dependem do mesmo valor de entrada. Por exemplo, mapear um número de prioridade (1, 2, 3) para um rótulo (Urgente, Alta, Média) é um caso de uso perfeito para uma cadeia.

Passos para Construir um Equivalente a switch Usando Aninhamento if()

Siga estes passos para criar uma cadeia if-else que mapeia um único valor para múltiplas saídas possíveis. O exemplo mapeia um número de status de um banco de dados para um rótulo legível.

  1. Identifique a propriedade de entrada e os valores de saída
    Decida qual propriedade do banco de dados contém o valor que você deseja testar. Neste exemplo, a propriedade é chamada de “Status” e contém números 0, 1, 2 ou 3. Os rótulos de saída são “Não Iniciado”, “Em Andamento”, “Concluído” e “Desconhecido”.
  2. Escreva o primeiro if() para o caso mais comum
    Comece com a condição que cobre a maioria dos seus dados. Para Status = 0, o rótulo é “Não Iniciado”. Escreva: if(prop("Status") == 0, "Não Iniciado", ...). O ramo falso conterá o próximo if().
  3. Aninhe o segundo if() no ramo falso
    Substitua as reticências por um segundo if() para Status = 1. A fórmula se torna: if(prop("Status") == 0, "Não Iniciado", if(prop("Status") == 1, "Em Andamento", ...)).
  4. Continue aninhando para cada caso restante
    Adicione um terceiro if() para Status = 2: if(prop("Status") == 0, "Não Iniciado", if(prop("Status") == 1, "Em Andamento", if(prop("Status") == 2, "Concluído", ...))).
  5. Adicione o valor else padrão
    Substitua as reticências finais pelo valor de fallback para qualquer entrada que não corresponda. Use “Desconhecido” para Status = 3 ou qualquer outro número: if(prop("Status") == 0, "Não Iniciado", if(prop("Status") == 1, "Em Andamento", if(prop("Status") == 2, "Concluído", "Desconhecido"))).
  6. Teste a fórmula com diferentes entradas
    Adicione algumas linhas ao seu banco de dados com valores de Status 0, 1, 2 e 3. Verifique se a propriedade da fórmula mostra o rótulo correto para cada um. Se um valor retornar o padrão inesperadamente, verifique se a condição usa o operador correto (== para igualdade, não =).

Exemplo Real: Mapeando Números de Dias da Semana para Nomes

Suponha que você tenha um banco de dados com uma fórmula que extrai o dia da semana como um número (1 para segunda, 7 para domingo). Você quer exibir o nome completo. Use esta cadeia:

if(prop("DiaNumero") == 1, "Segunda-feira", if(prop("DiaNumero") == 2, "Terça-feira", if(prop("DiaNumero") == 3, "Quarta-feira", if(prop("DiaNumero") == 4, "Quinta-feira", if(prop("DiaNumero") == 5, "Sexta-feira", if(prop("DiaNumero") == 6, "Sábado", if(prop("DiaNumero") == 7, "Domingo", "Dia inválido")))))))

O valor else final “Dia inválido” captura qualquer número fora de 1-7.

ADVERTISEMENT

Erros Comuns e Limitações da Cadeia If-Else

A Fórmula Fica Longa Demais para Ler

Uma cadeia com mais de cinco ou seis condições pode ser difícil de depurar. O editor de fórmulas do Notion não suporta quebras de linha ou comentários. Para manter a fórmula gerenciável, considere dividir a lógica em várias propriedades de fórmula. Por exemplo, use uma fórmula para converter a entrada em um valor intermediário e outra fórmula para mapear esse valor para a saída final. Alternativamente, use uma tabela de banco de dados separada com uma relação de consulta se o número de casos exceder dez.

Esquecer o Caso Padrão

Se você omitir o valor else final, a fórmula retorna uma string vazia quando nenhuma condição corresponde. Isso pode causar problemas de exibição nas visualizações do banco de dados, especialmente se a fórmula for usada em um filtro ou classificação. Sempre inclua um fallback, mesmo que você ache que todas as entradas possíveis estão cobertas.

Usar o Operador de Comparação Errado

O Notion usa == para igualdade, não =. Um sinal de igual simples é usado para atribuição em algumas linguagens, mas o Notion o trata como erro. Verifique suas condições se a fórmula gerar um erro de sintaxe.

Condições Sobrepostas ou Não Mutuamente Exclusivas

Se duas condições podem ser verdadeiras para a mesma entrada, apenas a primeira na cadeia é executada. Por exemplo, se você verificar prop("Pontuacao") > 90 antes de prop("Pontuacao") > 80, uma pontuação de 95 corresponde à primeira condição e nunca atinge a segunda. Ordene suas condições da mais restritiva para a menos restritiva para evitar esse problema.

Cadeia If-Else vs Único if() com Múltiplas Condições

Item Cadeia If-Else (Equivalente a switch) Único if() com and()
Propósito Mapear um único valor para uma de várias saídas com base em correspondências exatas Retornar um único resultado quando múltiplas condições devem ser todas verdadeiras
Complexidade da sintaxe Moderada — chamadas if() aninhadas podem se tornar profundas Simples — um if() com and() dentro
Número de saídas Uma saída por condição mais um padrão Apenas duas saídas: verdadeiro ou falso
Melhor caso de uso Mapear códigos de status, níveis de prioridade ou IDs de categoria Verificar se uma data está no futuro e o responsável está definido

A cadeia if-else é a ferramenta correta quando você precisa escolher entre mais de dois resultados possíveis com base em uma única entrada. Um único if() com múltiplas condições combinadas por and() retorna apenas um resultado verdadeiro e um resultado falso. Não tente forçar um comportamento semelhante a switch em um único if() — não funcionará.

ADVERTISEMENT

Conclusão

Agora você pode construir um equivalente a switch em fórmulas do Notion aninhando funções if() em uma cadeia. Cada if() testa uma condição e passa o restante para o próximo if(). O if() final fornece um valor padrão para entradas não correspondentes. Comece com a primeira condição, aninhe a segunda no ramo falso e continue até que todos os casos estejam cobertos. Sempre teste com casos extremos, como propriedades em branco ou números inesperados. Para mapeamentos complexos com mais de dez casos, considere usar um banco de dados de consulta separado para manter as fórmulas legíveis e fáceis de manter.

ADVERTISEMENT