Aunque es recomendable no trabajar con acentos en Excel, muchas veces tenemos bases de datos que contienen palabras acentuadas y que tenemos que cruzar con otra información que no tiene acentos.
La solución a este problema pasa por sacar todos los acentos de la base de datos en cuestión. Para ello se puede hacer de dos formas, o bien mediante fórmula o bien mediante una macro.
La fórmula: SUSTITUIR
Con la función sustituir podremos solventar este problema fácilmente. Para ello vamos a tener en cuenta la siguiente sintaxis:
=sustituir(texto;texto_original;nuevo_texto)
El ejemplo se puede hacer con una lista de nombres. Para sacar los acentos, utilizaremos la siguiente fórmula siguiendo con la sintaxis anterior:
=SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(A1;"Á";"A");"É";"E");"Í";"I");"Ó";"O");"Ú";"U")
Puede suceder que las letras sean minúsculas. En ese caso podremos utilizar la misma fórmula, pero aplicando las minúsculas:
=SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(A1;"á";"a");"é";"e");"í";"i");"ó";"o");"ú";"u")
Lamentablemente, la función no permite anidar los diez casos que se pueden dar, mayúsculas y minúsculas. Para ello, podemos pasaremos primero una fórmula y luego la otra. O podemos echar mano de una macro para poder hacerlo de una sola vez.
MACRO: Eliminaracentos()
Sub eliminaracentos()
With Selection
.Replace What:=Chr(225), Replacement:=Chr(97), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True ' á por a
.Replace What:=Chr(233), Replacement:=Chr(101), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True ' é por e
.Replace What:=Chr(237), Replacement:=Chr(105), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True ' í por i
.Replace What:=Chr(243), Replacement:=Chr(111), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True ' ó por o
.Replace What:=Chr(250), Replacement:=Chr(117), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True ' ú por u
.Replace What:=Chr(193), Replacement:=Chr(65), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True ' Á por A
.Replace What:=Chr(201), Replacement:=Chr(69), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True ' É por E
.Replace What:=Chr(205), Replacement:=Chr(73), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True ' Í por I
.Replace What:=Chr(211), Replacement:=Chr(79), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True ' Ó por O
.Replace What:=Chr(218), Replacement:=Chr(85), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True ' Ú por U
End With
End Sub
De esta forma al ejecutar la macro, tendrá en cuenta tanto mayúsculas como minúsculas. La macro funciona por selección. Es decir, seleccionáis toda la columna y luego ejecutáis la macro, automáticamente limpiará todos los acentos de las palabras. En caso de otro tipo de acentuaciones y caracteres, habría que buscar el tipo de carácter y añadirlo a la macro.
Esta macro es muy útil tenerla en una hoja auxiliar para sacar acentos. Algo así:
Y eso es todo, espero que os sea de utilidad esta pequeña entrada de hoy : )
Saludos.
Descarga el archivo pulsando en: ELIMINAR ACENTOS
¿Te ha resultado de interés?, puedes apoyar Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
MUCHAS GRACIAS , SEGURO ESTOY QUE ME SERA DE GRAN AYUDA TODA ESTA INFORMACIÓN… !FELICIDADES POR SU BLOG…¡
Muchas gracias Cipriano!! Cualquier consulta o ayuda no dudes en comentarlo, un saludo!!
Gracias desde Cuba
Gracias a ti, Fabricio. Saludos
Gran aporte! muchas gracias por compartirlo. Ha sido de valiosa ayuda
Muchas gracias JMZ! Saludos
También pueden seleccionar el área donde tengan celdas con acento y con Ctrl+B, en la pestaña «Reemplazar» anotar Á, reemplazar con A, y así con todas las vocales, me parece que es más práctico.
ja ja ja muchas gracias, nunca se me hubiera ocurrido, como siempre, las soluciones más sencillas, suelen las más prácticas y útiles.
Hola Jan Chan:
Es otra forma de hacerlo, sin embargo puede resultar más lenta. En este ejemplo solo tienes que pegar la macro en un módulo de VBA seleccionar y ejecutar. Además si es una tarea periódica, puedes automatizarla.
Otra forma, es mediante bucles (más lento):
https://excelsignum.com/2016/04/11/eliminar-tildes-en-excel-con-vba/
Muchas gracias por comentar y contribuir.
Saludos.
Funcionó correctamente!!!
¡Si aun permanece orientando, por favor indíqueme cómo incluir el símbolo de Bitcoin, ya que mi versión Excel no lo tiene, he encontrado que con U+20BF y oprimiendo la tecla Alt; sin embargo no me ha funcionado.
Agradezco sus aportaciones, si es posible a mi correo sus comentarios al respecto y muchas gracias, desde la CDMX (México)
Hola Beltrán:
Prueba a introducirlo como un formato de celda personalizado: #.##0 \₿
Saludos.
Me salvaron, de una mega fórmula, de verdad mil gracias !!!
De nada!! Saludos.
Muchas gracias!!
eres un capo, muchas gracias por este post
gracias! Saludos
Me ha ayudado muchísimo y como lo necesitaba para nombres de propios (Nombres) se me ocurrió lo siguiente:
=NOMPROPIO(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(MINUSC(A1);»á»;»a»);»é»;»e»);»í»;»i»);»ó»;»o»);»ú»;»u»))