Não foi possível obter o Excel para reconhecer a data na coluna


45

Estou constantemente com problemas para trabalhar com datas no Excel, devo estar fazendo algo errado, mas não entendo o que.

Eu tenho uma planilha, exportada do nosso servidor de troca, que contém uma coluna com datas em. Eles foram lançados no formato americano, mesmo que eu esteja no Reino Unido.

A coluna em questão se parece com isso

04/08/2012
04/09/2009
04/01/2010
04/21/2011
04/05/2012
08/30/2009
08/29/2010
08/28/2011

No Excel, destaquei a coluna e selecionei Format Cells.... Nesta caixa de diálogo, selecionei o Date, selecionado English (United States)como o código do idioma e escolhi o formato de data correspondente na lista. Apertei OK e tento classificar os dados por esta coluna.

Na caixa de diálogo de classificação, escolho esta coluna, selecione a classificação em Valores, mas o pedido apenas oferece opções de A a Z, não das mais antigas para as mais recentes, como seria de esperar.

Por sua vez, classifica os dados da data pelos dois primeiros dígitos.

Estou ciente de que poderia re-formatar esses dados para ISO e, em seguida, o tipo de A a Z funcionaria, mas também não deveria, obviamente estou perdendo alguma coisa. O que é isso?

Edição: Eu errei a recompensa, mas isso deveria ter ido para a resposta @ r0berts , sua primeira sugestão de Text to Columns sem delimitador e escolhendo 'MDY' como o tipo de dados funciona. Além disso, se você tiver um tempo (ou seja 04/21/2015 18:34:22), precisará primeiro se livrar dos dados de tempo. No entanto, depois disso, o método sugerido por @ r0berts funciona bem.


Eu suspeitaria que o problema é o Excel não saber como fazer isso - você pode testar. Ao tentar atualizar o formato das datas, selecione a coluna e clique com o botão direito do mouse e escolha formatar células (como você já faz), mas escolha a opção 2001-03-14 (próximo ao final da lista). Suspeito que apenas alguns dos formatos de data sejam atualizados corretamente, indicando que o Excel ainda o trata como uma sequência, não como uma data!
Dave

Qual é o formato dos dados exportados? É CSV ou XLSX?
Excellll

Respostas:


70

O problema: o Excel não deseja reconhecer datas como datas, mesmo que através de "Formatar células - Número - Personalizado" você esteja tentando explicitamente dizer que essas são datas com " mm/dd/yyyy". Como você sabe; quando o excel reconhece algo como uma data, ele ainda o armazena como um número - como " 41004", mas é exibido como data de acordo com o formato especificado. Para adicionar confusão, o excel pode converter apenas parte de suas datas, como 08/04/2009, mas deixar outros, por exemplo, 28/07/2009 não convertidos.

Solução: etapas 1 e 2

1) Selecione a coluna da data. Em Dados, escolha o botão Texto para colunas. Na primeira tela, deixe o botão de opção em " delimitado " e clique em Avançar . Desmarque qualquer uma das caixas delimitadoras (todas as caixas em branco ; sem marcas de seleção) e clique em Avançar . Em formato de dados da coluna, escolha Data e selecione MDY na caixa de combinação adjacente e clique em Concluir . Agora você tem valores de data (ou seja, o Excel reconheceu seus valores como Datetipo de dados), mas a formatação provavelmente ainda é a data da localidade, não a mm/dd/yyyydesejada.

2) Para exibir o formato de data desejado nos EUA corretamente, primeiro você precisa selecionar a coluna (se não estiver selecionada) e, em Formato da célula - Número, escolha Data E selecione Localidade: inglês (EUA) . Isso fornecerá um formato como " m/d/yy". Em seguida, você pode selecionar Personalizado e lá pode digitar " mm/dd/yyyy" ou escolher isso na lista de cadeias personalizadas.

Alternativa : use o LibreOffice Calc. Ao colar os dados da postagem de Patrick, escolha Colar especial ( Ctrl+Shift+V) e escolha Texto não formatado. Isso abrirá a caixa de diálogo "Importar texto". O conjunto de caracteres permanece Unicode, mas para o idioma, escolha Inglês (EUA); você também deve marcar a caixa "Detectar números especiais". Suas datas aparecem imediatamente no formato padrão dos EUA e podem ser classificadas por data. Se você deseja o formato especial EUA / MM / DD / AAAA, é necessário especificar isso uma vez através do "formato Células" - antes ou depois da colagem.

Poder-se-ia dizer - o Excel deveria ter reconhecido datas assim que eu o disse via "Formato da célula" e não pude concordar mais . Infelizmente, é apenas através da etapa 1 acima que pude fazer o Excel reconhecer essas seqüências de texto como datas. Obviamente, se você faz muito isso, é uma dor no pescoço e você pode montar uma rotina visual básica que faria isso por você com o pressionar de um botão.

Dados Texto para colunas

Atualização no apóstrofo inicial após colar: Você pode ver na barra de fórmulas que na célula onde a data não é reconhecida, existe um apóstrofo inicial. Isso significa que na célula formatada como um número (ou data), há uma sequência de texto. Você poderia dizer - o apóstrofo principal impede que a planilha reconheça o número. Você precisa saber para procurar na barra de fórmulas isso porque a planilha simplesmente exibe o que parece um número alinhado à esquerda. Para lidar com esse problema, selecione a coluna que deseja corrigir, escolha no menuData | Text to Columnse clique em OK Às vezes, você poderá especificar o tipo de dados, mas se você definiu anteriormente o formato da coluna para seu tipo de dados específico - não será necessário. O comando realmente pretende dividir uma coluna de texto em duas ou mais usando um delimitador, mas também funciona como um encanto para esse problema. Eu testei no Libreoffice , mas também existe o mesmo item de menu no Excel .


Abordo seus dois pontos no meu OP. Dividir os valores da data em colunas (e depois reintegrá-lo no formato ISO) é obviamente uma possibilidade, mas, como o Excel possui extensas funções de data integradas, eu gostaria de poder aproveitá-las com os dados de data válidos que tenho. Sua segunda opção é exatamente como descrevo o que não está funcionando para mim.
Patrick

Caro Patrick, leia com atenção. Ou você pode usar o Libre Office Calc - com seus dados imediatamente - você pré-formata a coluna para Data - inglês (EUA) e, ao colar, "Colar especial" "Texto não formatado" - basta informar na caixa de diálogo que idioma é Inglês (EUA) e não se esqueça de marcar a caixa para reconhecer números especiais. Na minha resposta, tentei sugerir o máximo possível que o Excel é inconsistente com isso (buggy) e você precisa recorrer a essas etapas 1 e 2 para alcançar o resultado desejado.
R0berts

Eu realmente deveria ter lido sua pergunta corretamente. Sua primeira sugestão realmente funciona. Você deveria ter recebido a recompensa. Obrigado pela sua assistência.
Patrick

A sugestão 1 funciona como um encanto. obrigado.
Adam

Resposta realmente boa !!!
Adders

8

Selecione toda a coluna e vá para Localizar e substituir e substitua "/"por /.


Você pode explicar o que isso faz para corrigir o problema?
precisa saber é o seguinte

Isso realmente funcionou e foi fácil. A coisa substituição basta remover os zeros à esquerda
PedroGabriel

2
Primeiro, isso funciona. Melhor solução. MUITO melhor do que a solução marcada :). Para fixer1234 e @PedroGabriel: Não é que ele remova zeros. No ato de substituir o conteúdo da célula, o Excel avalia se a célula resultante contém uma fórmula, texto ou número. Depois de fazer a substituição "/", ele interpreta a célula para agora conter um número (que tecnicamente é uma data para o Excel), e agora está corretamente classificada. (Usuários inteligentes podem reconhecer a técnica de encontrar / substituir por um caractere "=" em um cenário semelhante ao reinterpretar o conteúdo do Excel.) De qualquer forma, Jair tem a solução ideal :)
MicrosoftShouldBeKickedInNuts

@MicrosoftShouldBeKickedInNuts hoje eu não tenho idéia do porquê eu disse isso sobre os zeros, ele realmente não tinha nada a ver com zeros ... Essa é a melhor resposta, ainda usando esta. Cheers
PedroGabriel

3

Eu tive exatamente o mesmo problema com datas no Excel. O formato correspondia aos requisitos de uma data no Excel, mas sem editar cada célula, ele não reconheceria a data e, quando você estiver lidando com milhares de linhas, não é prático editar manualmente cada célula. A solução é executar uma busca e substituição na linha de datas em que substituí o hifen por um hífen. O Excel percorre a coluna substituindo like por like, mas o fator resultante é que agora recongniza as datas! FIXO!


3

Eu estava lidando com um problema semelhante com milhares de linhas extraídas de um banco de dados SAP e, inexplicavelmente, dois formatos de datas diferentes na mesma coluna de datas (a maioria sendo o nosso padrão "AAAA-MM-DD", mas cerca de 10% sendo "MM- DD-AAAA "). Editar manualmente 650 linhas uma vez por mês não era uma opção.

Nenhuma (zero ... 0 ... zero) das opções acima funcionou. Sim, eu tentei todos eles. Copiar para um arquivo de texto ou exportar explicitamente para o txt ainda, de alguma forma, não teve efeito sobre o formato (ou a falta dele) das datas de 10% que simplesmente estavam no canto, recusando-se a se comportar.

A única maneira de corrigi-lo foi inserir uma coluna em branco à direita da coluna de data com mau comportamento e usar a seguinte fórmula bastante simplista:

(supondo que seus dados de comportamento incorreto estejam Column D)

=IF(MID(D2,3,1)="-",DATEVALUE(TEXT(CONCATENATE(RIGHT(D2,4),"-",LEFT(D2,5)),"YYYY-MM-DD")),DATEVALUE(TEXT(D2,"YYYY-MM-DD")))

Eu poderia copiar os resultados em minha nova coluna calculada sobre as datas de mau comportamento colando "Valores" somente depois das quais eu poderia excluir minha coluna calculada.


3

Isso pode não ser relevante para o questionador original, mas pode ajudar alguém que não consegue classificar uma coluna de datas.

Descobri que o Excel não reconheceria uma coluna de datas anteriores a 1900, insistindo que elas eram uma coluna de texto (desde 1/1/1900 tem equivalente numérico 1 e números negativos aparentemente não são permitidos). Por isso, substituí todas as minhas datas (que foram nos anos 1800) para colocá-las nos anos 1900, por exemplo, 180 -> 190, 181 -> 191, etc. O processo de classificação funcionou bem. Finalmente, substituí de outra maneira, por exemplo, 190 -> 180.

Espero que isso ajude algum outro historiador por aí.


2

Parece que o Excel não reconhece suas datas como datas, mas as reconhece como texto; portanto, você obtém as opções de classificação como A a Z. Se você fizer isso corretamente, deverá obter algo assim:

http://i.stack.imgur.com/Qb4Pj.png

Portanto, é importante garantir que o Excel reconheça a data. A maneira mais simples de fazer isso é usar o atalho CTRL+SHIFT+3.

Aqui está o que eu fiz com seus dados. Simplesmente copiei do seu post acima e colei no excel. Apliquei o atalho acima e obtive a opção de classificação necessária. Verifique a imagem.

http://i.stack.imgur.com/yAa6a.png


2
Infelizmente esse atalho não funciona para mim.
Patrick

O que o atalho faz no seu sistema Patrick.
Firee

3
O atalho parece não fazer nada. Eu tenho vários sistemas à minha disposição executando o Office 2007, 2010 e 2013 e nenhum deles reage ao atalho CTRL SHIFT 3. CTRL 1 exibe corretamente o diálogo 'formatar célula'.
Patrick

O atalho de teclado Ctrl + Shift + 3, referido de maneira um tanto superficial como "Ctrl + Shift + #" aqui , significa "Aplica o formato de data com o dia, mês e ano." No Excel 2007, 2010, 2013 e 2016. (Especificamente , no meu Excel 2013, é “d-mmm-aa”) O documento Microsoft não explica que as células já deve conter ... (Cont).
Scott

(Continua) ... valores que Excel reconhece como dados de data / hora, e parece que ninguém aqui tem claramente explicou que, uma vez que Patrick está na Inglaterra, sua versão do Excel está reconhecendo strings como 04/08/2012, 04/09/2009e 04/01/2010como 4-Aug-2012 , 4 de setembro de 2009 e 4 de janeiro de 2010, respectivamente, e está sendo tratado 04/21/2011como uma sequência de texto (porque não há 21 meses). Como alguns dos valores são de texto (e alguns deles, presumivelmente, foram realmente mal interpretados), a formatação (como no atalho de teclado Ctrl + Shift + 3) não será útil.
Scott

2

Eu suspeitaria que o problema é o Excel não conseguir entender o formato ... Embora você selecione o formato Data, ele permanece como Texto.

Você pode testar isso facilmente: Ao tentar atualizar o formato das datas, selecione a coluna e clique com o botão direito do mouse e escolha formatar células (como você já faz), mas escolha a opção 2001-03-14 (próximo ao final da lista). Em seguida, revise o formato das suas células.

Suspeito que apenas alguns dos formatos de data sejam atualizados corretamente, indicando que o Excel ainda o trata como uma sequência, não como uma data (observe os diferentes formatos na captura de tela abaixo)!

insira a descrição da imagem aqui

Existem soluções alternativas para isso, mas nenhuma delas será automatizada simplesmente porque você está exportando a cada vez. Eu sugeriria o uso do VBa, onde você pode simplesmente executar uma macro que converte o formato de data dos EUA para o Reino Unido, mas isso significa copiar e colar o VBa em sua planilha toda vez.

Como alternativa, você cria um Excel que lê as planilhas do Excel exportadas recentemente criadas (do Exchange) e, em seguida, executa o VBa para atualizar o formato da data para você. Assumirei que o arquivo Excel do Exported Exchange sempre terá o mesmo nome / diretório de arquivo e fornecerá um exemplo de trabalho:

Portanto, crie uma nova planilha do Excel, chamada ImportedData.xlsm (excel ativado). Este é o arquivo para o qual importaremos o arquivo Exported Exchange Excel!

Adicione este VBa ao arquivo ImportedData.xlsm

Sub DoTheCopyBit()

Dim dateCol As String
dateCol = "A"        'UPDATE ME TO THE COLUMN OF THE DATE COLUMN

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

directory = "C:\Users\Dave\Desktop\"                   'UPDATE ME
fileName = Dir(directory & "ExportedExcel.xlsx")       'UPDATE ME (this is the Exchange exported file location)

Do While fileName <> ""

'MAKE SURE THE EXPORTED FILE IS OPEN
Workbooks.Open (directory & fileName)

Workbooks(fileName).Worksheets("Sheet1").Copy _

Workbooks(fileName).Close

fileName = Dir()

Loop

Application.ScreenUpdating = True
Application.DisplayAlerts = True

Dim row As Integer
row = 1
Dim i As Integer
Do While (Range(dateCol & row).Value <> "")

     Dim splitty() As String
     splitty = Split(Range(dateCol & row).Value, "/")
     Range(dateCol & row).NumberFormat = "@"
     Range(dateCol & row).Value = splitty(2) + "/" + splitty(0) + "/" + splitty(1)
     Range(dateCol & row).NumberFormat = "yyyy-mm-dd"
     row = row + 1
Loop


End Sub

O que eu também fiz foi atualizar o formato da data para aaaa-mm-dd, pois dessa forma, mesmo se o Excel fornecer o filtro de classificação AZ em vez dos valores mais recentes, ele ainda funcionará!

Tenho certeza de que o código acima contém erros, mas obviamente não tenho idéia de que tipo de dados você possui, mas testei-os com uma única coluna de datas (como você tem) e funciona bem para mim!

Como adiciono o VBA no MS Office?


bem ... vou deixar isso por alguns dias para dar um pouco de exposição extra, mas isso parece uma resposta sólida. Isso é absolutamente louco, porém, não posso acreditar que isso seja necessário. Como já corrigi os dados na fonte com uma pequena função no PowerShell para alterá-lo para o formato ISO; nesse momento, não me importo se o Excel o reconhecer como uma data: /
Patrick


1

Eu descobri!

Há um espaço no início e no final da data.

  1. Se você usar localizar, substituir e pressionar a barra de espaço, ela NÃO funcionará.
  2. Você deve clicar um pouco antes do número do mês, pressionar Shift e a seta esquerda para selecionar e copiar. Às vezes você precisa usar o mouse para selecionar o espaço.
  3. Em seguida, cole isso como o espaço em localizar e substituir e todas as suas datas se tornarão datas.
  4. Se houver espaço e data Selecione Dados> Ir para Dados> Texto para colunas> Delimitado> Espaço como separador e, em seguida, termine.
  5. Todos os espaços serão removidos.

A razão pela qual a localização e substituição não funciona com a barra de espaço é que a lacuna provavelmente é uma guia.
Patrick

0

Se o Excel teimosamente se recusar a reconhecer sua coluna como data, substitua-a por outra:

  • Adicione uma nova coluna à direita da coluna antiga
  • Clique com o botão direito do mouse na nova coluna e selecione Format
  • Defina o formato para date
  • Destaque a coluna antiga inteira e copie-a
  • Destaque a célula superior da nova coluna e selecione Paste Speciale cole apenasvalues
  • Agora você pode remover a coluna antiga.

Eu tentei isso, ele se comporta da mesma forma com a nova coluna. Veja a resposta de Dave, a tampa da tela na parte superior é o que eu entendo, não importa quantas vezes eu a mova entre colunas.
Patrick

Tente forçar o problema usando a função DATEVALUE (coluna antiga) na fórmula da nova coluna e use a lista suspensa Formatação de número na barra de faixa inicial para escolher Data curta / longa.
harrymc

0

Simplesmente copiei o número 1 (um) e o multipliquei na coluna de data (dados) usando a função PASTE SPECIAL. Em seguida, muda para Formatação geral, ou seja, 42102 Em seguida, aplique Data na formatação e agora a reconhece como uma data.

Espero que isto ajude


0

Todas as soluções acima - incluindo r0berts - não tiveram êxito, mas acharam essa solução bizarra que acabou sendo a solução mais rápida.

Eu estava tentando classificar "datas" em uma planilha baixada de transações da conta.

Este foi baixado via navegador CHROME. Nenhuma quantidade de manipulação das "datas" os faria reconhecidos como classificáveis ​​do antigo para o novo.

Mas, então, baixei pelo navegador INTERNET EXPLORER - incrível - eu poderia classificar instantaneamente sem tocar em uma coluna.

Não sei explicar por que diferentes navegadores afetam a formatação dos dados, exceto que claramente afetaram e foram uma correção muito rápida.


0

Minha solução no Reino Unido - tive minhas datas com pontos assim:

03.01.17

Eu resolvi isso com o seguinte:

  1. Destaque a coluna inteira.
  2. Vá para encontrar e selecionar / substituir.
  3. Substituí todos os pontos finais pelo traço central, por exemplo, 03.01.17 03-01-17.
  4. Mantenha a coluna destacada.
  5. Formate células, guia número e selecione a data.
  6. Use o Type 14-03-12(essencial para o meu ter o traço do meio)
  7. Localidade Inglês (Reino Unido)

Ao classificar a coluna, todas as datas do ano são classificadas.


0

Tentei as várias sugestões, mas a solução mais fácil para mim foi a seguinte ...

Veja as Imagens 1 e 2 para o exemplo ... (note - alguns campos foram ocultados intencionalmente porque não contribuem para o exemplo). Eu espero que isso ajude...

  1. Campo C - um formato misto que me deixou absolutamente louco. Foi assim que os dados vieram diretamente do banco de dados e não tinham espaços extras ou caracteres malucos. Ao exibi-lo como um texto, por exemplo, o 01/01/2016 exibido como um valor do tipo '42504', misturado com o 15/04/2006, que é exibido como está.

  2. Campo F - onde eu obtive o comprimento do campo C (a fórmula LEN seria um comprimento de 5 de 10, dependendo do formato da data). O campo é formato Geral para simplificar.

  3. Campo G - obtendo o componente do mês da data mista - com base no resultado do comprimento no campo F (5 ou 10), obtenho o mês a partir do valor da data no campo C ou obtenho os caracteres do mês na string.

  4. Campo H - obtendo o componente do dia da data mista - com base no resultado do comprimento no campo F (5 ou 10), obtenho o dia a partir do valor da data no campo C ou obtenho os caracteres do dia na string.

Também posso fazer isso no ano e criar uma data consistente nos três componentes. Caso contrário, eu posso usar os valores individuais de dia, mês e ano em minha análise.

Imagem 1: planilha básica mostrando valores e nomes de campos

Imagem 2: planilha mostrando as fórmulas correspondentes à explicação acima

Eu espero que isso ajude.


(1) Embora seja bom publicar uma imagem na tela para demonstrar que sua resposta realmente funciona, preferimos que as fórmulas em sua solução sejam postadas como texto no corpo da sua resposta, para que as pessoas possam copiá-las e colá-las. (2) Você parece entender o problema - que datas numéricas como 04/08são ambíguas. 04/08será interpretado como 8 de abril em alguns locais (como os Estados Unidos) e 4 de agosto em outros (como na Inglaterra). Mas estes são ambíguos precisamente porque o número do mês e o dia do mês são diferentes. ... (continua)
Scott

(Continua) ... Então, por que você usaria  datas não ambíguas, como 01/01na sua resposta? (3) Na verdade, não sei se você entendeu o problema ou se sua resposta realmente funciona, pois sua planilha possui linhas onde o mês # é 15; isso parece ser um erro óbvio. E, dado que 04/15é inequívoco - deve significar 15 de abril - não faz sentido que seu método seja analisado 01/11como o 1º dia do 11º mês. ... (continua)
Scott

(Continua) ... (4) Deve-se salientar que, na melhor das hipóteses, você responde apenas com datas que se parecem com nn / nn / nnnn . Ele irá falhar em datas como 5/8, 5/08, 5/28, 05/8, e 11/8. Além disso - fato curioso - sua resposta falhará nas datas ≤ 17 de maio de 1927 e ≥ 17 de outubro de 2173. Não importa o problema do Y10K; podemos começar a ter problemas daqui a 154 anos! (5) Você diz: “Eu também posso fazer isso durante o ano e, em seguida, crie uma data a partir dos três componentes que seja consistente.” Então, por que você não mostra isso? ... (continua)
Scott

(Continua) ... É especialmente difícil verificar se seu método funciona quando você apresenta uma versão incompleta dele; aquele que não mostra o mês, dia e ano sendo remontados em uma data. (6) Como eu disse a Patsaeed , teria sido bom se você tivesse usado os dados do OP, a partir da pergunta, em vez de criar os seus. Se não usasse os dados do OP, poderia ter sido bom se você tivesse usado o Patsaeed, portanto, pelo menos, poderíamos comparar maçãs com maçãs. ... (continua)
Scott

(Continua) ... E, se você usa os dados do OP ou de outra pessoa, seria bom se você tivesse mostrado a entrada original para o seu cenário. (Por exemplo, para a Linha 7, é 01/11/2016ou é  11/01/2016?) E, se você usar seus próprios dados, seria bom se você incluísse datas do mesmo mês que demonstrem (por exemplo) como 1/11e 1/21são tratadas diferentemente. E por que ter dados duplicados? Você desperdiçou 19 linhas usando os mesmos quatro valores várias vezes, espalhadas por 23 linhas.
Scott

0

COMPARTILHANDO UMA PEQUENA SOLUÇÃO, MAIS MUITO MAIS FÁCIL, PARA SUJEITAR ..... Não há necessidade de executar macros ou coisas nerds ... simples ms excel fórmulas e edição.

datas mistas excel instantâneo:

insira a descrição da imagem aqui

  • A data está no formato misto.
  • Portanto, para criar um formato de data simétrico, foram criadas colunas extras convertendo a coluna de data 'formato misto' em TEXT.
  • A partir desse texto, identificamos as posições de "/" e o texto do meio foi extraído determinando data, mês, ano usando a fórmula MID.
  • Aquelas que eram originalmente datas, a fórmula terminou com ERROR / #VALUEresultado. - Finalmente, a partir da string que criamos - nós as convertemos para datas pela fórmula DATE.
  • #VALUE foram selecionados conforme IFERROR adicionados à fórmula DATE e a coluna foi formatada conforme necessário (aqui, dd / mmm / aa)

* CONSULTE O INSTANTÂNEO DA FOLHA DE EXCEL ACIMA (= datas mistas excedem o instantâneo) *


(1) Embora seja bom publicar uma imagem na tela para demonstrar que sua resposta realmente funciona, preferimos que as fórmulas em sua solução sejam postadas como texto no corpo da sua resposta, para que as pessoas possam copiá-las e colá-las. (2) Suas fórmulas como mostrado na imagem estão errados, na medida em que eles se referem a colunas  V, We  Xquando eles devem estar se referindo a Columns  B, C, e  D. ... (continua)
Scott

(Continua) ... (3) Seria bom se você tivesse usado os dados do OP, da pergunta, em vez de criar os seus. E, se você usa os dados do OP ou os seus, seria bom se você tivesse mostrado a entrada original para o seu cenário (por exemplo, para a Linha 9, é 5/8/2014ou  5/08/2014). E, se você usar seus próprios dados, seria bom se você incluísse datas do mesmo mês, para demonstrar (por exemplo) como 5/8e 5/28são tratadas de maneira diferente. E por que ter dados duplicados? Você desperdiçou seis linhas usando os mesmos valores mais de uma vez.
Scott

0

Isso acontece o tempo todo ao trocar dados de data entre localidades no Excel. Se você tiver controle sobre o programa VBA que exporta os dados, sugiro exportar o número que representa a data em vez da própria data. O número se correlaciona exclusivamente com uma única data, independentemente da formatação e localidade. Por exemplo, em vez do arquivo CSV mostrando 24/09/2010, ele mostrará 40445.

No loop de exportação, quando você mantém cada célula, se for uma data, converta em número usando CLng (myDateValue). Este é um exemplo do meu loop percorrendo todas as linhas de uma tabela e exportando para CSV (note que eu também substituo vírgulas em strings por uma tag que removo ao importar, mas você pode não precisar disso):

arr = Worksheets(strSheetName).Range(strTableName & "[#Data]").Value

    For i = LBound(arr, 1) To UBound(arr, 1)
        strLine = ""
        For j = LBound(arr, 2) To UBound(arr, 2) - 1
            varCurrentValue = arr(i, j)
            If VarType(varCurrentValue) = vbString Then
                varCurrentValue = Replace(varCurrentValue, ",", "<comma>")
            End If
            If VarType(varCurrentValue) = vbDate Then
                varCurrentValue = CLng(varCurrentValue)
            End If
            strLine = strLine & varCurrentValue & ","
        Next j
        'Last column - not adding comma
        varCurrentValue = arr(i, j)
            If VarType(varCurrentValue) = vbString Then
                varCurrentValue = Replace(varCurrentValue, ",", "<comma>")
            End If
            If VarType(varCurrentValue) = vbDate Then
                varCurrentValue = CLng(varCurrentValue)
            End If
        strLine = strLine & varCurrentValue

        strLine = Replace(strLine, vbCrLf, "<vbCrLf>") 'replace all vbCrLf with tag - to avoid new line in output file
        strLine = Replace(strLine, vbLf, "<vbLf>") 'replace all vbLf with tag - to avoid new line in output file
        Print #intFileHandle, strLine
    Next i

0

Eu não estava tendo sorte com todas as sugestões acima - surgiu com uma solução muito simples que funciona como um encanto. Cole os dados no Planilhas Google, realce a coluna da data, clique no formato, depois numere e numere novamente para alterá-los para o formato numérico. Copio e colo os dados na planilha do Excel, clico nas datas e formato as células até a data. Muito rápido. Espero que isto ajude.


0

Esse problema estava me deixando louco, então eu tropecei em uma solução fácil. Pelo menos funcionou para os meus dados. É fácil de fazer e lembrar. Mas não sei por que isso funciona, mas a alteração de tipos, conforme indicado acima, não. 1. Selecione as colunas com as datas 2. Procure um ano em suas datas, por exemplo, 2015. Selecione Substituir tudo pelo mesmo ano, 2015. 3. Repita para cada ano. Isso altera os tipos para datas reais, ano a ano.
Isso ainda é complicado se você tiver muitos anos em seus dados. Mais rápido é procurar e substituir 201 por 201 (para substituir 2010 a 2019); substitua 200 por 200 (para substituir 2000 a 2009); e assim por diante.


0

Selecione datas e execute esse código sobre ele.

On Error Resume Next
    For Each xcell In Selection            
        xcell.Value = CDate(xcell.Value)     
    Next xcell                              
End Sub

-1

Eu uso um mac.

Vá para as preferências do Excel> Editar> Opções de data> Converter automaticamente o sistema de datas

Além disso,

Vá para Tabelas e filtros> Datas do grupo ao filtrar.

O problema provavelmente começou quando você recebeu um arquivo com um sistema de datas diferente e que estragou sua função de data do excel


-2

Normalmente, apenas crio uma coluna extra para fins de classificação ou totalização, para uso year(a1)&if len(month(a1))=1,),"")&month(a1)&day(a1).

Isso fornecerá um yyyymmddresultado que pode ser classificado. O uso do len(a1)just permite que um zero extra seja adicionado nos meses 1 a 9.


2
Isso não ajudará, pois as datas não estão sendo reconhecidas como datas. Além disso, usando colunas extras para fins de triagem raramente é necessário
CallumDA
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.