Cómo quitar acentos en Excel

Existen diversas razones por las cuales podríamos tener la necesidad de remover acentos en Excel, tal vez porque nuestros datos serán enviados a una aplicación que no reconoce acentos o porque la base de datos destino no reconoce dichos caracteres especiales. Cualquiera que sea la razón, en esta ocasión veremos las alternativas que tenemos para quitar los acentos de una cadena de texto en Excel.

La función SUSTITUIR

La primera alternativa que analizaremos implica el uso de la función SUSTITUIR la cual reemplaza un texto existente con un texto nuevo dentro de una cadena. La función SUSTITUIR tiene tres argumentos obligatorios y uno opcional:

  • Texto (obligatorio): La cadena de texto original.
  • Texto_original (obligatorio): Texto que se desea sustituir.
  • Texto_nuevo (obligatorio): Texto con el que se reemplazarán las ocurrencias de Texto_orignial.
  • Núm_de_ocurrencia (opcional): La ocurrencia específica de Texto_original que se desea reemplazar. Si se omite se reemplazarán todas las ocurrencias.

Hagamos un ejemplo muy sencillo para comprobar el comportamiento de la función SUSTITUIR. En la celda A1 de una hoja colocaré mi nombre “Moisés” el cual tiene una letra acentuada y en la celda B1 utilizaré la siguiente fórmula:

=SUSTITUIR(A1, "é", "e")

En esta fórmula he omitido el cuarto argumento por lo que todas las ocurrencias del carácter acentuado “é” serán reemplazadas por un carácter sin acento. Observa el resultado de esta fórmula:

Cómo quitar acentos en Excel

La celda B1 muestra mi nombre pero sin la letra “e” acentuada, así que la función SUSTITUIR es la indicada para ayudarnos en esta tarea de quitar acentos en Excel, aunque nuestra fórmula aún no está completa ya que en este momento solamente reemplaza la letra “é” acentuada. Considera el siguiente ejemplo, donde la cadena de texto original tiene dos palabras acentuadas:

Quitar acentos en Excel

Nuestra fórmula solo ha reemplazado la letra “é” acentuada pero ha dejado intacta la segunda letra “ó” acentuada, así que ¿Cómo hacemos para reemplazar todas las vocales acentuadas dentro de una cadena de texto desde una misma fórmula?

La función SUSTITUIR anidada

Para poder sustituir todas las letras acentuadas en una cadena de texto tendremos que “anidar” varias veces la función SUSTITUIR. Cuando digo “anidar” me refiero a que el resultado devuelto por una función será colocado como el argumento de una segunda función, pero seguramente me entenderás fácilmente con un ejemplo. Considera la siguiente fórmula:

=SUSTITUIR(SUSTITUIR(A2, "é", "e"), "ó", "o")

Debes poner mucha atención a esta fórmula, porque puedes llegar a confundirte con los paréntesis y las comas. Primero debes notar que tenemos dos funciones SUSTITUIR y la segunda aparición de la función (de izquierda a derecha) es precisamente la fórmula de nuestro primer ejemplo la cual reemplaza la letra “é” acentuada. Toda esta fórmula está colocada como el primer argumento de otra función SUSTITUIR la cual tomará dicho resultado y sustituirá la letra “ó” acentuada. Observa el resultado de esta fórmula:

Quitar tildes en Excel

Este procedimiento de “anidación” lo tendremos que repetir para considerar las otras vocales que nos hacen falta, así que finalmente tendremos cinco funciones SUSTITUIR anidadas de la siguiente manera:

=SUSTITUIR( SUSTITUIR( SUSTITUIR( SUSTITUIR( SUSTITUIR(A3, "á", "a"), "é", "e"), "í", "i"), "ó", "o"), "ú", "u")

Para facilitar la comprensión de la fórmula he ordenado la sustitución para comenzar con la letra “á” y terminar con la letra “ú”. En la siguiente imagen puedes notar el resultado de aplicar nuestra fórmula a un texto que tiene cinco vocales diferentes acentuadas:

Fórmula para quitar acentos en Excel

Esta última fórmula se acerca mucho a nuestra solución final, y es que aún no hemos terminado porque la función SUSTITUIR es sensible a mayúsculas y minúsculas por lo que nuestra fórmula no sustituirá las vocales mayúsculas acentuadas.

Eliminar acentos en Excel

Fórmula para quitar acentos en Excel

Después de realizar los ejemplos anteriores, finalmente podemos crear una fórmula que nos ayude a quitar acentos en Excel sin importar si son letras mayúsculas y minúsculas. Para eso necesitaremos “anidar” diez funciones SUSTITUIR de la siguiente manera:

=SUSTITUIR( SUSTITUIR( SUSTITUIR( SUSTITUIR( SUSTITUIR( SUSTITUIR( SUSTITUIR( SUSTITUIR( SUSTITUIR( SUSTITUIR(A4, "á", "a"), "é", "e"), "í", "i"), "ó", "o"), "ú", "u"), "Á", "A"), "É", "E"), "Í", "I"), "Ó", "O"), "Ú", "U")

Es importante mencionar que esta fórmula solamente funcionará a partir de Excel 2007 ya que las versiones anteriores solamente permitían anidar un máximo de ocho funciones. Si ese fuera tu caso, tendrías que dividir la tarea en dos pasos, primero sustituir las minúsculas y con otra fórmula sustituir las mayúsculas. Si tienes una versión más actual no tendrás que preocuparte y podrás utilizar esta fórmula para obtener un resultado como el siguiente:

Cómo reemplazar acentos en Excel

Esta fórmula solamente remueve las vocales acentuadas que es el tipo de acentos que utilizamos en el idioma español, sin embargo, si necesitas considerar otros caracteres acentuados como los del idioma portugués o francés, entonces deberás aumentar la cantidad de funciones anidadas para considerar esos casos.

Macro para quitar acentos en Excel

Si eres un usuario avanzado y en lugar de utilizar funciones anidadas deseas utilizar una macro para quitar acentos en Excel, entonces este segundo método es para ti. A continuación te mostraré el código de una función UDF que nos ayudará en esta tarea:

Function QUITARACENTOS(cadena As String) As String
  Dim posicion As Long
  Const conAcento As String = "áéíóúÁÉÍÓÚ"
  Const sinAcento As String = "aeiouAEIOU"
  
  For i = 1 To Len(conAcento)
    cadena = Replace(cadena, Mid(conAcento, i, 1), Mid(sinAcento, i, 1))
  Next i
  
  QUITARACENTOS = cadena
End Function

Las vocales acentuadas, tanto mayúsculas y minúsculas, están indicadas en la constante conAcento. También es necesario crear una segunda constante (sinAcento) que tendrá los mismos caracteres pero sin acentuar y deberán estar en el mismo orden. Ambas constantes son indispensables para poder reemplazar los acentos de manera correcta.

Nuestra función recibirá el texto original y utilizará el bucle For-Next para recorrer la cadena de texto conAcento.  Cada carácter acentuado es extraído con la función Mid y es reemplazado con su equivalente no acentuado utilizando la función Replace. Observa cómo esta nueva función UDF nos ayuda a reemplazar los caracteres acentuados:

Remover acentos en Excel con una macro

Podemos utilizar esta nueva función con solo indicar la celda que contiene el texto donde removeremos los acentos. Una ventaja de esta función es que, si queremos considerar nuevos caracteres dentro de la sustitución será suficiente con agregarlos a las constantes definidas en el código (conAcento y sinAcento).

Ahora ya conoces dos métodos para eliminar acentos en Excel. Si quieres practicar con los ejemplos mostrados en este artículo, puedes descargar el libro de trabajo y en una hoja encontrarás el ejemplo que utiliza las funciones de Excel y en otra hoja el ejemplo que hace uso de la función UDF.