Existem alguns passos para alcançar isso. Essa é uma maneira de fazer isso usando fórmulas e células auxiliares. Se você precisa fazer isso sem células auxiliares (ou seja, você não quer colunas extras), então você deve mencionar isso e eu provavelmente poderia trabalhar em algum VBA para fazer a tarefa.
A primeira tarefa é dividir sua data em três partes: o ano, o mês, o dia. Uma vez que você tenha os três, é fácil juntá-los novamente.
Isto, é claro, presumindo que suas datas sempre sigam o Formato de Data Americana Bastante Idiota © de MMM-dd-aaaa.
Isso foi feito usando a página da Microsoft Divida o texto entre as colunas usando as funções como um exemplo.
-
Dividindo o mês:
Isso é obtido usando a funçãosearch
para encontrar o primeiro-
e a ferramenta de divisãoLeft
para desativá-lo.=LEFT(A1, SEARCH("-",A1,1)-1)
que retorna
May
do seu exemplo. -
Separando o dia:
É semelhante, mas é necessário um uso muito mais complicado da funçãoMID
. Precisamos encontrar o primeiro e segundo-
, em seguida, subtrair a localização do primeiro do segundo para obter o comprimento do texto necessário, pois esses resultados são uma função bastante longa:=MID(A1,SEARCH("-",A1,1)+1,SEARCH("-",A1,SEARCH("-",A1,1)+1)-SEARCH("-",A1,1)-1)
o
SEARCH("-",A1,SEARCH("-",A1,1)+1)-SEARCH("-",A1,1)-1)
retorna o comprimento enquanto oSEARCH("-",A1,1)+1
está simplesmente obtendo o primeiro local. a ferramentaMID
os corta e retorna23
do seu exemplo. -
Dividindo o ano:
A última ferramenta que precisamos é a ferramentaRIGHT
.=RIGHT(A1,LEN(A1)-SEARCH("-",A1,SEARCH("-",A1,1)+1))
Isso simplesmente obtém o comprimento da string e, em seguida, pesquisa duas vezes e retorna tudo o que resta (ou à direita).
O problema agora é que você ainda tem o mês em um formato de texto inutilizável. Para fazer é utilizável, precisamos usar a ferramenta DATEVALUE
para convertê-lo. Essa ferramenta não aceitará um mês sozinha, mas aceitará uma string MMM YY
. O que podemos fazer é então analisar o texto do mês em um número depois de concatenarmos um ano.
-
Obtendo o mês como um valor numérico:
Por uma questão de argumento digamos que armazenamos a primeira função na célula B1.
DATEVALUE(B1 &" 01")
retornará a cadeia de valor de data que o excel usa internamente, então podemos agrupar isso em uma funçãoMONTH
para retornar o valor numérico para o mês:MONTH(DATEVALUE(B1 &" 01"))
-
Podemos, então, mesclar todos eles em uma função
DATE(year,month,day)
e, assim, convertê-los em uma data real que o Excel possa usar. O mês está na célula B1, o dia na célula C1 e o ano em D1 seguindo o Stupid American Date Format ™:DATE(D1, B1, C1)
retornará
23/05/2014
na célula. -
Se você quiser ficar realmente chique, pode ir em frente e combinar todas as fórmulas acima em uma só.
=DATE(RIGHT(A1,LEN(A1)-SEARCH("-",A1,SEARCH("-",A1,1)+1)),MONTH(DATEVALUE(LEFT(A1, SEARCH("-",A1,1)-1)&" 1")),MID(A1,SEARCH("-",A1,1)+1,SEARCH("-",A1,SEARCH("-",A1,1)+1)-SEARCH("-",A1,1)-1))