Convertendo campo de texto com data para um campo formatado de data

1

Eu tenho uma coluna com datas formatadas como esta:

July 14, 2015 11:02

Como posso converter isso para um formato DATE para facilitar a consulta? (Eu não preciso necessariamente do tempo, se isso torna mais fácil?)

EDIT

EDIT2Omêsnãoestásendocalculadocorretamente

    
por David Sigley 21.10.2016 / 14:50

1 resposta

1

Com seu valor na célula A1 , essa fórmula isolará a parte da data:

=LEFT(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1)

descartando tudo após o último espaço (a parte do tempo)

Para converter isso em uma data verdadeira , use:

=DATEVALUE(LEFT(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1))

Parafazeressaconversão"no local", seria necessária uma macro.

EDIT # 1:

Para encontrar qualquer caractere de "lixo" em seus dados, coloque uma data de amostra na célula A1 . então em B1 digite:

=MID($A$1,ROW(),1)

e copie para baixo. então em C1 digite:

=CODE(B1)

e copie para baixo. Você deveria ver:

EDIT#2:

DadosseusdadosemA1,estafórmula:

=--MID(A1,FIND(", ",A1)+2,4)

retornará o ano (2015) . Esta fórmula:

=LOOKUP(LEFT(A1,FIND(" ",A1,1)-1),{"January","February","March","April","May",",June","July","August","September","October","November","December"},{1,2,3,4,5,6,7,8,9,10,11,12})

retornará o mês (7) . Esta fórmula:

=--MID(A1,FIND(" ",A1)+1,FIND(",",A1)-FIND(" ",A1)-1)

retornará o dia (14) .

Colocando tudo isso junto:

=DATE(--MID(A1,FIND(", ",A1)+2,4),LOOKUP(LEFT(A1,FIND(" ",A1,1)-1),{"January","February","March","April","May",",June","July","August","September","October","November","December"},{1,2,3,4,5,6,7,8,9,10,11,12}),--MID(A1,FIND(" ",A1)+1,FIND(",",A1)-FIND(" ",A1)-1))

Esta fórmula evita sensibilidades regionais associadas a DATEVALUE () .

EDIT # 3:

Como você descobriu, a matriz do mês deve ser classificada , portanto, use-a para o mês:

=LOOKUP(LEFT(A1,FIND(" ",A1,1)-1),{"April","August","December","February","January","July","June","March","May","November","October","September"},{4,8,12,2,1,7,6,3,5,11,10,9})

e esta é a fórmula "final":

=DATE(--MID(A1,FIND(", ",A1)+2,4),LOOKUP(LEFT(A1,FIND(" ",A1,1)-1),{"April","August","December","February","January","July","June","March","May","November","October","September"},{4,8,12,2,1,7,6,3,5,11,10,9}),--MID(A1,FIND(" ",A1)+1,FIND(",",A1)-FIND(" ",A1)-1))

Editado para remover um espaço na fórmula (Edições devem ser 6 char, daí esta descrição)

    
por 21.10.2016 / 17:23