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.
Respostas:
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
Date
tipo de dados), mas a formatação provavelmente ainda é a data da localidade, não amm/dd/yyyy
desejada.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 menu
Data | Text to Columns
e 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 .fonte
Selecione toda a coluna e vá para Localizar e substituir e substitua
"/"
por/
.fonte
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!
fonte
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.
fonte
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í.
fonte
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:
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.
fonte
04/08/2012
,04/09/2009
e04/01/2010
como 4-Aug-2012 , 4 de setembro de 2009 e 4 de janeiro de 2010, respectivamente, e está sendo tratado04/21/2011
como 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.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)!
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
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?
fonte
https://support.office.com/pt-BR/article/Convert-dates-stored-as-text-to-dates-8df7663e-98e6-4295-96e4-32a67ec0a680
Solução simples aqui - crie uma nova coluna use = datevalue (cell) formula e copie a fórmula em suas outras linhas - alguns segundos para corrigir
fonte
Eu descobri!
Há um espaço no início e no final da data.
fonte
Se o Excel teimosamente se recusar a reconhecer sua coluna como data, substitua-a por outra:
Format
date
Paste Special
e cole apenasvalues
fonte
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
fonte
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.
fonte
Minha solução no Reino Unido - tive minhas datas com pontos assim:
Eu resolvi isso com o seguinte:
14-03-12
(essencial para o meu ter o traço do meio)Ao classificar a coluna, todas as datas do ano são classificadas.
fonte
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...
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á.
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.
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.
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.
fonte
04/08
são ambíguas.04/08
será 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)01/01
na 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 que04/15
é inequívoco - deve significar 15 de abril - não faz sentido que seu método seja analisado01/11
como o 1º dia do 11º mês. ... (continua)5/8
,5/08
,5/28
,05/8
, e11/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)01/11/2016
ou é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) como1/11
e1/21
sã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.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:
#VALUE
resultado. - 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) *
fonte
V
,W
eX
quando eles devem estar se referindo a ColumnsB
,C
, eD
. ... (continua)5/8/2014
ou5/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) como5/8
e5/28
são tratadas de maneira diferente. E por que ter dados duplicados? Você desperdiçou seis linhas usando os mesmos valores mais de uma vez.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):
fonte
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.
fonte
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.
fonte
Selecione datas e execute esse código sobre ele.
fonte
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
fonte
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
yyyymmdd
resultado que pode ser classificado. O uso dolen(a1)
just permite que um zero extra seja adicionado nos meses 1 a 9.fonte