Прескочи на основното съдържание

Разделяне на текстови низове чрез разделител на няколко реда - 3 бързи трика

Автор: Xiaoyang Последна промяна: 2023-06-08

Обикновено можете да използвате функцията „Текст в колона“, за да разделите съдържанието на клетките на множество колони чрез специфичен разделител, като запетая, точка, точка и запетая, наклонена черта и т.н. Но понякога може да се наложи да разделите съдържанието на клетките с разделители на множество редове и повторете данните от други колони, както е показано на екранната снимка по-долу. Имате ли добри начини за справяне с тази задача в Excel? Този урок ще представи някои ефективни методи за завършване на тази работа в Excel.


Видео: Разделяне на текстови низове чрез разделител на множество редове


Метод A: Разделяне на разделен текст на множество редове чрез VBA код

В този раздел ще представя два VBA кода, които да помогнат за разделянето на съдържанието на клетките, които са разделени с определен разделител.

Разделен текст, разделен със запетая, интервал, точка и запетая и т.н.

За да разделите текстовите низове, които са разделени с нормален разделител, като запетая, интервал, точка и запетая, наклонена черта и т.н., следният код може да ви направи услуга. Моля, следвайте стъпките по-долу:

 Забележка: Този код не подкрепа Премахвам, по-добре архивирайте данните, преди да приложите този код.

Стъпка 1: Отворете редактора на VBA модул и копирайте кода

1. Активирайте листа, който искате да използвате. И след това натиснете Alt + F11 за да отворите Microsoft Visual Basic за приложения прозорец.

2. В отворения прозорец щракнете Поставете > Модули за създаване на нов празен модул.

3. След това копирайте и поставете кода по-долу в празния модул.

VBA код: Разделяне на текст чрез конкретен разделител (запетая, точка, интервал и т.н.)

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   

Стъпка 2: Изпълнете кода, за да получите резултата

1. След като поставите кода, моля, натиснете F5 ключ за изпълнение на този код. След това ще изскочи поле за подкана, за да ви напомни да изберете клетките, съдържащи текста с граници, който искате да разделите, вижте екранната снимка:

2. След това щракнете OK, друго поле за подкана се появява, за да ви напомни да въведете разделителя, въз основа на който искате да разделите данните. Тук въвеждам запетая и интервал (,), вижте екранната снимка:

3. Най-накрая щракнете OK бутон. Сега ще видите, че избраните текстови низове са разделени на редове въз основа на запетаята, а данните в други относителни колони се повтарят, както е показано на екранните снимки по-долу:


Разделен текст, разделен с нов ред

Ако съдържанието на вашите клетки е разделено с нови редове, за да ги разделите на няколко реда, ето друг VBA код, който може да ви помогне.

 Забележка: Този код не подкрепа Премахвам по-добре архивирайте данните, преди да приложите този код.

Стъпка 1: Отворете редактора на VBA модул и копирайте кода

1. Натиснете Alt + F11 за да отворите Microsoft Visual Basic за приложения прозорец.

2. В отворения прозорец щракнете Поставете > Модули за създаване на нов празен модул.

3. След това копирайте и поставете кода по-долу в празния модул.

VBA код: Разделяне на текст чрез прекъсване на ред

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 

Стъпка 2: Изпълнете кода, за да получите резултата

1. След като поставите кода, моля, натиснете F5 ключ за изпълнение на този код. В изскачащото поле, моля, изберете клетките, които искате да разделите, вижте екранната снимка:

2. След това щракнете OK бутон, данните в избраните клетки се разделят на редове, както е показано на екранната снимка по-долу:


Метод B: 10 секунди за разделяне на разделен текст на множество редове от Kutools за Excel

Ако сте инсталирали Kutools за Excel, Със своята Разделете данните на редове функция, можете да разделите текстовите низове на няколко реда чрез произволен разделител, който сте посочили. Моля, направете следните стъпки:

Стъпка 1: Изберете функцията Разделяне на данни към редове

Кликнете Kutools > Обединяване и разделяне > Разделете данните на редове, вижте екранна снимка:

Стъпка 2: Посочете клетките с данни и разделителя за разделяне

В изскачащия диалогов прозорец използвайте следните опции:

  • 1). Изберете списъка с клетки, които искате да разделите от Диапазон (единична колона) текстово поле;
  • 2). След това изберете разделителя, който разделя вашите данни, тук аз ще избера Други и въведете запетая и интервал (, ) в текстовото поле;
  • 3). Най-накрая щракнете OK бутон.

Сега избраните клетки с разделени текстови низове са преобразувани в множество редове въз основа на конкретния разделител, вижте екранната снимка:

 Съвети: Ако искате да възстановите оригиналните данни, просто трябва да натиснете Ctrl + Z за отмяна.

Лесен за използване? Интересувате се от тази функция, моля щракнете, за да изтеглите, за да получите безплатен пробен период за 30 дни.


Метод C: Разделяне на разделен текст на множество редове по Power Query

Ако използвате Office 365 или Excel 2016 и по-нови версии, Power Query е мощен инструмент, който може да ви помогне да разделите разделен текст на множество редове или колони. Полезно е, ако искате разделените данни да се обновяват, когато оригиналните ви данни се променят. Моля, изпълнете следните стъпки, за да го завършите:

Стъпка 1: Вкарайте таблицата с данни Power Query

1. Изберете диапазона от данни, който искате да използвате, след което щракнете Дата > От таблица, вижте екранна снимка:

 Съвети: В Excel 2019 и Office 365 щракнете Дата > От таблица/обхват.

2. В изскочилото Създаване на таблица кликнете върху OK бутон за създаване на таблица, вижте екранната снимка:

3. Сега, Power Query Редактор се показва прозорец с данните, вижте екранната снимка:

Стъпка 2: Направете трансформациите Power Query

1. Изберете колоната, която искате да разделите. И след това щракнете Начало > Разделена колона > Чрез разделител, вижте екранна снимка:

2. В Разделяне на колона по разделител диалогов прозорец:

За да разделите текстовите низове със запетая, интервал, точка и запетая и т.н., моля, направете следното:

  • 1). Изберете разделителя, с който вашите данни са разделени от Изберете или въведете разделител падащ списък;
  • 2). Изберете Всяко появяване на разделителя от Разделяне на раздел;
  • 3). След това щракнете Разширени опции за разгъване на раздела и изберете Редове под Разделяне на;
  • 4). Най-накрая щракнете OK за да затворите този диалогов прозорец.

За да разделите текстови низове на няколко реда чрез прекъсване на връзка, моля, направете следното:

  • 1). Избирам Custom от Изберете или въведете разделител падащ списък;
  • 2). От Вмъкване на специални знаци падащо меню, щракнете Подаване на линия, и героите #(ако) ще бъде вмъкнато в текстовото поле под Custom автоматично;
  • 3). Изберете Всяко появяване на разделителя от раздел Сплит при;
  • 4). След това щракнете Разширени опции за разгъване на раздела и изберете Редове под Разделяне на;
  • 5). Най-накрая щракнете OK за да затворите този диалогов прозорец.

3. Сега избраните данни са разделени на няколко реда, както е показано на екранната снимка по-долу:

Стъпка 3: Изведете Power Query към таблица на Excel

1. След това трябва да изведете данните в работния си лист. Моля щракнете Начало > Затваряне и зареждане > Затваряне и зареждане / Затвори и зареди в, (тук, ще щракна Затваряне и зареждане), вижте екранна снимка:

 Съвети: Щракнете Затваряне и зареждане ще изведе данните в нов работен лист; Кликнете Затвори и зареди в опция, данните ще бъдат изведени на всеки друг лист, от който се нуждаете.

2. Накрая данните ще бъдат заредени в нов работен лист, вижте екранната снимка:

 Съвети: Ако трябва често да актуализирате данните си в оригиналната таблица, моля, не се притеснявайте, просто трябва да щракнете с десния бутон върху таблицата с резултати и да щракнете върху Обновяване за да получите новия резултат динамично.


Свързани членове:

  • Разделете стойностите на клетките в няколко колони
  • В Excel, когато искате да разделите списък със стойности на клетки в множество колони чрез определени разделители, като запетая, интервал, точка, нов ред и т.н., обикновено вградената функция за текст към колони може да ви помогне да завършите тази стъпка на работа по стъпка. В тази статия ще говоря за някои добри трикове за лесно и бързо разделяне на стойностите на клетките в множество колони или редове.
  • Разделете клетка на множество редове или колони
  • Да предположим, че имате една клетка, която съдържа множество съдържания, разделени със специфичен знак, например точка и запетая, и след това искате да разделите тази дълга клетка на множество редове или колони въз основа на точка и запетая, в този случай имате ли някакви бързи начини да го реша в Excel?
  • Разделяне на текстов низ по регистър
  • В Excel обикновено разделяме текст по фиксирана ширина или разделител с функцията Text to Columns, но опитвали ли сте някога да разделяте текст с главни и малки букви? Например, имате списък с данни и трябва да ги разделите на две колони въз основа на случая: едната колона съдържа низ с малки букви, а другата съдържа низ с главни букви, както е показано на екранната снимка по-долу. Функцията Text to Columns не поддържа тази операция, но мога да въведа трикове за бързо разделяне на текстов низ по регистър в Excel.
  • Разделете числото на отделни цифри
  • Да предположим, че трябва да разбиете или разделите числото на отделни цифри, както е показано на екранната снимка по-долу, какво можете да направите, за да го постигнете? Тази статия ще ви предостави два метода.
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