Função SEERRO: Como tratar erros de funções no Excel
Função SEERRO: Como tratar erros de funções no Excel
O Excel pode exibir diversos erros se uma função não funcionar como esperado por conta de falta de argumentos, erro de referência ou incompatibilidade de tipos de dados, por exemplo. No entanto, isso não significa necessariamente que há algo errado com sua função; talvez ela não funcione por conta de outros dados atrelados a ela.
A função SEERRO é capaz de tratar esses erros, ou seja, criar uma ação específica caso uma função retorne um erro, como os comuns erros #N/D, #REF!, #DIV/0! e #VALOR!, por exemplo.
Neste artigo, vamos dar uma olhada em três exemplos práticos usando a função SEERRO para tratar esse tipo de mensagem. Também iremos aprender a como usá-la em conjunto com a função SE para diferenciar erros de resultado e erros advindos de células vazias.
Versão em vídeo
Versão do Excel utilizada na aula: Microsoft Excel Professional Plus [versão 2019]
Download dos arquivos
Você pode baixar os arquivos utilizados no tutorial em vídeo. O arquivo inicial refere-se ao arquivo sem as modificações, ideal para praticar o passo a passo e treinar suas habilidades. O arquivo pronto é o arquivo final, com todas as modificações ensinadas já aplicadas, ideal se você já quiser ter em mãos o resultado.
Para baixar os arquivos, acesse a página de download e clique no botão Baixar.
Inscreva-se para receber novos arquivos, aulas, artigos e dicas por e-mail!
Ao se cadastrar, você aceita nossos Termos de Uso e Serviço e nossa Política de Privacidade.
Versão em texto / ilustrada
Versão do Excel utilizada neste tutorial: Microsoft Excel Professional Plus [versão 2019]
Exemplo 1: Tratando o erro #N/D na função PROCV
No exemplo abaixo, ao digitar o nome de um vendedor, o Excel, através da função PROCV, deve retornar a quantidade de itens vendidos por essa pessoa, conforme a tabela à esquerda.
Observe que, quando não há um termo digitado na célula de pesquisa, o Excel retorna o erro #N/D (não definido), porque não há nenhum termo definido como critério para a busca.
O mesmo erro acontece quando o termo pesquisado não é encontrado na base de dados, como mostrado no exemplo abaixo.
Apesar de não representar necessariamente um “problema de cálculo”, a exibição de erros assim faz com que a estética de sua planilha seja prejudicada, bem como a usabilidade dela, principalmente quando o arquivo é desenvolvido para uso de terceiro.
Personalizar o que o Excel deve mostrar em casos assim é uma ótima maneira de deixar suas planilhas mais dinâmicas e também interativas.
O Excel executa operações dentro de uma fórmula de maneira linear, ou seja, as primeiras em primeiro lugar. Sendo assim, a lógica também é simples: a SEERRO deve vir antes da função principal na fórmula, para que ela analise se essa função retornará ou não um erro. A sintaxe da fórmula já mostra isso de maneira clara:
=SEERRO(valor; valor_se_erro)
Valor é o termo a ser analisado (propriamente a função principal ou mesmo uma outra célula referenciada). Já valor_se_erro representa o que o Excel exibirá se a estrutura inserida no primeiro argumento retornar um erro. Aqui você pode estabelecer qualquer resultado: um texto simples, uma referência a uma célula ou até outra função.
No nosso exemplo, vamos supor que queiramos exibir a mensagem “Erro” na célula que contém o resultado da busca. A “função de resultado” é a PROCV, portanto ela deve ficar dentro do argumento valor. Já o texto a ser exibido deve ficar dentro de valor_se_erro.
=SEERRO(PROCV(E2;A:B;2;FALSO);”Erro”)
Lembre-se de que, no caso de exibição de texto como resultado de um erro, o texto deve sempre estar entre aspas, o que não deve ocorrer quando o resultado for uma outra função ou referência.
A partir de agora, todo erro resultante dessa função será substituído pelo texto indicado na função SEERRO.
Exemplo 2: Tratando o erro #DIV/0! na função MÉDIASE
Não há mudança alguma na sintaxe da SEERRO para qualquer outra função ou outro erro. Na planilha abaixo, por exemplo, estamos usando a função MÉDIASE (média condicional) para calcular a média de vendas de uma determinada loja em meio a vendas de todas as outras lojas. Assim como acontece com a PROCV, o erro aqui é exibido tanto para casos em que não há dado a ser pesquisado (célula de referência vazia) quanto para casos em que o termo pesquisado não é encontrado na base de dados.
O erro #DIV/0! acontece porque, como não há dado a ser pesquisado, não há como se dividir nenhum resultado por zero, já que todas as funções de média aritmética calculam, implicitamente, uma divisão.
Vamos tratar esse erro também utilizando um texto como resultado.
=SEERRO(MÉDIASE(C2:C21;G2;D2:D21);”Loja não encontrada”)
Assim como no caso anterior, o primeiro argumento da função é sempre a função principal a ser testada. Em seguida, o resultado que deve ser exibido caso haja um erro. No nosso exemplo, vamos exibir uma mensagem informando que a loja não foi encontrada.
Assim, toda vez que não houver dado a ser pesquisado ou um dado que não se encontre na base de dados, a mensagem em texto será exibida.
Exemplo 3: Tratando o erro #VALOR! em tipo incompatível de número
O erro #VALOR! costuma acontecer quando há incompatibilidade de tipos de dados, como operações envolvendo números e texto, mas é bastante comum quando o intervalo de análise de uma função não tem a mesma extensão do intervalo de cálculo, por exemplo.
De qualquer forma, ele também pode ser tratado com a função SEERRO.
Na planilha acima, um valor antigo sofre um acréscimo percentual e o Excel calcula o novo valor baseado nesse acréscimo. Observe que, todavia, algumas operações retornaram o erro #VALOR!. Na coluna dos acréscimos, podemos notar que, nesses dois casos, a porcentagem está notada com ponto no lugar de vírgula para separar as casas decimais, o que não é o padrão para o sistema numérico usado no Brasil e com o qual o Excel está configurado no nosso exemplo.
=SEERRO(A2+(A2*B2);”Valor incompatível”)
Note que, nesse caso, não temos necessariamente uma função a ser testada, mas operações matemáticas agrupadas. Não importa; a sintaxe é sempre a mesma, tomando cuidado para toda a estrutura a ser testada se encaixar apenas no primeiro parâmetro da SEERRO (valor).
Nesse exemplo específico, como os testes precisam ser replicados, basta usar o autopreenchimento.
A função SEERRO não “entende” necessariamente que o valor digitado é um valor incompatível, mas trata qualquer tipo de erro na célula.
Nesse caso, a mensagem é exibida por conta do erro #VALOR!, mas não haverá erro se não houver acréscimo digitado, porque a operação continuará funcionando mesmo com uma célula vazia (o que é interpretado como zero em algumas operações). Ou seja, especificamente nessa situação, a SEERRO não retornará uma mensagem de erro. Portanto, nesses casos, você pode usar a função SE agregada à função SEERRO, como veremos a seguir.
Diferenciando o tratamento de erros de dados e de células vazias usando SE e SEERRO
Voltemos ao exemplo da função PROCV. Ela apresenta o erro #N/D em dois casos básicos: quando não há termo a ser buscado e quando o termo não existe na tabela de dados. Podemos criar uma condição para a célula vazia (com a função SE) e uma condição para a célula com dado inexistente (com a função SEERRO).
=SE(E2=””;””;SEERRO(PROCV(E2;A:B;2;FALSO);”Erro”))
Aqui, antes de qualquer coisa, a função SE testará se a célula de pesquisa contém ou não um dado. Se estiver vazia, o Excel deixará a célula de retorno também vazia. Caso não, o programa procederá com a execução da função SEERRO. Ou seja, a execução da SEERRO ficou atrelada ao resultado da função SE.
Agora, a mensagem de erro só é mostrada se o vendedor a ser pesquisado não existir. No caso de célula vazia, o resultado também é vazio.
É claro que você pode personalizar o resultado para células vazias, inserindo uma mensagem diferente daquela formulada dentro da SEERRO.
Dicas e informações complementares
- Você pode tratar, em uma célula, um erro resultado de outra célula. Basta que, no primeiro argumento, você referencie essa célula. Por exemplo, ao digitar em qualquer célula =SEERRO(H12;”Nada encontrado”), o Excel verifica se há um erro em H12 para retornar ou não um determinado resultado. Se houver, retorna a mensagem personalizada de erro; se não, exibe o mesmo valor contido em H12.
- Em vez de tratar erros, especialmente no caso de valores incompatíveis, você pode aplicar uma validação de dados no intervalo de valores, evitando que determinados erros aconteçam.