Notifications
Clear all

Formatar a data no formato DD-MM-AAAA

25 Posts
6 Usuários
0 Reactions
3,717 Visualizações
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Colegas boa tarde,

Pesquisei no fórum mas não encontrei nada que poderia me ajudar.
Tenho algumas planilhas onde a data vem como texto desta forma
Data 1
29-Jan-16
28-Jan-16
5-fev-16
21-fev-16
10-mai-16
1-ago-16
8-set-16
7-out-16
2-dez-16

Preciso que as datas acima fique no formato DD-MM-AAAA.
Tentei usar a formula =TEXTO(A1;"DD-MM-AAAA") mas não funcionou.
Será que existe alguma fórmula ou macro que resolva isso?

Antecipadamente agradeço.

 
Postado : 14/12/2015 10:02 am
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Colegas boa tarde,

Tentei resolver o meu problema utilizando as dicas de todos colegas mas não deu certo.
Tentei resolver parcialmente criando uma macro com o gravador de macro.
Mas não sei por qual motivo para converter alguns meses a macro não funciona (Ex jan, mar, jun, jul, nov)

Por gentileza poderiam analizar onde esta errado?

Antecipadamente agradeço.

Abraços

Fabiosp

 
Postado : 17/12/2015 9:57 am
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
 

Cara aqui o exemplo que você deu inicialmente também rodou.

Segue minha contribuição, bem complicada, mas segue.

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 17/12/2015 1:50 pm
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Boa noite,
Obrigado por sua ajuda.
Vou testar lá no trabalho e depois aviso se deu certo.
Aqui em casa funcionou pois meu sistema operacional e baseado no idioma português.
No meu trabalho o sistema operacional é baseado no idioma inglês acho que isso que é o problema.
Esse negócio de data parece simples mais é muito complexo.

Abraços

Fabiosp

 
Postado : 17/12/2015 5:39 pm
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
 

Boa tarde Fabio.

Substitui a fórmula, conforme o exemplo anexado.

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 18/12/2015 11:25 am
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Boa tarde carlos,
Obrigado pela ajuda.
Agora funcionou perfeitamente!
Só uma dúvida.
Se quiser trocar a ordem do formato é só alterar os locais onde está o formato "dd-mm-aaaa"

=SE(SOMA(A2)>0;TEXTO(A2;"dd-mm-aaaa");TEXTO(VALOR(CONCATENAR(DIREITA(A2;NÚM.CARACT(A2)-PROCURAR("-";A2;PROCURAR("-";A2;1)+1));"/";TEXTO(CORRESP(EXT.TEXTO(A2;PROCURAR("-";A2;1)+1;(PROCURAR("-";A2;PROCURAR("-";A2;1)+1)-1)-PROCURAR("-";A2;1));$K$3:$K$14;0);"00");"/";TEXTO(ESQUERDA(A2;PROCURAR("-";A2;1)-1);"00")));"dd-mm-aaaa"))

Abraços

Fabiosp

 
Postado : 18/12/2015 11:50 am
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
 

Boa tarde Fabio, eu acredito que mude. Não posso confirmar por causa dos conflitos entre os padrões de datas.

Eu vi no fórum todo mundo colocando as fórmula ÉVALOR ou ÉTEXTO eu particularmente não manjo dessas duas, então compliquei para ficar fácil no meu entender.

Explicando a fórmula para futuras consultas.

SE(SOMA(A4)>0;TEXTO(A4;"dd-mm-aaaa");TEXTO(VALOR(CONCATENAR(DIREITA(A4;NÚM.CARACT(A4)-PROCURAR("-";A4;PROCURAR("-";A4;1)+1));"/";TEXTO(CORRESP(EXT.TEXTO(A4;PROCURAR("-";A4;1)+1;(PROCURAR("-";A4;PROCURAR("-";A4;1)+1)-1)-PROCURAR("-";A4;1));$K$3:$K$14;0);"00");"/";TEXTO(ESQUERDA(A4;PROCURAR("-";A4;1)-1);"00")));"dd-mm-aaaa"))

1º Se:
SE(SOMA(A4)>0;TEXTO(A4;"dd-mm-aaaa") - Quando a célula estiver como data, o excel vê como número, logo a soma será maior que zero ai é fácil, só formatar como queremos.

2º Se: o complexo +/-
TEXTO(VALOR(CONCATENAR(DIREITA(A4;NÚM.CARACT(A4)-PROCURAR("-";A4;PROCURAR("-";A4;1)+1));"/";TEXTO(CORRESP(EXT.TEXTO(A4;PROCURAR("-";A4;1)+1;(PROCURAR("-";A4;PROCURAR("-";A4;1)+1)-1)-PROCURAR("-";A4;1));$K$3:$K$14;0);"00");"/";TEXTO(ESQUERDA(A4;PROCURAR("-";A4;1)-1);"00")));"dd-mm-aaaa")

Vamos eliminar primeiro a fórmula TEXTO fica:
VALOR(CONCATENAR(DIREITA(A4;NÚM.CARACT(A4)-PROCURAR("-";A4;PROCURAR("-";A4;1)+1));"/";TEXTO(CORRESP(EXT.TEXTO(A4;PROCURAR("-";A4;1)+1;(PROCURAR("-";A4;PROCURAR("-";A4;1)+1)-1)-PROCURAR("-";A4;1));$K$3:$K$14;0);"00");"/";TEXTO(ESQUERDA(A4;PROCURAR("-";A4;1)-1);"00")))

Eliminando a fórmula VALOR fica:
CONCATENAR(DIREITA(A4;NÚM.CARACT(A4)-PROCURAR("-";A4;PROCURAR("-";A4;1)+1));"/";TEXTO(CORRESP(EXT.TEXTO(A4;PROCURAR("-";A4;1)+1;(PROCURAR("-";A4;PROCURAR("-";A4;1)+1)-1)-PROCURAR("-";A4;1));$K$3:$K$14;0);"00");"/";TEXTO(ESQUERDA(A4;PROCURAR("-";A4;1)-1);"00"))

Observe que o concatenar é dividido em três partes que são separados por "/"

A célula base contem o carácter - (traço)
Primeiro dado do concatenar:
DIREITA(A4;NÚM.CARACT(A4)-PROCURAR("-";A4;PROCURAR("-";A4;1)+1))
Pega os dados a direita do segundo traço

Segundo dado do concatenar:
TEXTO(CORRESP(EXT.TEXTO(A4;PROCURAR("-";A4;1)+1;(PROCURAR("-";A4;PROCURAR("-";A4;1)+1)-1)-PROCURAR("-";A4;1));$K$3:$K$14;0);"00")
Ele pega os dados que estão entre os traços (-jan-) e verifica a linha do mês com a fórmula CORRESP.

Terceiro dado do concatenar:
TEXTO(ESQUERDA(A4;PROCURAR("-";A4;1)-1);"00")
Pega os dados a esquerda do primeiro traço

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 18/12/2015 12:14 pm
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
 

Bom dia Fabio.

Segue planilha com nova condição.

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 21/12/2015 5:10 am
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Boa tarde carlos,
Testei e agora funciona para qualquer tipo de mês que estiver abreviado.
Notei que você incluiu uma coluna adicional para os meses (Intervalo $L$3:$L$14;0).

=SE(SOMA(A2)>0;TEXTO(A2;"dd-mm-aaaa");TEXTO(VALOR(CONCATENAR(DIREITA(A2;NÚM.CARACT(A2)-PROCURAR("-";A2;PROCURAR("-";A2;1)+1));"/";TEXTO(SE(ÉERROS(CORRESP(EXT.TEXTO(A2;PROCURAR("-";A2;1)+1;(PROCURAR("-";A2;PROCURAR("-";A2;1)+1)-1)-PROCURAR("-";A2;1));$K$3:$K$14;0));CORRESP(EXT.TEXTO(A2;PROCURAR("-";A2;1)+1;(PROCURAR("-";A2;PROCURAR("-";A2;1)+1)-1)-PROCURAR("-";A2;1));$L$3:$L$14;0);CORRESP(EXT.TEXTO(A2;PROCURAR("-";A2;1)+1;(PROCURAR("-";A2;PROCURAR("-";A2;1)+1)-1)-PROCURAR("-";A2;1));$K$3:$K$14;0));"00");"/";TEXTO(ESQUERDA(A2;PROCURAR("-";A2;1)-1);"00")));"dd-mm-aaaa"))

Ficou show de bola!!!
Muito obrigado por sua ajuda foi de grande valia.

Abraços.

 
Postado : 21/12/2015 9:18 am
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
 

Isso ae.

A Função ÉERROS

Pelo que já vi aqui existem varias maneiras de trabalhar com ela.

Se é erro o primeiro corresp, ele tenta o segundo!

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 21/12/2015 10:05 am
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Boa tarde Carlos,
Muito obrigado!
Valeu por sua ajuda ficou show de bola!!

Abraços.

Fabio Santos

 
Postado : 23/12/2015 10:43 am
Página 2 / 2