Você criou uma fórmula em um banco de dados do Notion que puxa dados de uma propriedade de Relação. Quando a relação está vazia, a fórmula mostra a palavra “Indefinido” em vez de um valor em branco ou alternativo. Isso acontece porque as fórmulas do Notion tratam células de relação vazias como dados ausentes, não como uma string vazia. Este artigo explica exatamente por que o erro ocorre e fornece a correção da fórmula para exibir um espaço em branco ou texto personalizado quando a relação não tem página vinculada.
Principais Conclusões: Corrigindo Indefinido em Fórmulas de Relação no Notion
- prop(“Item Vinculado”).map(current.prop(“Nome”)) Retorna um array; uma relação vazia ainda retorna um array com um elemento que é indefinido
- if(empty(prop(“Item Vinculado”)), “”, prop(“Item Vinculado”).map(current.prop(“Nome”))) Envolve a saída do array em uma verificação de vazio para evitar a exibição de indefinido
- if(empty(prop(“Item Vinculado”)), “Sem dados”, prop(“Item Vinculado”).map(current.prop(“Nome”))) Substitui indefinido por texto personalizado como “Sem dados”
Por que uma Fórmula de Relação do Notion Mostra Indefinido
As fórmulas do Notion que leem dados de uma propriedade de Relação usam a função map() para extrair valores das páginas vinculadas. Por exemplo, prop("Item Vinculado").map(current.prop("Nome")) retorna um array de nomes de todas as páginas vinculadas. Quando a propriedade de Relação está vazia — ou seja, nenhuma página está vinculada — a fórmula ainda tenta executar map() em um array vazio. O resultado é um array contendo um único elemento que é undefined.
O Notion exibe esse valor undefined como a palavra literal “Indefinido” na célula da fórmula. Isso não é um bug. É o comportamento esperado do mecanismo de fórmulas quando não consegue resolver um valor de um conjunto vazio. A fórmula não retorna automaticamente uma string em branco ou zero. Você deve lidar explicitamente com o caso vazio usando a função empty() combinada com uma declaração if().
A causa raiz é que map() sempre retorna um array, mesmo quando a propriedade de origem não tem itens. Uma relação vazia não é o mesmo que um valor nulo na lógica da fórmula. A função empty() detecta corretamente uma relação com zero páginas vinculadas e retorna true. Usar essa verificação antes da chamada map() evita a saída indefinida.
Passos para Substituir Indefinido por um Valor em Branco ou Personalizado
- Abra o banco de dados onde a fórmula mostra Indefinido
Vá para seu espaço de trabalho do Notion e abra a página do banco de dados que contém a propriedade da fórmula. Clique no título do banco de dados no topo da página para revelar o menu e selecione “Abrir como página” se necessário. - Edite a propriedade da fórmula
Clique no menu “…” no cabeçalho da coluna da fórmula. Escolha “Editar propriedade” no menu suspenso. O painel do editor de propriedades abre no lado direito da tela. - Localize a fórmula que referencia a propriedade de Relação
No editor de propriedades, encontre o campo de texto da fórmula. Ele contém a fórmula atual que retorna Indefinido. O padrão ofensivo típico éprop("Item Vinculado").map(current.prop("Nome"))onde “Item Vinculado” é o nome da sua propriedade de Relação. - Envolva a fórmula com uma verificação de vazio
Substitua a fórmula existente por esta estrutura:if(empty(prop("Item Vinculado")), "", prop("Item Vinculado").map(current.prop("Nome")))A função
empty()retornatruequando a relação tem zero páginas vinculadas. A declaraçãoif()então gera uma string vazia""em vez de executar a funçãomap(). Quando a relação tem pelo menos uma página vinculada, omap()é executado normalmente e retorna o array de nomes. - Use texto alternativo personalizado se necessário
Se preferir um texto como “Nenhum item vinculado” em vez de uma célula completamente em branco, substitua a string vazia:if(empty(prop("Item Vinculado")), "Nenhum item vinculado", prop("Item Vinculado").map(current.prop("Nome")))Você pode escrever qualquer texto dentro das aspas. O Notion exibirá esse texto em todas as células da fórmula onde a relação estiver vazia.
- Teste a fórmula com relações vazias e preenchidas
Após salvar a fórmula, verifique uma linha que não tenha página vinculada. A célula deve mostrar seu valor alternativo em vez de “Indefinido”. Em seguida, verifique uma linha com uma ou mais páginas vinculadas. Os nomes devem aparecer corretamente como um array.
Lidando com Múltiplos Valores de Relação com a Mesma Correção
A correção funciona da mesma forma quando sua fórmula extrai várias propriedades da relação ou usa funções aninhadas. Por exemplo, se sua fórmula original é prop("Item Vinculado").map(current.prop("Data de Vencimento").format("MMM D")), envolva-a da mesma maneira: if(empty(prop("Item Vinculado")), "", prop("Item Vinculado").map(current.prop("Data de Vencimento").format("MMM D"))). A verificação empty() impede que toda a cadeia seja executada quando nenhuma página está vinculada.
Se o Notion Ainda Mostrar Indefinido Após a Correção
A fórmula ainda mostra Indefinido em relação vazia
O erro mais comum é colocar a verificação empty() dentro da função map() em vez de fora dela. Por exemplo, prop("Item Vinculado").map(if(empty(current), "", current.prop("Nome"))) não resolve o problema porque map() ainda é executado em um array vazio e retorna um array com um elemento indefinido. A verificação empty() deve estar na própria propriedade de relação, antes da chamada .map().
A fórmula retorna um array vazio [] em vez de em branco
Se você usar if(empty(prop("Item Vinculado")), [], prop("Item Vinculado").map(current.prop("Nome"))), a célula mostrará [] quando a relação estiver vazia. Use uma string vazia "" dentro da declaração if() para exibir uma célula completamente em branco. Se você quiser que a célula pareça vazia, mas ainda contenha um array para fórmulas downstream, use [] intencionalmente.
A fórmula funciona em um banco de dados, mas não em outro
Verifique se o nome da propriedade de Relação na fórmula corresponde exatamente. Os nomes das propriedades diferenciam maiúsculas de minúsculas. Um erro de digitação como prop("item vinculado") em vez de prop("Item Vinculado") faz com que a fórmula retorne Indefinido para todas as linhas, não apenas para as vazias. Abra o editor de propriedades e copie o nome exato da lista de propriedades.
Comportamento da Fórmula do Notion: Relação Vazia vs. Rollup vs. Lookup
| Recurso | Saída com Relação Vazia | Método de Correção |
|---|---|---|
| Relação com map() | Indefinido | if(empty(prop(…)), “”, prop(…).map(…)) |
| Propriedade Rollup | Em branco (sem valor) | Nenhuma correção necessária — Rollup já retorna em branco para relações vazias |
| Lookup com fórmula | Indefinido | Mesmo método de envolvimento que Relação com map() |
Uma propriedade Rollup exibe automaticamente uma célula em branco quando a relação de origem está vazia. Você não precisa da correção empty() para Rollup. Uma propriedade Lookup que usa uma fórmula para extrair dados de um banco de dados vinculado se comporta da mesma forma que uma fórmula de Relação e requer a mesma correção.
Agora você pode corrigir qualquer fórmula do Notion que mostre Indefinido para uma relação vazia. Aplique o padrão if(empty(prop(...)), "", ...) em todas as fórmulas que leem dados de uma relação ou lookup. Para fórmulas que puxam vários valores, considere usar a função join() dentro do map() para retornar uma única string em vez de um array. Por exemplo, if(empty(prop("Item Vinculado")), "", prop("Item Vinculado").map(current.prop("Nome")).join(", ")) mostra uma lista separada por vírgulas e mantém a célula em branco quando a relação está vazia.