Olá seja bem vindo ao meu novo artigo!
Neste artigo irei descrever um problema que a anos perdura dentro do MS Excel (Não mais!).
Quando utilizamos o MS Excel em diversos países e idiomas, notei um problema de regionalização, principalmente quando precisamos utilizar o mês por extenso. Por exemplo: 02 de Fevereiro.
As planilhas desenvolvidas no Brasil onde a formatação é dd/mm/aaaa, quando abertas em outros países (Austria, Finlândia, EUA, entre outros) apresentarão um problema de conversão da formatação das datas, vamos ao entendimento:
Temos uma data 20/01/2020 na célula A1 e queremos alterar para Jan/20, para isso é necessário combinar duas funções, seguem ambas abaixo:
=PRI.MAIÚSCULA(TEXTO(A1;"mmm/aa"))
ou em inglês
=PROPER(TEXT(A1;"mmm/aa"))
*É utilizado a função PRI.MAIÚSCULA devido a convenção ABNT que padroniza os meses e dias da semana, escritos em minúsculo para o Brasil. Cada país tem uma regra definida.
Para as planilhas desenvolvidas no Brasil e usuários com a configuração de Região do Windows como Português (Brasil), sempre irá funcionar, pois a função TEXTO exige que se utilize uma condição travada.
As planilhas apresentarão problemas caso enviemos essa "formatação travada" para usuários em outros países. Veja alguns exemplos abaixo:
País Estados Unidos, o formato utilizado é "mmm/yy"
País Finlândia, o formato utilizado é "kk/vvvv"
País Áustria, o formato utilizado é "MM/JJJJ"
Para resolver esse problema temos algumas soluções, vamos a elas:
A primeira solução obtida foi com a utilização de uma função do MS Excel 4.0 chamada OBTER.CÉL, onde esta função retorna o padrão utilizado em uma célula.
=OBTER.CÉL(7;Sheet1!$A$1)
ou em Inglês
=GET.CELL(7;Sheet1!$A$1)
Para que ela funcione, é necessário inserir a mesma em um nome (Na guia Fórmulas->Gerenciamento de Nomes) e depois vincular o nome criado a uma célula, o problema desta solução é que o MS Excel só permitirá seu funcionamento se salvarmos a planilha na versão XLSM.
Após proposto o desafio vários amigos, o Grande Mestre Fabio Gatti (obrigadão grande amigo) fez uma estratégia bem interessante, para resolver esse problema que perdura por anos, utilizo-se de uma estratégia bem interessante adotando a data 01/02/1903, onde o número 1 sempre seria o Dia, o 2 seria sempre o Mês e o 3 seria sempre o Ano, e montou a solução com células auxiliares, reconhecendo o padrão e alterando de maneira automática. Essa é uma estratégia brilhante e decidi fazer uma fórmula onde não fosse necessário a utilização de células auxiliares, funcionando para países onde se utiliza o padrão ASCII.
Segue a resposta abaixo:
=PRI.MAIÚSCULA(TEXTO(A6;REPT(ÍNDICE(SUBSTITUIR(ENDEREÇO(1;
LIN(1:26);4);"1";"");CORRESP(2;ÍNDICE(--TEXTO(1128;SUBSTITUIR(
ENDEREÇO(1;LIN(1:26);4);"1";""));0);0);0);3))&"/"&DIREITA(
ANO(A6);2))
ou em inglês
=PROPER(TEXT(A6;REPT(INDEX(SUBSTITUTE(ADDRESS(1;ROW(1:26);
4);"1";"");MATCH(2;INDEX(--TEXT(1128;SUBSTITUTE(ADDRESS(1;
ROW(1:26);4);"1";""));0);0);0);3))&"/"&RIGHT(YEAR(A6);2))
Caso necessite da conversão somente para o Inglês, segue a resposta abaixo:
=ESCOLHER(MÊS(I6);"Jan";"Feb";"Mar";"Apr";"May";"Jun";
"Jul";"Aug";"Sep";"Oct";"Nov";"Dec")&"/"&DIREITA(ANO(I6);2)
ou em inglês
=CHOOSE(MONTH(I6);"Jan";"Feb";"Mar";"Apr";"May";"Jun";
"Jul";"Aug";"Sep";"Oct";"Nov";"Dec")&"/"&RIGHT(YEAR(I6);2)
No caso acima é possível utilizar em todos os idiomas do Windows, pois a mesma converte o Mês em formato numérico, associado a função ESCOLHER (CHOOSE), retorna a posição correta do Mês concatenando com os últimos dois dígitos do ano.
Espero que tenha gostado desse artigo!
Caso tenha alguma sugestão de outra técnica, poste aqui nos comentários.
Se gostou, curta e compartilhe este artigo para que todos saibam o que é possível fazer dentro do Excel.
E ja conhece o meu novo curso online de Excel?
Abraços a todos e até o próximo artigo!
Fabio BALDINI
Frase do Dia: "O segredo da mudança é concentrar toda a sua energia, não na luta contra o velho, mas na construção do novo" Autor: Socrates
OBS: Quero agradecer imensamente ao Grande Mestre e Amigão Alessandro Trovato pelas eternas revisões dos artigo para que sempre fique esmero e ao Grande Mestre Fabio Gatti, pela idéia sensacional! Obrigadão grandes Mestres!
Link permanente
Sensacional !