Uso de las funciones REEMPLAZAR y SUSTITUIR de Excel - ejemplos de fórmulas

  • Compartir Este
Michael Brown

El tutorial explica las funciones REEMPLAZAR y SUSTITUIR de Excel con ejemplos de uso. Vea cómo utilizar la función REEMPLAZAR con cadenas de texto, números y fechas, y cómo anidar varias funciones REEMPLAZAR o SUSTITUIR dentro de una fórmula.

La semana pasada hablamos de varias formas de utilizar las funciones BUSCAR y ENCONTRAR en las hojas de cálculo de Excel. Hoy vamos a profundizar en otras dos funciones para reemplazar texto en una celda en función de su ubicación o sustituir una cadena de texto por otra en función de su contenido. Como ya habrás adivinado, estoy hablando de las funciones SUSTITUIR y REEMPLAZAR de Excel.

    Función REPLACE de Excel

    La función SUSTITUIR de Excel permite intercambiar uno o varios caracteres de una cadena de texto por otro carácter o un conjunto de caracteres.

    REPLACE(texto_antiguo, start_num, num_chars, texto_nuevo)

    Como puede ver, la función REPLACE de Excel tiene 4 argumentos, todos ellos obligatorios.

    • Texto_antiguo - el texto original (o una referencia a una celda con el texto original) en el que desea sustituir algunos caracteres.
    • Inicio_num - la posición del primer carácter dentro de texto_antiguo que desea reemplazar.
    • Num_chars - el número de caracteres que desea reemplazar.
    • Nuevo_texto - el texto de sustitución.

    Por ejemplo, para cambiar la palabra " sol " a " hijo ", puede utilizar la siguiente fórmula:

    =REPLACE("sol", 2, 1, "o")

    Y si coloca la palabra original en alguna celda, digamos A2, puede proporcionar la referencia de la celda correspondiente en el argumento texto_antiguo:

    =REPLACE(A2, 2, 1, "o")

    ¡Nota. Si el argumento start_num o num_chars es negativo o no numérico, una fórmula de Excel Replace devuelve el error #VALUE!

    Uso de la función REEMPLAZAR de Excel con valores numéricos

    La función SUSTITUIR en Excel está diseñada para trabajar con cadenas de texto. Por supuesto, puede utilizarla para sustituir caracteres numéricos que formen parte de una cadena de texto, por ejemplo:

    =REPLACE(A2, 7, 4, "2016")

    Observe que encerramos "2016" entre comillas dobles, como suele hacerse con los valores de texto.

    De forma similar, puede sustituir uno o más dígitos dentro de un número. Por ejemplo:

    =REPLACE(A4, 4, 4, "6")

    Y de nuevo, tienes que encerrar el valor de sustitución entre comillas dobles ("6").

    Nota: Una fórmula REPLACE de Excel siempre devuelve un valor cadena de texto En la captura de pantalla anterior, observe la alineación a la izquierda del valor de texto devuelto en B2, y compárelo con el número original alineado a la derecha en A2. Y como es un valor de texto, no podrá utilizarlo en otros cálculos a menos que lo convierta de nuevo en número, por ejemplo multiplicándolo por 1 o utilizando cualquier otro método descrito en Cómo convertir texto en número.

    Uso de la función REPLACE de Excel con fechas

    Como acabas de ver, la función REEMPLAZAR funciona bien con números, excepto que devuelve una cadena de texto :) Recordando que en el sistema interno de Excel, las fechas se almacenan como números, puedes intentar utilizar algunas fórmulas Reemplazar en fechas. Los resultados serían bastante embarazosos.

    Por ejemplo, tienes una fecha en A2, digamos 1-Oct-14, y quieres cambiar " Octubre " a " Nov ". Así, escribes la fórmula REPLACE(A2, 4, 3, "Nov") que le dice a Excel que sustituya 3 caracteres en las celdas A2 empezando por el 4º carácter... y obtienes el siguiente resultado:

    ¿Por qué? Porque "01-Oct-14" es sólo una representación visual del número de serie subyacente (41913) que representa la fecha. Así, nuestra fórmula Replace cambia los 3 últimos dígitos del número de serie anterior por " Nov " y devuelve la cadena de texto "419Nov".

    Para que la función REEMPLAZAR de Excel funcione correctamente con fechas, primero puede convertir las fechas en cadenas de texto utilizando la función TEXT o cualquier otra técnica demostrada en Cómo convertir fecha en texto en Excel. Alternativamente, puede incrustar la función TEXT directamente en el argumento texto_antiguo de la función REEMPLAZAR:

    =REPLACE(TEXT(A2, "dd-mmm-aa"), 4, 3, "Nov")

    Recuerde que el resultado de la fórmula anterior es un cadena de texto Si necesita fechas en lugar de cadenas de texto, utilice la función DATEVALUE para convertir los valores devueltos por la función REEMPLAZAR de Excel en fechas:

    =DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-aa"), 4, 3, "Nov"))

    Funciones REPLACE anidadas para realizar múltiples sustituciones en una celda

    A menudo, es posible que necesite realizar más de un reemplazo en la misma celda. Por supuesto, podría realizar un reemplazo, imprimir un resultado intermedio en una columna adicional y, a continuación, utilizar la función REPLACE de nuevo. Sin embargo, una forma mejor y más profesional es utilizar funciones REPLACE anidadas que permiten realizar varias sustituciones con una sola fórmula. En este contexto, "anidar" significa colocar una función dentro de otra.

    Considere el siguiente ejemplo. Supongamos que tiene una lista de números de teléfono en la columna A formateada como "123456789" y desea que se parezcan más a números de teléfono añadiendo guiones. En otras palabras, su objetivo es convertir "123456789" en "123-456-789".

    Insertar el primer guión es fácil. Se escribe una fórmula habitual de Excel Replace que sustituye a cero caracteres con un guión, es decir, añade un guión en la 4ª posición de una celda:

    =REPLACE(A2,4,0,"-")

    El resultado de la fórmula Replace anterior es el siguiente:

    Bien, y ahora necesitamos insertar un guión más en la 8ª posición. Para ello, colocas la fórmula anterior dentro de otra función SUSTITUIR de Excel. Más concretamente, la incrustas en la función texto_antiguo de la otra función, para que la segunda función REPLACE maneje el valor devuelto por la primera REPLACE, y no el valor de la celda A2:

    =REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")

    Como resultado, obtendrá los números de teléfono con el formato deseado:

    De forma similar, puede utilizar funciones REEMPLAZAR anidadas para hacer que las cadenas de texto parezcan fechas añadiendo una barra oblicua (/) donde corresponda:

    =(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))

    Además, puede convertir cadenas de texto en fechas reales envolviendo la fórmula REPLACE anterior con la función DATEVALUE:

    =DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))

    Y, naturalmente, no estás limitado en el número de funciones que puedes anidar dentro de una fórmula (las versiones modernas de Excel 2010, 2013 y 2016 permiten hasta 8192 caracteres y hasta 64 funciones anidadas en una fórmula).

    Por ejemplo, puede utilizar 3 funciones REPLACE anidadas para que un número en A2 aparezca como fecha y hora:

    =REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")

    Sustitución de una cadena que aparece en una posición diferente en cada celda

    Hasta ahora, en todos los ejemplos hemos tratado con valores de naturaleza similar y hemos realizado sustituciones en la misma posición en cada celda. Pero las tareas de la vida real suelen ser más complicadas que eso. En sus hojas de cálculo, los caracteres a sustituir no tienen por qué aparecer en el mismo lugar en cada celda, por lo que tendrá que encontrar la posición del primer carácter El siguiente ejemplo demostrará de qué estoy hablando.

    Supongamos que tiene una lista de direcciones de correo electrónico en la columna A. Y el nombre de una empresa ha cambiado de "ABC" a, digamos, "BCA". Entonces, tiene que actualizar todas las direcciones de correo electrónico de los clientes en consecuencia.

    Pero el problema es que los nombres de los clientes son de distinta longitud, y por eso no puede especificar exactamente dónde empieza el nombre de la empresa. En otras palabras, no sabe qué valor suministrar en el argumento start_num de la función REPLACE de Excel. Para averiguarlo, utilice la función FIND de Excel para determinar la posición del primer carácter de la cadena "@abc":

    =BUSCAR("@abc",A2)

    A continuación, introduzca la función FIND anterior en el argumento start_num de la fórmula REPLACE:

    =REPLACE(A2, FIND("@abc",A2), 4, "@bca")

    Sugerencia: incluimos "@" en nuestra fórmula Buscar y reemplazar de Excel para evitar sustituciones accidentales en la parte del nombre de las direcciones de correo electrónico. Por supuesto, hay muy pocas posibilidades de que se produzcan estas coincidencias y, aun así, puede que quiera estar seguro.

    Como puede ver en la siguiente captura de pantalla, la fórmula no tiene ningún problema para encontrar y sustituir el texto antiguo por el nuevo. Sin embargo, si no se encuentra la cadena de texto a sustituir, la fórmula devuelve el error #¡VALOR!

    Y queremos que la fórmula devuelva la dirección de correo electrónico original en lugar del error. Así pues, encerremos nuestra fórmula FIND & REPLACE en la función IFERROR:

    =IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)

    Y esta fórmula mejorada funciona perfectamente, ¿verdad?

    Otra aplicación práctica de la función SUSTITUIR es poner en mayúsculas la primera letra de una celda. Siempre que trabajes con una lista de nombres, productos y similares, puedes utilizar la fórmula enlazada anteriormente para cambiar la primera letra a MAYÚSCULAS.

    Sugerencia: si desea realizar las sustituciones en los datos originales, una forma más sencilla sería utilizar el cuadro de diálogo BUSCAR y SUSTITUIR de Excel.

    Función SUBSTITUTE de Excel

    La función SUSTITUIR en Excel reemplaza una o más instancias de un carácter dado o cadena de texto con un carácter(es) especificado(s).

    La sintaxis de la función SUSTITUIR de Excel es la siguiente:

    SUBSTITUTE(texto, texto_antiguo, texto_nuevo, [instancia_num])

    Los tres primeros argumentos son obligatorios y el último es opcional.

    • Texto - el texto original en el que desea sustituir caracteres. Puede suministrarse como cadena de prueba, referencia de celda o resultado de otra fórmula.
    • Texto_antiguo - el carácter o caracteres que desea sustituir.
    • Nuevo_texto - el/los nuevo(s) carácter(es) por el/los que reemplazar texto_antiguo.
    • Número_de_instancia - la aparición de texto_antiguo que desea sustituir. Si se omite, todas las apariciones del texto antiguo se cambiarán por el texto nuevo.

    Por ejemplo, todas las fórmulas que aparecen a continuación sustituyen "1" por "2" en la celda A2, pero devuelven resultados diferentes dependiendo del número que proporciones en el último argumento:

    =SUSTITUIR(A2, "1", "2", 1) - Sustituye la primera aparición de "1" por "2".

    =SUSTITUIR(A2, "1", "2", 2) - Sustituye la segunda aparición de "1" por "2".

    =SUSTITUIR(A2, "1", "2") - Sustituye todas las apariciones de "1" por "2".

    En la práctica, la función SUSTITUIR también se utiliza para eliminar caracteres no deseados de las celdas. Para ver ejemplos reales, consulte:

    • Cómo eliminar caracteres o palabras de una cadena
    • Cómo eliminar caracteres no deseados de las celdas

    Nota: La función SUSTITUIR en Excel es distingue entre mayúsculas y minúsculas Por ejemplo, la siguiente fórmula reemplaza todas las instancias de la "X" mayúscula por "Y" en la celda A2, pero no reemplazará ninguna instancia de la "x" minúscula.

    Sustituir varios valores con una sola fórmula (SUSTITUIR anidado)

    Al igual que ocurre con la función SUSTITUIR de Excel, puede anidar varias funciones SUSTITUIR dentro de una misma fórmula para realizar varias sustituciones a la vez, es decir, sustituir varios caracteres o subcadenas con una sola fórmula.

    Supongamos que tiene una cadena de texto como " PR1, ML1, T1 " en la celda A2, donde "PR" significa "Proyecto", "ML" significa "Hito" y "T" significa "Tarea". Lo que quiere es sustituir los tres códigos por nombres completos. Para conseguirlo, puede escribir 3 fórmulas SUSTITUIR diferentes:

    =SUBSTITUTE(A2, "PR", "Proyecto ")

    =SUBSTITUTE(A2, "ML", "Hito ")

    =SUBSTITUTE(A2, "T", "Tarea ")

    Y luego anidarlos entre sí:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Proyecto "), "ML", "Hito "), "T", "Tarea ")

    Observa que hemos añadido un espacio al final de cada argumento new_text para mejorar la legibilidad.

    Para conocer otras formas de reemplazar varios valores a la vez, consulte Cómo realizar búsquedas y reemplazos masivos en Excel.

    Excel REEMPLAZAR vs. Excel SUSTITUIR

    Las funciones REEMPLAZAR y SUSTITUIR de Excel son muy similares entre sí, ya que ambas están diseñadas para intercambiar cadenas de texto. Las diferencias entre ambas funciones son las siguientes:

    • SUSTITUIR sustituye a uno o varios instancias de un carácter dado o de una cadena de texto. Por lo tanto, si conoce el texto a sustituir, utilice la función SUSTITUIR de Excel.
    • REPLACE cambia los caracteres de un posición Así pues, si conoce la posición del carácter o caracteres que debe sustituir, utilice la función SUSTITUIR de Excel.
    • La función SUBSTITUTE en Excel permite añadir un parámetro opcional (instance_num) que especifica qué incidencia de texto_antiguo debe cambiarse por texto_nuevo.

    Así es como se utilizan las funciones SUSTITUIR y REEMPLAZAR en Excel. Espero que estos ejemplos te resulten útiles para resolver tus tareas. Te doy las gracias por leer y ¡te espero en nuestro blog la semana que viene!

    Descargar el cuaderno de prácticas

    Ejemplos de fórmulas REEMPLAZAR y SUSTITUIR (archivo .xlsx)

    Michael Brown es un entusiasta de la tecnología dedicado y apasionado por simplificar procesos complejos utilizando herramientas de software. Con más de una década de experiencia en la industria de la tecnología, ha perfeccionado sus habilidades en Microsoft Excel y Outlook, así como en Google Sheets y Docs. El blog de Michael está dedicado a compartir su conocimiento y experiencia con otros, brindando consejos y tutoriales fáciles de seguir para mejorar la productividad y la eficiencia. Ya sea un profesional experimentado o un principiante, el blog de Michael ofrece información valiosa y consejos prácticos para aprovechar al máximo estas herramientas de software esenciales.