Excel: Dividir cadena por delimitador o patrón, separar texto y números

  • Compartir Este
Michael Brown

El tutorial explica cómo dividir celdas en Excel utilizando fórmulas y la función Dividir texto. Aprenderá a separar texto mediante comas, espacios o cualquier otro delimitador, y a dividir cadenas en texto y números. .

Dividir el texto de una celda en varias celdas es la tarea con la que todos los usuarios de Excel se enfrentan de vez en cuando. En uno de nuestros artículos anteriores, hablamos de cómo dividir celdas en Excel utilizando la función Texto a columna y Flash de relleno Hoy vamos a ver en profundidad cómo dividir cadenas utilizando fórmulas y la función Texto dividido herramienta.

    Cómo dividir texto en Excel mediante fórmulas

    Para dividir cadenas en Excel, generalmente se utiliza la función IZQUIERDA, DERECHA o MEDIA en combinación con BUSCAR o BUSCAR. A primera vista, algunas de las fórmulas pueden parecer complejas, pero la lógica es en realidad bastante simple, y los siguientes ejemplos le darán algunas pistas.

    Dividir cadena por coma, punto y coma, barra oblicua, guión u otro delimitador

    Al dividir celdas en Excel, la clave está en localizar la posición del delimitador dentro de la cadena de texto. Dependiendo de su tarea, esto se puede hacer mediante el uso de BUSCAR que no distingue entre mayúsculas y minúsculas o BUSCAR que distingue entre mayúsculas y minúsculas. Una vez que tenga la posición del delimitador, utilice la función DERECHA, IZQUIERDA o MEDIA para extraer la parte correspondiente de la cadena de texto. Para una mejor comprensión, consideremos lo siguienteejemplo.

    Supongamos que dispone de una lista de SKU del Artículo-Color-Talla y desea dividir la columna en 3 columnas separadas:

    1. Para extraer el nombre del artículo (todos los caracteres antes del 1er guión), inserte la siguiente fórmula en B2 y, a continuación, cópiela en la columna:

      =LEFT(A2, SEARCH("-",A2,1)-1)

      En esta fórmula, BUSCAR determina la posición del 1er guión ("-") en la cadena, y la función IZQUIERDA extrae todos los caracteres situados a su izquierda (se resta 1 a la posición del guión porque no se desea extraer el guión propiamente dicho).

    2. Para extraer el color (todos los caracteres entre el primer y el segundo guión), introduzca la siguiente fórmula en C2 y, a continuación, cópiela en otras celdas:

      =MID(A2, SEARCH("-",A2) + 1, SEARCH("-",A2,SEARCH("-",A2)+1) - SEARCH("-",A2) - 1)

      En esta fórmula, estamos utilizando la función MID de Excel para extraer texto de A2.

      La posición inicial y el número de caracteres a extraer se calculan con la ayuda de 4 funciones de BÚSQUEDA diferentes:

      • Número de inicio es la posición del primer guión +1:

        BUSCAR("-",A2) + 1

      • Número de caracteres a extraer la diferencia entre la posición del 2º guión y el 1º guión, menos 1:

        SEARCH("-", A2, SEARCH("-",A2)+1) - SEARCH("-",A2) -1

    3. Para extraer el talla (todos los caracteres después del 3er guión), introduzca la siguiente fórmula en D2:

      =RIGHT(A2,LEN(A2) - SEARCH("-", A2, SEARCH("-", A2) + 1))

      En esta fórmula, la función LEN devuelve la longitud total de la cadena, a la que se resta la posición del 2º guión. La diferencia es el número de caracteres que hay después del 2º guión, y la función RIGHT los extrae.

    De forma similar, puede dividir una columna por cualquier otro carácter. Todo lo que tiene que hacer es sustituir "-" por el delimitador deseado, por ejemplo espacio (" "), coma (","), barra ("/"), colon (";"), punto y coma (";"), etc.

    Consejo: en las fórmulas anteriores, +1 y -1 corresponden al número de caracteres del delimitador. En este ejemplo, se trata de un guión (1 carácter). Si su delimitador consta de 2 caracteres, por ejemplo, una coma y un espacio, introduzca sólo la coma (",") en la función BUSCAR y utilice +2 y -2 en lugar de +1 y -1.

    Cómo dividir una cadena por salto de línea en Excel

    Para dividir texto por espacios, utilice fórmulas similares a las mostradas en el ejemplo anterior. La única diferencia es que necesitará la función CHAR para suministrar el carácter de salto de línea, ya que no puede escribirlo directamente en la fórmula.

    Supongamos que las celdas que desea dividir tienen un aspecto similar a éste:

    Tome las fórmulas del ejemplo anterior y sustituya un guión ("-") por CHAR(10) donde 10 es el código ASCII para Avance de línea.

    • Para extraer el nombre del artículo :

      =LEFT(A2, SEARCH(CHAR(10),A2,1)-1)

    • Para extraer el color :

      =MID(A2, SEARCH(CHAR(10),A2) + 1, SEARCH(CHAR(10),A2,SEARCH(CHAR(10),A2)+1) - SEARCH(CHAR(10),A2) - 1)

    • Para extraer el talla :

      =RIGHT(A2,LEN(A2) - SEARCH(CHAR(10), A2, SEARCH(CHAR(10), A2) + 1))

    Y este es el resultado:

    Cómo dividir texto y números en Excel

    Para empezar, no existe una solución universal que funcione para todas las cadenas alfanuméricas. La fórmula a utilizar depende del patrón de cadena concreto. A continuación encontrará las fórmulas para los dos escenarios habituales.

    Dividir cadena del patrón 'texto + número

    Supongamos que tienes una columna de cadenas con texto y números combinados, donde un número siempre sigue al texto. Quieres romper las cadenas originales para que el texto y los números aparezcan en celdas separadas, así:

    El resultado puede conseguirse de dos maneras diferentes.

    Método 1: Contar los dígitos y extraer el mismo número de caracteres

    La forma más sencilla de dividir una cadena de texto en la que el número aparece después del texto es la siguiente:

    A extraer números busca en la cadena todos los números posibles del 0 al 9, obtiene el total de números y devuelve esa cantidad de caracteres desde el final de la cadena.

    Con la cadena original en A2, la fórmula es la siguiente:

    =RIGHT(A2,SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"},""))))

    A extraer texto , se calcula cuántos caracteres de texto contiene la cadena restando el número de dígitos extraídos (C2) de la longitud total de la cadena original en A2. Después, se utiliza la función IZQUIERDA para devolver esa cantidad de caracteres desde el principio de la cadena.

    =LEFT(A2,LEN(A2)-LEN(C2))

    Donde A2 es la cadena original, y C2 es el número extraído, como se muestra en la captura de pantalla:

    Método 2: Averiguar la posición de la 1ª cifra en una cadena

    Una solución alternativa sería utilizar la siguiente fórmula para determinar la posición del primer dígito en la cadena:

    =MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))

    Una vez encontrada la posición del primer dígito, puede dividir texto y números utilizando fórmulas muy sencillas IZQUIERDA y DERECHA.

    Para extraer texto :

    =LEFT(A2, B2-1)

    Para extraer número :

    =DERECHA(A2, LEN(A2)-B2+1)

    Donde A2 es la cadena original y B2 es la posición del primer número.

    Para deshacerse de la columna auxiliar que mantiene la posición del primer dígito, puede incrustar la fórmula MIN en las funciones IZQUIERDA y DERECHA:

    Fórmula de extracción texto :

    =LEFT(A2,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)

    Fórmula de extracción números :

    =RIGHT(A2,LEN(A2)-MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1)

    Dividir cadena del patrón 'número + texto

    Si está dividiendo celdas en las que aparece texto después del número, puede extraer números con la siguiente fórmula:

    =LEFT(A2, SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}, ""))))

    La fórmula es similar a la del ejemplo anterior, salvo que se utiliza la función IZQUIERDA en lugar de DERECHA para obtener el número del lado izquierdo de la cadena.

    Una vez que tengas los números, extracto texto restando el número de dígitos de la longitud total de la cadena original:

    =DERECHA(A2,LEN(A2)-LEN(B2))

    Donde A2 es la cadena original y B2 es el número extraído, como se muestra en la siguiente captura de pantalla:

    Consejo: para obtener el número de cualquier posición de la cadena de texto utilice esta fórmula o la herramienta Extraer.

    Así es como se pueden dividir cadenas en Excel utilizando distintas combinaciones de diferentes funciones. Como ves, las fórmulas no son nada obvias, así que quizá quieras descargarte el libro de ejemplo de Excel Dividir celdas para examinarlas más de cerca.

    Si descifrar los giros arcanos de las fórmulas de Excel no es tu ocupación favorita, puede que te guste el método visual para dividir celdas en Excel, que se demuestra en la siguiente parte de este tutorial.

    Cómo dividir celdas en Excel con la herramienta Dividir texto

    Una forma alternativa de dividir una columna en Excel es utilizar la función Dividir texto incluida en nuestra Ultimate Suite para Excel, que ofrece las siguientes opciones:

      Para que las cosas queden más claras, veamos cada opción una por una.

      Dividir celdas por caracteres

      Elija esta opción siempre que desee dividir el contenido de la celda en cada aparición del carácter especificado .

      Para este ejemplo, vamos a tomar las cadenas de texto de la sección Artículo-Color-Talla que utilizamos en la primera parte de este tutorial. Como recordarás, los separamos en 3 columnas diferentes utilizando 3 fórmulas distintas. Y aquí te mostramos cómo puedes conseguir el mismo resultado en 2 rápidos pasos:

      1. Suponiendo que tiene instalado Ultimate Suite, seleccione las celdas que desea dividir y haga clic en el botón Texto dividido en el icono Datos de Ablebits ficha.

      2. En Texto dividido en la parte derecha de la ventana de Excel, y haga lo siguiente:
        • Ampliar el Dividir por caracteres y seleccione uno de los delimitadores predefinidos o escriba cualquier otro carácter en el campo A medida caja.
        • Elija si desea dividir las celdas en columnas o filas.
        • Revise el resultado bajo el Vista previa y haga clic en el botón Dividir botón.

      Sugerencia: si en una celda puede haber varios delimitadores sucesivos (por ejemplo, más de un carácter de espacio), seleccione la opción Tratar delimitadores consecutivos como uno caja.

      La tarea que requería 3 fórmulas y 5 funciones diferentes ahora sólo requiere un par de segundos y pulsar un botón.

      Dividir celdas por cadena

      Esta opción permite dividir cadenas utilizando cualquier combinación de caracteres como delimitador. Técnicamente, se divide una cadena en partes utilizando una o varias subcadenas diferentes como límites de cada parte.

      Por ejemplo, para dividir una frase por las conjunciones " y " y " o ", amplíe el Dividir por cadenas e introduzca las cadenas delimitadoras, una por línea:

      Como resultado, la frase fuente se separa en cada aparición de cada delimitador:

      Consejo. Los caracteres "o" así como "y" pueden formar parte a menudo de palabras como "naranja" o "Andalucía", así que asegúrese de escribir un espacio antes y después y y o para evitar la división de palabras.

      Y aquí otro ejemplo de la vida real. Supongamos que ha importado una columna de fechas de una fuente externa, con el siguiente aspecto:

      5.1.2016 12:20

      5.2.2016 14:50

      Este formato no es convencional para Excel y, por lo tanto, ninguna de las funciones Fecha reconocería ninguno de los elementos de fecha u hora. Para dividir el día, el mes, el año, las horas y los minutos en celdas separadas, introduzca los siguientes caracteres en el campo Dividir por cadenas caja:

      • Punto (.) para separar día, mes y año
      • Dos puntos (:) para separar horas y minutos
      • Espacio para separar fecha y hora

      Pulsa el botón Dividir y obtendrá inmediatamente el resultado:

      Dividir celdas por máscara (patrón)

      Separar una celda por máscara significa dividir una cadena basado en un patrón .

      Esta opción resulta muy útil cuando se necesita dividir una lista de cadenas homogéneas en algunos elementos, o subcadenas. La complicación es que el texto de origen no se puede dividir en cada aparición de un delimitador dado, sino sólo en alguna(s) aparición(es) específica(s). El siguiente ejemplo facilitará la comprensión.

      Supongamos que tiene una lista de cadenas extraídas de algún archivo de registro:

      No puede utilizar un espacio como delimitador porque hay espacios entre la fecha y la hora, que deberían aparecer en una columna, y hay espacios en el texto de la excepción, que también debería aparecer en una columna.

      La solución es dividir una cadena por la siguiente máscara: *ERROR:*Excepción:*

      El asterisco (*) representa cualquier número de caracteres.

      Los dos puntos (:) se incluyen en los delimitadores porque no queremos que aparezcan en las celdas resultantes.

      Y ahora, amplía el Dividir por máscara en la sección Texto dividido escriba la máscara en el campo Introducir delimitadores y haga clic en Dividir :

      El resultado será similar a éste:

      Nota. La división de la cadena por la máscara es distingue entre mayúsculas y minúsculas Por lo tanto, asegúrese de escribir los caracteres de la máscara exactamente como aparecen en las cadenas de origen.

      Una gran ventaja de este método es la flexibilidad. Por ejemplo, si todas las cadenas originales tienen valores de fecha y hora, y quieres que aparezcan en columnas diferentes, utiliza esta máscara:

      * *ERROR:*Excepción:*

      Traducido al inglés sencillo, la máscara indica al complemento que divida las cadenas originales en 4 partes:

      • Todos los caracteres anteriores al primer espacio encontrado en la cadena (fecha)
      • Caracteres entre el primer espacio y la palabra ERROR: (tiempo)
      • Texto entre ERROR: y Excepción: (código de error)
      • Todo lo que viene después Excepción: (texto de excepción)

      Espero que te haya gustado esta forma rápida y sencilla de dividir cadenas en Excel. Si tienes curiosidad por probarlo, más abajo puedes descargarte una versión de evaluación. Te doy las gracias por leer y espero verte en nuestro blog la semana que viene.

      Descargas disponibles

      Fórmulas de división de celdas de Excel (archivo .xlsx)

      Ultimate Suite 14 días versión totalmente funcional (archivo .exe)

      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.