Acentuações são um grande transtorno para quem utiliza o Excel e precisa lidar com funções de busca como PROCV e PROCH, por exemplo. Isso porque muitas vezes acontece de a célula de referência (a que você usa para fazer a busca) conter palavras acentuadas, enquanto que no intervalo onde você está realizando a busca é composto por células que contém palavras não acentuadas. Ou vice-versa. Isso ocorre muito quando fazemos buscas por nomes de pessoas e nomes de cidades, por exemplo, tentando cruzar dados de tabelas diferentes.
Quando temos este problema, a melhor estratégia é tentar igualar a base de caracteres da célula de busca com a das células do intervalo de busca, retirando de ambas os acentos. Desta forma, teremos uma única base de caracteres e um risco menor de termos incompatibilidades.
Infelizmente o Excel não tem nenhuma função nativa para retirar acentuações. Para contornar isso, teremos que usar uma UDF (User defined function) ou seja, uma função criada pelo próprio usuário.
Como criar a UDF
A UDF é uma macro (escrita em VBA), porém com características um pouco diferentes, pois ela aparecerá como uma função normal do Excel para que o usuário possa chamá-la como ele o faz com uma função qualquer. A seguir, mostramos os passos para programar a nossa UDF:
- Entre no Excel e aperte ALT + F11 para abrir o editor VBA.
- No menu da esquerda clique com o botão direito do mouse crie um novo módulo.
- Escreva o código a seguir no quadro que se abre a direita..
Function Acento(Caract As String) Dim A As String Dim B As String Dim i As Integer Const AccChars = "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ" Const RegChars = "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy" For i = 1 To Len(AccChars) A = Mid(AccChars, i, 1) B = Mid(RegChars, i, 1) Caract = Replace(Caract, A, B) Next Acento = Caract End Function
Pronto. Nossa função está implementada. Na prática, ela funciona da seguinte forma: ela verifica todos os caracteres da célula e, sempre que encontra um caractere acentuado, o substitui pelo seu equivalente não acentuado. Para chamar esta nova função no Excel, basta usá-la da mesma forma como usamos qualquer função. Exemplo: suponhamos que nossa célula com caracteres acentuados seja A3 e que quiséssemos ter sua equivalente não acentuada na célula B3. Então, na célula B3, teríamos que chamar a função da seguinte forma:
=Acento(A3)
Pronto! Agora ficou fácil trabalhamos com cruzamento de tabelas de dados diferentes sem nos preocupar com a questão de acentuação.
Fonte: FUNÇÃOEXCEL