Excel ignorando formatação de data nas células

A explicação curta (somente a solução):

O modo mais “simples” que encontrei para corrigir um número grande de células sem me cansar de dar click, click e ENTER foi:

  • Selecione todas as células com o problema em uma dada coluna
  • CTRL+C
  • Abra o Bloco de Notas
  • CTRL+V
  • Selecione tudo que você acabou de colar (o atalho para isso no Bloco de Notas geralmente é CTRL+A)
  • CTRL+C
  • Selecione a primeira célula com o problema na planilha
  • CTRL+V

Se não aparecer agora no formato que você quer, certifique-se de que a formatação das células é mesmo a que você deseja, pois depois de mexer muito você pode ter alterado.

 

A explicação longa:

O cliente apresentou o problema da seguinte forma: ele tinha uma planilha com uma coluna preenchida com datas na forma:

01/01/2018

E queria mudar tudo para o formato:

01/01/18

Eu olhei a configuração de formatação das células e já estava do jeito que ele queria. Mudei para outra formatação e isso continuou sendo ignorado pelo programa. Mas digitando uma data na célula, ao dar ENTER ela era convertida para o formato desejado.

Desconfiei de que o que estava vendo ali apesar de parecer uma data não era uma. Perguntei à funcionária que criou a planilha como ela havia digitado aquilo e ela me disse que havia sido importado de uma aplicação web, do banco (acho que era o Santander).

Na mosca. Possivelmente os caracteres estão em Unicode ou algo assim. O problema se manifesta no Excel XP e 2007. No 2007 fica ainda mais evidente que se trata de um bug, porque se eu clicar numa célula com o problema, depois clicar no campo edição e der ENTER, o formato se corrige. O que quer dizer que em uma das operações (copiar da célula para o campo de edição ou colar do campo de edição para a célula) o Excel 2007 percebe o problema e demonstra que sabe lidar com ele.

Neste ponto leia a explicação curta.

O que isso faz é usar o Bloco de Notas para “filtrar” os caracteres invisíveis. Seria útil se o Excel tivesse essa função embutida, mas eu não achei.

[EDIT] Se quiser saber mais sobre o problema leia a explicação de Claudio a seguir. A causa parece não ter nada a ver com caracteres invisíveis (é mais bizarra ainda).

 

49 comentários
  • Claudio - 13 Comentários

    Jefferson, o problema pode nem ser os caracteres da entrada. Ocorre que o conteúdo de uma célula é armazenado de uma forma se for “texto puro” e de outra forma se for uma data ou número.

    Um teste simples:

    – Sete a formatação de uma coluna vazia para “texto”
    – Entre algumas datas nessa coluna
    – Mude a formatação da coluna para um formato de data
    – Note que os dados na coluna não acompanham a formatação, seguem sendo tratados como texto
    – Edite algumas das células e observe que agora passam a ser tratadas como data

    Um campo de texto é armazenado como uma string internamente. Uma data é um número inteiro em “epoch format” (experimente mudar o formato da coluna para “número” para ver, e números tem representações diferentes dependendo de serem inteiros ou ponto flutuante.

    O motivo da simples mudança não ter efeito na planilha do seu cliente é porque no momento da importação aquela coluna foi tratada como texto.

    Se você estiver importando de um arquivo CSV e tiver paciência de não clicar “next, next next” no wizard, a última etapa do importador permite escolher o tipo de dado para cada coluna do arquivo de origem; se você não escolher, os dados são importados como texto (afinal, CSV não tem informação de tipo de dado).

    Para a importação da web o procedimento deve ser similar, desde que seja usado o wizard, não um mero COPY+PASTE (se bem que mesmo o COPY+PASTE pode funcionar se você tiver o cuidado de setar o tipo das colunas antes de colar).

    • Jefferson - 6.542 Comentários

      – Sete a formatação de uma coluna vazia para “texto”
      – Entre algumas datas nessa coluna
      – Mude a formatação da coluna para um formato de data
      – Note que os dados na coluna não acompanham a formatação, seguem sendo tratados como texto
      – Edite algumas das células e observe que agora passam a ser tratadas como data

      Sim, acontece como você descreveu.

      O motivo da simples mudança não ter efeito na planilha do seu cliente é porque no momento da importação aquela coluna foi tratada como texto.

      Para mim isso é contra-intuitivo. Eu não uso planilhas e por isso posso não estar a par de algum conceito que torne esse comportamento intuitivo. Do ponto de vista de um usuário que executa um comando de formatação, eu espero que haja uma mudança visual imediata se existir uma diferença visual. Em outras palavras, eu espero que as células sejam atualizadas.

      Existe algum comando de “refresh” que eu deveria dar para atualizar a visualização da tabela?

  • Claudio - 13 Comentários

    Refresh que re-interprete o conteúdo da coluna até onde eu saiba não (mas poderia ser implementado como uma macro). O problema aqui é a ambiguidade: se no momento em que os dados foram importados você disse que era texto (o default se não especificar), como decidir se 4/1/18 refere-se a 4/Jan/2018, a 1/Abr/2018, ou se é uma marcação de texto (código interno, sei lá) e não uma data?

    Por isso é importante sempre definir os tipos de cada coluna no momento da importação, para não ter ambiguidade. nesse momento o wizard te deixa não apenas selecionar o tipo “data” como informar a máscara (dd/mm/yyyy, mm/dd/yyyy ou outras). É o caminho mais tranquilo, mas envolve treinar os usuários para ir devagar nessa etapa, e não simplesmente clicar “próximo, próximo, finalizar” :-)

    Mas, dando o braço a torcer, bem que o wizard de importação poderia se comportar de forma diferente, e resolveria esse problema:

    – Em vez de o tipo de dado default de uma coluna ser “texto”, usar como default algo como “unspecified”
    – Ao importar dados, se o tipo da coluna é “unspecifiedf”, usar a mesma regra da entrada manual de texto na célula: se parece uma data, fazer o parsing usando o locale do sistema (dd/mm/yyyy ou mm/dd/yyyy); se parece um número ou moeda, tratar como tal …

    Algo assim geraria menos frustração.

    Mas isso nunca vai ser feito porque a MS não pode quebrar a compatibilidade do wizard de importação, porque isso afetaria usuários atuais :-(

  • Pedro - 1 Comentário

    Jefferson, você indicou a solução para um problema que eu tenho há anos. Obrigado

  • Carlos - 1 Comentário

    Jefferson, sou outra pessoa que me ajudou. Passei quase 2 dias batendo cabeça para não ficar no click e enter, clique e enter, clique e enter………

    OBRIGADO!!!!!

  • Bruno - 1 Comentário

    Copiar tudo pro bloco de notas e depois copiar de novo para o excel funcionou! Muito obrigado, eu tava digitando um a um, rsrs

    Valeu mesmo

  • maycon - 1 Comentário

    Vc me salvou, negocio do bloco de notas funcionou, tinha 1500 linhas pra ficar fazendo click enter, tava ficando doido ja kkk

  • Paulo Rodrigues - 1 Comentário

    Boa tarde,
    Solução simples e perfeita!!!
    O mundo precisa de pessoas assim!!!

  • Denise - 1 Comentário

    Meu muito obrigada pelo post Jefferson! Resolveu o problema, fantástico!

  • Breno - 1 Comentário

    Meu caro amigo boa noite, sensacional sua dica muito boa, que O ETERNO nosso Deus te abençoe ricamente meu caro.

    Breno Ribeiro

  • Renato - 1 Comentário

    Espetacular… me poupou refazer o trabalho. Muito obrigado.

  • Thiago - 1 Comentário

    Obrigado! Você resolveu um grande problema meu com o Ctrl C Ctrl V. Eram mais de 5000 entradas de data e se eu tivesse que clicar uma a uma nunca ia conseguir terminar.

  • Raphael - 1 Comentário

    Eu tinha mais de 50.000 entradas para tratar e essa ajuda me salvou. Que DEUS te abençoe e ilumine seu caminho sempre amigo. Que o mundo tenha mais pessoas como você!

  • Caio F. Santos - 1 Comentário

    Jefferson, sou um usuário do Excel de conhecimento limitado. Mas fiz o seguinte: selecionei a coluna com as datas no formato dd/mm/aaaa; usando o comando substituir, troquei “/20” por “/” (eu teria substituído também, se houvesse datas do século XX, “/19” por “/”). O Excel, então, ou passou a exibir as datas no formato desejado (dd/mm/aa), ou passou a reconhecer o conteúdo de cada célula como uma data, e não como um texto. A partir disso, o Excel passou a aceitar a alteração dos formatos de data.

    • Ellise - 1 Comentário

      Vc me deu uma ideia que me ajudou a atualizar todos os dados.
      Troquei o formato da coluna para data, selecionei a coluna, fui em localizar e substituir e substituí “/” por “/” (igual mesmo, só pra fazer uma atualização em massa) e deu certo.

  • Elyas - 2 Comentários

    Boa tarde, amigo. Estava com o mesmo problema hoje, necessitando copiar um detalhado de vendas com datas de uma planilha gerada pelo Banco, para uma planilha que criei onde seleciono os dados que me convém. Após ler sua solução e ver que deu certo, consegui chegar em outra solução mais simples!

    -COPIAR a tabela que o Banco gerou
    -COLAR no campo que criei e que falhava, MAS COMO TEXTO! Só precisa clicar no botão COLAR ESPECIAL e utilizar a opção TEXTO.

    Obrigado pela dica e espero que ajude mais pessoas!

    • Elyas - 2 Comentários

      Caso não funcione ou não haja a opção faça o seguinte procedimento:

      – selecione a COLUNA ou os valores dessa COLUNA que deseja arrumar;
      – vá na Aba DADOS e selecione a opção TEXTO PARA COLUNA;
      – ao abrir uma janelinha de opções, não precisa configurar nada, só clique em CONCLUIR!
      -PRONTO! DADOS ATUALIZADOS!

      • Geovane Silva Oliveira - 1 Comentário

        Que Ótimo, é a forma mais pratica!!

      • Marcelo Martins - 1 Comentário

        Deu certo aqui comigo, excelente alternativa. Sofria com esse problema há anos e sai daqui com 3 alternativas que testei e solucionaram meu problema. Obrigaddo a você e ao Jefferson que trouxeram esse tema

    • Jefferson - 6.542 Comentários

      Sua solução faz muito sentido, porque o que a minha faz é justamente isso: “colar como texto”. Mas quando você está pegando os dados na fonte, o seu procedimento é mais simples porque faz a conversão na hora.

  • Diego Marques - 1 Comentário

    Um processo mais simples, ao meu ver, é selecionar a coluna, ir em “Dados” e escolher a opção “Dados para coluna”. Clicar em Avança>Avança>Concluir.
    A coluna já deverá estar formatada.

  • Felipe - 1 Comentário

    Jefferson, muito obrigado pela ajuda. Sua solução foi simples, eficaz e eficiente. Em outras palavras, perfeita! Me ajudou de forma imensurável.

  • Cláudio - 1 Comentário

    Cara, essa solução me ajudou muito.

  • Renato - 1 Comentário

    muito obrigado meu amigo Claudio! a dica do bloco de notas foi fantástica.
    o excel realmente deveria ter um recurso de refresh para corrigir esse problema de importação.

  • Rafael Garofilo - 1 Comentário

    Nossa, salvou minha vida essa dica.
    Que mais gente seja salva, hehe

  • Fabio Sobrinho - 1 Comentário

    OU simplesmente selecione a coluna, formate com texto, depois ctrl+L localize o ano, exemplo : ” Se estiver 2019, substitua para 19″ e pronto ! Aqui funcionou ! Abraços !

  • Ari Junior - 1 Comentário

    nao funcionou nem com o bloco de notas

  • Renato Panzoldo - 1 Comentário

    Jefferson, MUITO, MUITO OBRIGADO por repartir a sua SABEDORIA!!
    Há muito, MUITO tempo eu estou no click, corrige e enter!
    A sua solução é simples e fenomenal!
    Gratíssimo!

  • Liliane - 1 Comentário

    Obg!! Salvou minha pele

  • Laís Rebeca - 1 Comentário

    Muitoooo obrigada!!! Estava até com dificuldade de pesquisar isso no Google, ainda bem que achei essa resposta! Tinha umas 300 linhas para dar “enter”. =DDD

  • Gabriel - 1 Comentário

    Obrigado Jefferson! Em muitos anos trabalhando com excel, a única solução que me ajudou nesse problema foi a sua.

    Obrigado por compartilhar!

  • Lucas - 1 Comentário

    Manooo super funcionou hahah valeu

  • Marcus Paixão - 1 Comentário

    Funcionou!!!!
    Simples e eficiente

    Valeeeeu

  • Aline - 1 Comentário

    Gratidão pela sua vida!!!!!
    Deus abençõe por ter compartilhado essa dica!!!

  • Franciele Matos - 1 Comentário

    Me salvou. Uma colega pediu ajuda com esse erro e fiquei indignada que minhas tentativas de solução mais corriqueiras falharam. Achei sua publicação e pá! Solucionado!!!

    Obrigada

  • Lincoln - 1 Comentário

    Crie uma coluna limpa ao lado da coluna de data.
    Insira a fórmula DATA.VALOR nesta nova coluna apontando para o conteudo das células com a informação de data não reconhecida.
    Copie e cole a fórmula para as demais células da nova coluna e automaticamente ela será uma coluna convertida em data.

  • Luciana - 1 Comentário

    De uma forma simples, vc não imagina como ajudou…

  • Túlio - 1 Comentário

    Top demais! Me ajudou muito também!

  • Vania - 1 Comentário

    Você me salvou…. Muito obrigada

  • Bruno Kano - 1 Comentário

    QUE D+!!!!!!!
    Estava me mantando de clicar enter aqui rs..

    Muito obrigado!!

  • Euciclei Santos - 1 Comentário

    Uau, funcionou pra mim. Muitíssimo obrigado!

  • Rejane - 1 Comentário

    Estava com esta dificuldade encontrei outra solução:

    Se mesmo fazendo bloco de notas e copiando texto o erro persistir, dentro ver se existe algum espaço no primeiro caractere e substitui os espaço por nada.

    Ele vira texto, aí converte em data, para mim deu certo

  • Waunner - 1 Comentário

    Muito bom!!! Estava a uma semana quebrando cabeça e pesquisando formas de resolver até chegar no seu post.
    Valeu!
    Obrigado.

  • Antonio - 1 Comentário

    Cara, valeu pela dica do bloco de notas pra formatar uma célula com data. Minha planilha tem 700 mil linhas. Me salvou. OBRIGADO.

  • Thamires - 1 Comentário

    Sensacional!! Dica para salvar a vida!! Gratidão.

  • Alexandre - 1 Comentário

    Tu és o cara!!! Resolveu!!!

  • Rodrigo - 1 Comentário

    O meu só resolveu quando fiz colando no Word. Era um problema que venho tentando resolver a tempos. Obrigado!

Deixe um comentário

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »