extrai a data do texto e formata-a como data

1

Eu pesquisei e encontrei algumas respostas, mas nenhuma correspondia ao meu formato. Como obter 22 de jul de 2017 13:51 GMT a 22/07/2018? Eu só preciso extrair a data em um formato que o Excel entenderá para que eu possa classificá-la do antigo para o novo. Obrigada!

    
por Andrei Marinescu 27.05.2018 / 12:49

2 respostas

4

Com uma string na célula A1 , esta fórmula:

 =DATEVALUE(TRIM(LEFT(A1,11)))

dará a parte da data. (isso funciona se o dia for um dígito ou dois dígitos, o mês deve conter três caracteres) Se você tivesse dados com nomes completos de mês em vez de abreviações, obteríamos a data procurando as 3 < caractere de espaço sup> rd :

=DATEVALUE(TRIM(LEFT(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),3)))))

Para o VBA , experimente a seguinte função definida pelo usuário (UDF) :

Public Function DateMaker(s As String) As Date
    Dim arr
    arr = Split(s, " ")
    DateMaker = CDate(arr(0) & " " & arr(1) & " " & arr(2))
End Function

com a formatação correta:

FunçõesDefinidaspeloUsuário(UDFs)sãomuitofáceisdeinstalareusar:

  1. ALT-F11exibeajaneladoVBE
  2. ALT-IALT-Mabreumnovomódulo
  3. coleomaterialefecheajaneladoVBE

Sevocêsalvarapastadetrabalho,aUDFserásalvacomela.SevocêestiverusandoumaversãodoExcelposteriora2003,deverásalvaroarquivocomo.xlsmemvezde.xlsx

PararemoveroUDF:

  1. abrirajaneladoVBEcomoacima
  2. limpeocódigo
  3. fecheajaneladoVBE

ParausaroUDFdoExcel:

=DateMaker(A1)

Parasabermaissobremacrosemgeral,consulte:

link

e

link

e para detalhes sobre UDFs, consulte:

link

As macros devem estar ativadas para que isso funcione!

    
por 27.05.2018 / 14:34
2

Ok, então eu consegui fazer isso ... bem manualmente :). Eu não uso excel então desculpe meus métodos.

Primeiro, selecionei as linhas que continham os dados, todas com 236 delas. Os dados são 22 de 2017, às 13:51 GMT. Então eu fui para a guia de dados, converter texto em colunas. Eu selecionei a data como DMY, mas acho que não importava. Então eu tinha 3 colunas da data com uma para o dia, uma para o mês e outra para o ano. Em seguida eu tive que ir encontrar e substituir um por um (desde que uma fórmula que eu tentei não funcionou) Jan substituído por 1, fevereiro substituído por 2, etc

No final, eu tinha um formato de data, quase pronto. Então eu só tive que mesclá-los 3 em uma célula, com "/" como separador. Então eu usei isso = E2 & "/" & F2 & "/" & G2 onde E2 foi dia, F2 mês e G2 ano. Depois disso, só arrastei o celular até o último, e aí está. Agora eu provavelmente tenho que formatá-lo como uma data e posso classificá-lo. Obrigado por todas as suas respostas! Esta não é a maneira mais rápida nem a mais fácil possível, mas fez o trabalho:)

    
por 27.05.2018 / 13:36