Fazer o Excel distinguir célula vazia X célula contendo valor 0 (zero)

Certa vez um leitor perguntou-me a respeito do Excel não diferenciar os valores da célula quando este for 0 (zero) ou for uma seqüência vazia (célula vazia).

Ele disse:
Estou com a seguinte dúvida: Não consigo fazer com que uma célula diferencie 0 de vazio, quando copiado de outra célula. Exemplo: digito em E1, C1=A1 e tanto faz se A1 está vazia ou com 0 o valor retornado é sempre 0.

Algumas perguntas que permeiam este tema são: Existe uma fórmula para diferenciar valor 0 (zero) de seqüência vazia? Como identificar se valor da célula é 0 ou vazio?
Enfim, quando escrevemos uma fórmula que faça referência a qualquer célula vazia o resultado retornado será 0. Faça um teste:
Digite 0 na célula A1. Em seguida, digite na célula B1 a seguinte fórmula:

= A1

Perceba que o resultado da fórmula é 0 (zero).
Agora, apague o conteúdo da célula A1, não escreva nada nela. Veja o resultado da célula B1. Incrível! Continua zero.
Bem. Isso não é um problema, pois não influencia em cálculos, visto que, zero e nada, são a mesma coisa para efeito de operações matemáticas. Dependendo da formatação, tipo moeda, por exemplo, aparece um traço se for zero, mas neste texto ensino como remover aquele tracinho.
Mas, quando há necessidade de comparações textuais, por exemplo, ou de análise de informações diversas, como era o caso do leitor citado acima, isso faria uma grande diferença. Digamos que se queira comparar valores em duas células. Um deles (A1) possui o valor zero e o outro (B1) não foi informado, portanto a célula está vazia. Se fizermos uma comparação simples do tipo A1=B1, ela falhará, pois retornará VERDADEIRO, porque nesta comparação 0=vazio (zero é igual à célula vazia). A comparação não poderia ser verdadeira pelo fato de que ainda falta um dado a ser informado em B1, o que deveria ser sinalizado na fórmula para uma possível tomada de ação do analista daquela planilha.
Como resolver isto de maneira simples? Isto é o que eu vou dizer para vocês agora.Quem já ouviu falar nas fórmulas de Informações existentes no Excel? Pois é, vamos nos auxiliar de uma delas para nos ajudar. Vamos utilizar a função ÉCEL.VAZIA. A propósito, indico um Curso de Excel expetacular, onde você aprenderá ótimas referências para usar no dia a dia.
Esta fórmula, ÉCEL.VAZIA, tem um retorno binário, ou seja, retorna Verdadeiro ou Falso, se a célula que estiver sendo analisada tiver algum conteúdo.
Construiremos nossa fórmula tendo em vista que nosso algoritmo deverá analisar se o conteúdo da célula é vazio, se for, ele retorne uma seqüência de comprimento nulo, caso contrário, ele retorne o próprio conteúdo da célula analisada.
Ou seja, o algoritmo:

SE Célula é vazia ENTÃO

Escreva “”

SENÃO

Escreva o conteúdo desta Célula

Traduzindo para uma fórmula no Excel, teremos:

=SE(ÉCÉL.VAZIA(A1);””;A1)

Note que se você digitar qualquer valor em A1, inclusive 0 (zero) irá retornar este valor. Mas, se você apagar o conteúdo de A1, ou seja, a célula fica vazia, será retornado pela fórmula o valor vazio (“”) e não 0 (zero) como disse no início deste artigo.
Funcionou!
Agora para fazer a comparação de valores como foi sugerido ao iniciar esta matéria, faça o seguinte para comparar A1 e B1:

=SE(ÉCÉL.VAZIA(A1);””;A1)=SE(ÉCÉL.VAZIA(B1);””;B1)

Espero que esta dica simples possa salvá-los em algum momento de um possível stress. Faça o download do arquivo no final deste artigo e aproveite para
Abraço.

23 comentários em “Fazer o Excel distinguir célula vazia X célula contendo valor 0 (zero)”

  1. Ola!!!!
    Bom estou com um problema no VBA do Excel, eu preciso criar uma macro que faça uma cópia de uma planilha com outro nome e depois mande por email tudo isso numa rotina do VBA
    Obs: eu tenho o outlook Express e Microsoft Office 2003
    Eu fiz esta rotina só que esta faltando a rotina em que ela faça uma cópia e mantenha a atual (eu quero mandar somente uma planilha se as formualas somente com os dados citados nela), se alguém puder me ajudar fico grato.
    Private Sub CommandButton4_Click()
    Dim Recipient As String, Subj As String, HLink As String
    Dim Recipientcc As String, Recipientbcc As String
    Dim msg As String
    Dim arq As String
    ‘ AQUI ENVIA O E-MAIL
    Recipient = “fulano@fulanodetal.com.br”
    ‘Recipientcc = “ciclano@ciclanodetal.com.br”
    ‘Recipientbcc = “”
    Subj = “Solicitação de N.F”
    msg = “Testando!!!” & vbNewLine & vbNewLine & _
    “Favor enviar o nº da NF”
    msg = WorksheetFunction.Substitute(msg, vbNewLine, “%0D%0A”)
    HLink = “mailto:” & Recipient & “?” & “cc=” & Recipientcc _
    & “&” & “bcc=” & Recipientbcc & “&”
    HLink = HLink & “subject=” & Subj & “&”
    HLink = HLink & “body=” & msg
    ThisWorkbook.FollowHyperlink (HLink)
    ‘Aqui anexa o arquivo e envia o email
    With Application
    .Wait (Now + TimeValue(“0:00:01”))
    .SendKeys “%i”, Wait = True
    .SendKeys “~”, Wait = True
    .SendKeys “C:\Documents and Settings\Meus documentos” & arq & “.xls”, Wait = True
    .SendKeys “~”, Wait = True
    .SendKeys “%s”, Wait = True
    End With

    Responder
  2. Boa tarde.
    E se eu quiser retornar as células vazias de uma lista, por exemplo?
    Tipo, usando CONT.SES, em que uma das condições para retornar o valor é que a célula esteja vazia? Não consegui estabelecer essa relação.
    Tenho uma lista em que a primeira condição é que o item pertença a uma família: =CONT.SES(Dados[Família];critério;…
    O segundo critério é que conte somente as células vazias dessa família…
    Dá sempre zero.
    Ajuda aê…
    Abraço

    Responder
    • Alessandro,
      Se você estiver comparando a mesma coluna nos dois critérios vai dar sempre zero, porque o critério vazio nunca será atendido…
      Para fazer uma comparação com dois critérios utilizando a mesma coluna, certifique-se de estar configurando critérios que possam ser válidos.
      Um exemplo compreensível seria que o primeiro critério pertença a determinada família e o segundo critério é que esta possua mais de 4 membros numa segunda coluna. Ex:
      =CONT.SES($A$2:$B$10;A1;$B$2:$B$10;”> 4″)
      Foi o que eu entendi da sua dúvida.
      Abç

      Responder
  3. Tenho uma duvida como faço uma formula que possa entender o seguinte:
    previsão + parcelas pag (7 14 21 28 35) igual data do venc.
    Fiz o segunte:
    Criei cinco colunas onde digito as parcelas e cinco colunas onde aponta as data do vencimento.
    Porem tem fornecedores que não cinco pagamento e sim menos.
    Pergunto: Como faço para que a celula da coluna vencimento fique vazia, quando a coluna parcelas esteja em branco.
    Aguardo considerações.
    Att
    Valter Martins

    Responder
    • Valter,
      Acredito que você esteja se valendo valer de fórmulas nas células onde você obtém as datas de vencimentos.
      Sendo assim, acrescente a seguinte fórmula a já existente:
      =SE(ÉCÉL.VAZIA( célula parcela correspondente ); “”; a sua fórmula aqui que vc usa aqui )
      Veja um exemplo:
      Na célula A2: data da compra
      Na célula B1 (primeira parcela): 7
      Na célula B2 (primeiro vencimento): =SE(ÉCÉL.VAZIA( B1 ); “”; A2 + B1 )
      Na célula C1 (primeira parcela): 14
      Na célula C2 (segundo vencimento): =SE(ÉCÉL.VAZIA( C1 ); “”; A2 + C1 )
      Abç

      Responder
    • Então Elisabeth, desta forma está certo e não haverá problemas depois, porque, a comparação pela função SE já condiciona o resultado a ser comparado.
      O SE verifica se o conteúdo da célula é uma sequência vazia (“”), se for, retorna vazio, senão retorna o valor da célula. Desta maneira, a fórmula compara o resultado da função SE, não simplesmente o valor da célula, ok.
      Grande abraço.

      Responder
  4. Estou tentando o seguinte. Um exemplo ok ?:
    Se a célula B41 (que possui um índice e quando aberto só possui o X para preenchimento) for preenchida pelo X, a célula R41 é igual a BOM, mas se G41 é preenchida X, R41 é igual a GRAVE, mas se K41 for preenchida com X, R41 é igual a NÃO APLICÁVEL.
    Existe alguma fórmula para isso ?
    Não sei se consegue me enteder, mas é mais ou menos isso.
    Obrigado.

    Responder
    • Nelson, bom dia.
      Se os critérios forem apenas estes que você descreveu. Faça mais ou menos assim:
      =SE(K41=”X”;”NÃO APLICÁVEL”;SE(G41=”X”;”GRAVE”;SE(B41=”X”;”BOM”;””)))
      Entendeu? Você deve começar pelo critério que tem mais “peso”, ou seja, aque que é mais decisivo. No seu caso, comece definindo que, se o X que define o não aplicável estive marcado, o resultado será “Não aplicavel”, e vá descendo, sucessivamente, para os critérios de menor relevância.
      Um abraço.
      Não esqueça de nos seguir no twitter!!!

      Responder
  5. Olá bom dia preciso de uma dica quero fazer essa planilha e não estou conseguindo colocar as formulas certas
    A1 B1 C1 D1
    estoque utilizado sobrou Comprar
    100 48 52 0
    e tambem nesse caso tudo na mesma formula
    ———————————————————-
    A1 B1 C1 D1
    quant utilizado sobrou Comprar
    100 118 0 18
    se alguem puder me ajudar agradeço!!!

    Responder
      • Reinaldo, muito obrigado pela dica ficou do jeito que eu precisava, agora não querendo abusar da sua bondade já abusando gostaria de saber com faço para deixar a célula onde fica 0 ficar vazia e onde aparecer comprar ficar vermelho
        Muito obrigado

        Responder
    • Existem vários motivos que podem resultar o erro N/D (não disponível).
      A fórmula pode não estar bem escrita, ou, não está sendo possível encontrar um resultado.
      Enfim, é preciso analisar caso a caso.
      Abç

      Responder
  6. Tentei este método para criar um gráfico que ignorasse as células vazias mas assumisse zero para as células com a introdução 0, mas não funciona. Como faço?

    Responder
  7. Reinaldo, tenho uma dúvida e não estou encontrando nada que possa me auxiliar.
    Tenho uma planilha de gráficos, onde constam diversos meses, porém destes meses, alguns contém como valor, o zero.
    Só que com isso, o gráfico está muito poluído e difícil visualização, então não quero que os ‘0’ apareçam no gráfico.
    Muito obrigada!
    Aguardo retorno, por favor hahaha

    Responder
    • Bom, uma idéia é você utilizar os filtros do gráfico.
      Não sei como está configurado seu gráfico, sua lista de campos e posicionamentos…
      Exemplo: Se quiser filtrar algum campo, você pode adicioná-lo na seção filtro do relatório e filtrar os valores que deseja exibir ou não.
      No próprio gráfico, irá aparecer a opção para você filtrar os dados.
      Espero que ajude.
      Se quiser, mande sua planilha para eu dar uma olhada e tentar ajustar o gráfico para você. Envie neste link aqui:
      https://www.exceldoseujeito.com.br/servicos/tire-sua-duvida/
      Abraço

      Responder

Deixe um comentário