KutoolsforOffice — Una solución, cinco potentes herramientas.Lograr más con menos esfuerzo.Venta de marzo: 20 % de descuento

Dividir cadenas de texto por delimitador en varias filas - Trucos rápidos de 3

AutorXiaoyang Fecha de modificación

Normalmente, puede utilizar la función **Texto en columnas** para dividir el contenido de una celda en varias columnas mediante un delimitador específico, como una coma, un punto, un punto y coma, una barra, etc. Sin embargo, en ocasiones es posible que necesite dividir el contenido delimitado de una celda en varias filas, repitiendo al mismo tiempo los datos de las demás columnas, tal como se muestra en la siguiente captura de pantalla. ¿Conoce algún método eficaz para realizar esta tarea en Excel? Este tutorial le presenta algunas formas efectivas de llevarla a cabo.

dividir texto en varias filas

Vídeo: Dividir cadenas de texto por delimitador en varias filas

 


Método A: Dividir texto delimitado en varias filas mediante código VBA

En esta sección, le presento dos códigos VBA que le ayudarán a dividir el contenido de las celdas separado por un delimitador específico.

Divida el texto separado por comas, espacios, puntos y comas, etc.

Para dividir cadenas de texto separadas por un delimitador común —como una coma, un espacio, un punto y coma, una barra, etc.—, el siguiente código le será de gran ayuda. Siga estos pasos:

Nota: Este código no admite la función Deshacer; le recomendamos hacer una copia de seguridad de sus datos antes de aplicarlo.

Paso 1: Abra el editor de módulos VBA y copie el código

1. Active la hoja que desea utilizar y, a continuación, pulse las teclas «Alt» + "F11" para abrir la ventana de «Microsoft Visual Basic para Aplicaciones».

2. En la ventana abierta, haga clic en «Insertar» > «Módulo» para crear un nuevo módulo en blanco.

3. A continuación, copie y pegue el siguiente código en el módulo en blanco.

Código VBA: Dividir texto por delimitador específico (coma, punto, espacio, etc.)

Sub SplitTextIntoRows()
'UpdatebyExtendoffice
    Dim xSRg, xIptRg, xCrRg, xRg As Range
    Dim xSplitChar As String
    Dim xArr As Variant
    Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
    Dim xWSh As Worksheet
    Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSplitChar = Application.InputBox("Type delimiter:", "Kutools for Excel", , , , , , 2)
    If xSplitChar = "" Then Exit Sub
    Application.ScreenUpdating = False
    xRow = xSRg.Row
    xColumn = xSRg.Column
    Set xWSh = xSRg.Worksheet
    For xFNum = xSRg.Rows.Count To 1 Step -1
        Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
        xArr = Split(xRg, xSplitChar)
        xIndex = UBound(xArr)
        For xFFNum = LBound(xArr) To UBound(xArr)
            xRg.EntireRow.Copy
            xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
            xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
            xIndex = xIndex - 1
        Next
        xRg.EntireRow.Delete
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub   

Paso 2: Ejecute el código para obtener el resultado

1. Tras pegar el código, pulse la tecla "F5" para ejecutarlo. A continuación, aparecerá un cuadro emergente que le pedirá que seleccione las celdas con el texto delimitado que desea dividir; consulte la captura de pantalla:

código VBA para seleccionar las celdas que contienen el texto delimitado

2. Después, haga clic en «Aceptar»; aparecerá otro cuadro emergente que le pedirá que introduzca el separador que desea utilizar para dividir los datos. Aquí escribo una coma seguida de un espacio (, ); consulte la captura de pantalla:

código VBA para escribir un separador por el que dividir los datos

3. Por último, haga clic en el botón «Aceptar». A continuación, verá que las cadenas de texto seleccionadas se han dividido en filas según la coma y que los datos de las demás columnas relacionadas se han repetido, tal como se muestra en las siguientes capturas de pantalla:

las cadenas de texto seleccionadas se dividen en filas

Dividir texto separado por salto de línea

Si el contenido de sus celdas está separado por saltos de línea y desea dividirlo en varias filas, aquí tiene otro código VBA que le será de gran ayuda.

Nota: Este código no admite la función Deshacer; le recomendamos hacer una copia de seguridad de sus datos antes de aplicarlo.

Paso 1: Abra el editor de módulos VBA y copie el código

1. Pulse las teclas «Alt» + "F11" para abrir la ventana de Microsoft Visual Basic para Aplicaciones.

2. En la ventana abierta, haga clic en «Insertar» > «Módulo» para crear un nuevo módulo en blanco.

3. A continuación, copie y pegue el siguiente código en el módulo en blanco.

Código VBA: Dividir texto por salto de línea

Sub SplitTextIntoRows()
'UpdatebyExtendoffice
    Dim xSRg, xIptRg, xCrRg, xRg As Range
    Dim xSplitChar As String
    Dim xArr As Variant
    Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
    Dim xWSh As Worksheet
    Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSplitChar = Chr(10)
    Application.ScreenUpdating = False
    xRow = xSRg.Row
    xColumn = xSRg.Column
    Set xWSh = xSRg.Worksheet
    For xFNum = xSRg.Rows.Count To 1 Step -1
        Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
        xArr = Split(xRg, xSplitChar)
        xIndex = UBound(xArr)
        For xFFNum = LBound(xArr) To UBound(xArr)
            xRg.EntireRow.Copy
            xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
            xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
            xIndex = xIndex - 1
        Next
        xRg.EntireRow.Delete
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub 

Paso 2: Ejecute el código para obtener el resultado

1. Tras pegar el código, pulse la tecla "F5" para ejecutarlo. En el cuadro emergente, seleccione las celdas que desea dividir; consulte la captura de pantalla:

código VBA para seleccionar el rango que se va a dividir

2. A continuación, haga clic en el botón «Aceptar» y los datos de las celdas seleccionadas se dividirán en filas, tal como se muestra en la siguiente captura de pantalla:

los datos de las celdas seleccionadas se dividen en filas

Método B: Divida texto delimitado en varias filas en 10 segundos con Kutools para Excel

Si ha instalado «Kutools para Excel», podrá dividir cadenas de texto en varias filas mediante cualquier delimitador que especifique, gracias a su función «Dividir en varias líneas». Siga estos pasos:

Kutools para Excelofrece más de 300 funciones avanzadas para simplificar tareas complejas, potenciando la creatividad y la eficiencia.Integrado con capacidades de IA, Kutools automatiza tareas con precisión, haciendo que la gestión de datos sea sencilla.Información detallada sobre Kutools para Excel...         Prueba gratuita...

Paso 1: Seleccione la función Dividir en varias líneas

Haga clic en «Kutools» > «Combinar y dividir» > «Dividir en varias líneas»; consulte la captura de pantalla:

Haga clic en Kutools > Combinar y dividir > Dividir datos en filas

Paso 2: Especifique las celdas de datos y el delimitador para la división

En el cuadro de diálogo emergente, utilice las siguientes opciones:

  • 1). Seleccione en el cuadro de texto «Rango (una sola columna)» la lista de celdas que desea dividir.
  • 2). A continuación, elija el delimitador que separa sus datos; en este caso, seleccionaré «Otro» y escribiré una coma seguida de un espacio (, ) en el cuadro de texto.
  • 3). Por último, haga clic en el botón «Aceptar».
Especifique las celdas de datos y el delimitador para la división en el cuadro de diálogo

Ahora, las celdas seleccionadas con cadenas de texto delimitadas se han convertido en varias filas según el separador especificado; consulte la captura de pantalla:

las celdas seleccionadas se convierten en varias filas

Consejo: Si desea restaurar los datos originales, pulse simplemente Ctrl + Z para deshacer la acción.

¿Fácil de usar? Si le interesa esta función, haga clic aquí para descargarla y disfrutar de una prueba gratuita de 30 días.


Método C: Dividir texto delimitado en varias filas mediante Power Query

Si utiliza Office 365 o Excel 2016 y versiones posteriores, Power Query es una herramienta potente que le permite dividir texto delimitado en varias filas o columnas. Es especialmente útil si desea que la división de datos se actualice automáticamente cada vez que cambien los datos originales. Siga estos pasos para completar la tarea:

Paso 1: Importe la tabla de datos a Power Query

1. Seleccione el rango de datos que desea utilizar y, a continuación, haga clic en «Datos» > «Desde tabla»; consulte la captura de pantalla:

Consejo: En Excel 2019 y Office 365, haga clic en Datos > Desde tabla o rango.

haga clic en Datos > Desde tabla

2. En el cuadro de diálogo emergente «Crear tabla», haga clic en el botón «Aceptar» para crear la tabla; consulte la captura de pantalla:

haga clic en el botón Aceptar para crear una tabla

3. Ahora se muestra la ventana del «Editor de Power Query» con los datos; consulte la captura de pantalla:

se muestra la ventana del Editor de Power Query con los datos

Paso 2: Realice las transformaciones en Power Query

1. Seleccione la columna que desea dividir y, a continuación, haga clic en «Inicio» > «Dividir columna» > «Por delimitador»; consulte la captura de pantalla:

haga clic en Inicio > Dividir columna > Por delimitador

2. En el cuadro de diálogo «Dividir columna por delimitador»:

Para dividir cadenas de texto mediante coma, espacio, punto y coma, etc., proceda de la siguiente manera:

  • 1). Elija el delimitador con el que están separados sus datos en la lista desplegable «Seleccionar o introducir delimitador».
  • 2). Seleccione «Cada aparición del delimitador» en la sección «Dividir en».
  • 3). A continuación, haga clic en «Opciones avanzadas» para expandir la sección y seleccione «Filas» en «Dividir en».
  • 4). Por último, haga clic en «Aceptar» para cerrar este cuadro de diálogo.
especifique las opciones en el cuadro de diálogo para dividir el texto por coma, espacio, punto y coma, etc.

Para dividir cadenas de texto en varias filas mediante salto de línea, proceda de la siguiente manera:

  • 1). Seleccione «Personalizado» en la lista desplegable «Seleccionar o introducir delimitador».
  • 2). En la lista desplegable «Insertar caracteres especiales», haga clic en «Retorno de carro»; los caracteres «#(lf)» se insertarán automáticamente en el cuadro de texto situado bajo «Personalizado».
  • 3). Seleccione «Cada aparición del delimitador» en la sección «Dividir en».
  • 4). A continuación, haga clic en «Opciones avanzadas» para expandir la sección y seleccione «Filas» en «Dividir en».
  • 5). Por último, haga clic en «Aceptar» para cerrar este cuadro de diálogo.
especifique las opciones en el cuadro de diálogo para dividir el texto por salto de línea

3. Ahora, Seleccionar datos se ha dividido en varias filas, tal como se muestra en la siguiente captura de pantalla:

los datos seleccionados se han dividido en varias filas

Paso 3: Exporte los resultados de Power Query a una tabla de Excel

1. A continuación, exporte los datos a su hoja de cálculo. Haga clic en «Inicio» > «Cerrar y cargar» > «Cerrar y cargar» o «Cerrar y cargar en...» (en este caso, seleccionaré «Cerrar y cargar»); consulte la captura de pantalla:

haga clic en Inicio > Cerrar y cargar para cargar los datos

Consejo: Al hacer clic en **Cerrar y cargar**, los datos se exportarán a una hoja de cálculo nueva; al seleccionar **Cerrar y cargar en...**, podrá exportarlos a cualquier otra hoja que necesite.

2. Finalmente, los datos se cargarán en una hoja de cálculo nueva; consulte la captura de pantalla:

los datos se cargan en una hoja de cálculo nueva

Consejo: Si necesita actualizar con frecuencia los datos de la tabla original, no se preocupe: basta con que haga clic con el botón derecho en la tabla de resultados y seleccione «Actualizar» para obtener dinámicamente los nuevos resultados.


Artículos relacionados:

  • Dividir los valores de celda en varias columnas
  • En Excel, cuando desea dividir una lista de valores de celda en varias columnas mediante determinados delimitadores, como coma, espacio, punto, salto de línea, etc., normalmente la función integrada «Texto en columnas» puede ayudarle a realizar esta tarea paso a paso. En este artículo, le explicaré algunos trucos útiles para dividir fácil y rápidamente los valores de celda en varias columnas o filas.
  • Dividir una celda en varias filas o columnas
  • Supongamos que tiene una celda con varios contenidos separados por un carácter específico, como un punto y coma, y desea dividir esa celda en varias filas o columnas según dicho separador. ¿Conoce algún método rápido para hacerlo en Excel?
  • Dividir cadena de texto por mayúsculas y minúsculas
  • En Excel, normalmente dividimos texto mediante un ancho fijo o un delimitador con la función «Texto en columnas», pero ¿ha intentado alguna vez dividir texto según el uso de mayúsculas y minúsculas? Por ejemplo, imagine que tiene una lista de datos y necesita separarla en dos columnas según el tipo de letra: una columna con cadenas que contienen minúsculas y otra con cadenas que contienen mayúsculas, tal como se muestra en la siguiente captura de pantalla. La función «Texto en columnas» no permite realizar esta operación; sin embargo, puedo mostrarle un truco para dividir rápidamente cadenas de texto por mayúsculas y minúsculas en Excel.
  • Dividir un número en dígitos individuales
  • Supongamos que necesita descomponer o dividir un número en sus dígitos individuales, tal como se muestra en la siguiente captura de pantalla. ¿Cómo puede lograrlo? Este artículo le ofrece dos métodos.