Saltar al contenido principal

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

Normalmente, puede usar la función Texto a columna para dividir el contenido de la celda en varias columnas mediante un delimitador específico, como coma, punto, punto y coma, barra oblicua, etc. Pero, a veces, es posible que necesite dividir el contenido de la celda delimitada en varias filas y repita los datos de otras columnas como se muestra a continuación. ¿Tiene alguna buena manera de hacer frente a esta tarea en Excel? Este tutorial presentará algunos métodos efectivos para completar este trabajo en Excel.


Video: dividir cadenas de texto por delimitador en varias filas


Método A: dividir el texto delimitado en varias filas por código VBA

En esta sección, presentaré dos códigos VBA para ayudar a dividir el contenido de la celda que está separado por un determinado delimitador.

Divida el texto separado por coma, espacio, punto y coma, etc.

Para dividir las cadenas de texto que están separadas por algún delimitador normal, como coma, espacio, punto y coma, barra oblicua, etc., el siguiente código puede hacerte un favor. Siga los pasos a continuación:

 Note: este código no se SOPORTE deshacer, será mejor que haga una copia de seguridad de los datos antes de aplicar este código.

Paso 1: abre el editor de módulos de VBA y copia el código

1. Active la hoja que desea utilizar. Y luego, presione Alt + F11 teclas para abrir el Microsoft Visual Basic para aplicaciones ventana.

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

3. Luego, 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. Después de pegar el código, presione F5 clave para ejecutar este código. Luego, aparecerá un cuadro emergente para recordarle que seleccione las celdas que contienen el texto delimitado que desea dividir, vea la captura de pantalla:

2. Luego, haga clic en OK, aparece otro cuadro emergente para recordarle que escriba el separador en el que desea dividir los datos. Aquí, escribo una coma y un espacio (,), mira la captura de pantalla:

3. Por fin, haga clic en OK botón. Ahora, verá que las cadenas de texto seleccionadas se dividen en filas según la coma y otros datos de columnas relativas se repiten como se muestra a continuación:


Dividir texto separado por salto de línea

Si el contenido de su celda está separado por saltos de línea, para dividirlos en varias filas, aquí hay otro código VBA que puede ayudarlo.

 Note: este código no se SOPORTE deshacer será mejor que haga una copia de seguridad de los datos antes de aplicar este código.

Paso 1: abre el editor de módulos de VBA y copia el código

1. Prensa Alt + F11 teclas para abrir el Microsoft Visual Basic para aplicaciones ventana.

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

3. Luego, copie y pegue el siguiente código en el módulo en blanco.

Código de 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. Después de pegar el código, presione F5 clave para ejecutar este código. En el cuadro emergente, seleccione las celdas que desea dividir, vea la captura de pantalla:

2. Luego, haga clic en OK botón, los datos en las celdas seleccionadas se dividen en filas como se muestra a continuación:


Método B: 10s para dividir texto delimitado en varias filas por Kutools para Excel

Si tienes instalado Kutools for Excel, Con su Dividir datos en filas característica, puede dividir las cadenas de texto en varias filas por cualquier delimitador que haya especificado. Por favor hazlo con los siguientes pasos:

Paso 1: seleccione la función Dividir datos en filas

Haga clic Kutools > Fusionar y dividir > Dividir datos en filas, ver captura de pantalla:

Paso 2: especifique las celdas de datos y el delimitador para dividir

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

  • 1). Seleccione la lista de celdas que desea dividir de la Rango (columna única) caja de texto;
  • 2). Luego, elija el delimitador que separa sus datos, aquí elegiré Otro y escriba una coma y un espacio (, ) en el cuadro de texto;
  • 3). Por último, haz clic OK del botón.

Ahora, las celdas seleccionadas con cadenas de texto delimitadas se han convertido en varias filas según el separador específico, vea la captura de pantalla:

 Tips: Si desea restaurar los datos originales, solo necesita presionar Ctrl + Z para deshacer.

¿Fácil de usar? Interesado en esta característica, por favor haga clic para descargar para obtener una prueba gratuita durante 30 días.


Método C: dividir el texto delimitado en varias filas Power Query

Si está ejecutando Office 365 o Excel 2016 y versiones posteriores, Power Query es una poderosa herramienta que puede ayudarlo a dividir texto delimitado en varias filas o columnas. Es útil si desea que los datos divididos se actualicen cuando cambien los datos originales. Por favor, siga los siguientes pasos para terminarlo:

Paso 1: ingrese la tabla de datos Power Query

1. Seleccione el rango de datos que desea usar, luego haga clic en Datos > De la mesa, ver captura de pantalla:

 Tips: en Excel 2019 y Office 365, haga clic en Datos > Desde tabla/rango.

2. En el emergente Crear mesa cuadro de diálogo, haga clic en OK botón para crear una tabla, ver captura de pantalla:

3. Ahora el Power Query Editora se muestra una ventana con los datos, ver captura de pantalla:

Paso 2: Haz las transformaciones en Power Query

1. Seleccione la columna que desea dividir. Y luego, haga clic Inicio > Columna dividida > Por delimitador, ver captura de pantalla:

2. En el Dividir columna por delimitador caja de diálogo:

Para dividir las cadenas de texto por coma, espacio, punto y coma, etc., haga lo siguiente:

  • 1). Elija el delimitador que separa sus datos del Seleccionar o introducir delimitador la lista desplegable;
  • 2). Seleccione Cada aparición del delimitador del desplegable Dividir en sección;
  • 3). Luego, haga clic en Opciones avanzadas para expandir la sección y seleccione filas bajo el Dividido en;
  • 4). Por último, haz clic OK para cerrar este cuadro de diálogo.

Para dividir cadenas de texto en varias filas por ruptura de enlace, haga lo siguiente:

  • 1). Escoger Personalizado del desplegable Seleccionar o introducir delimitador la lista desplegable;
  • 2). Desde el Insertar caracteres especiales desplegable, haga clic en Linea de alimentación, y los personajes #(si) se insertará en el cuadro de texto debajo del Personalizado automáticamente;
  • 3). Seleccione Cada aparición del delimitador de la sección Split at;
  • 4). Luego, haga clic en Opciones avanzadas para expandir la sección y seleccione filas bajo el Dividido en;
  • 5). Por último, haz clic OK para cerrar este cuadro de diálogo.

3. Ahora, los datos seleccionados se han dividido en varias filas como se muestra a continuación:

Paso 3: salida del Power Query a una tabla de Excel

1. Y luego, debe enviar los datos a su hoja de trabajo. Por favor haz click Inicio > Cerrar y cargar > Cerrar y cargar / Cerrar y cargar a, (aquí, haré clic Cerrar y cargar), vea la captura de pantalla:

 Tips: Haga clic Cerrar y cargar enviará los datos a una nueva hoja de trabajo; Hacer clic Cerrar y cargar a opción, los datos se enviarán a cualquier otra hoja que necesite.

2. Finalmente, los datos se cargarán en una nueva hoja de trabajo, vea la captura de pantalla:

 Tips: Si necesita actualizar sus datos en la tabla original con frecuencia, no se preocupe, solo tiene que hacer clic derecho en la tabla de resultados y hacer clic en Refrescar para obtener el nuevo resultado dinámicamente.


Artículos relacionados:

  • Divida los valores de las celdas en varias columnas
  • En Excel, cuando desea dividir una lista de valores de celda en varias columnas por ciertos delimitadores, como coma, espacio, punto, nueva línea, etc., normalmente, la función incorporada Texto a columnas puede ayudarlo a terminar este paso de trabajo Por paso. En este artículo, hablaré sobre algunos buenos trucos para dividir los valores de las celdas en varias columnas o filas de manera fácil y rápida.
  • Dividir una celda en varias filas o columnas
  • Supongamos que tiene una sola celda que contiene varios contenidos separados por un carácter específico, por ejemplo, punto y coma, y ​​luego desea dividir esta celda larga en varias filas o columnas según el punto y coma, en este caso, ¿tiene alguna forma rápida resolverlo en Excel?
  • Dividir cadena de texto por mayúsculas y minúsculas
  • En Excel, generalmente dividimos el texto por ancho fijo o delimitador con la función Texto a columnas, pero ¿alguna vez ha intentado dividir el texto en mayúsculas y minúsculas? Por ejemplo, tiene una lista de datos y debe dividirlos en dos columnas según el caso: una columna contiene una cadena en minúsculas y la otra contiene una cadena en mayúsculas como se muestra a continuación. La función Text to Columns no admite esta operación, sin embargo, puedo introducir trucos para dividir rápidamente cadenas de texto por caso en Excel.
  • Dividir el número en dígitos individuales
  • Suponiendo que necesita dividir o dividir el número en dígitos individuales como se muestra a continuación, ¿qué puede hacer para lograrlo? Este artículo le proporcionará dos métodos.
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations