KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

Разделение текстовых строк по разделителю на несколько строк — 3 Быстрые советы

АвторСяоянДата изменения

Обычно вы можете использовать функцию «Текст по столбцам» для разделения содержимого ячеек на несколько столбцов по определённому разделителю, например запятой, точке, точке с запятой, косой черте и т.д. Однако иногда может потребоваться разделить содержимое ячеек с разделителями на несколько строк и продублировать данные из других столбцов, как показано на скриншоте ниже. Есть ли у вас эффективные способы выполнения этой задачи в Excel? В этом руководстве представлены некоторые эффективные методы для её решения в Excel.

разделить текст на несколько строк

Видео: Разделение текстовых строк по разделителю на несколько строк

 


Метод A: Разделение текста с разделителями на несколько строк с помощью кода VBA

В этом разделе я представлю два кода VBA, которые помогут вам разделить содержимое ячеек по заданному разделителю.

Разделение текста по запятым, пробелам, точкам с запятой и другим разделителям

Чтобы разделить текстовые строки, разделённые стандартными разделителями (например, запятой, точкой, пробелом, точкой с запятой, косой чертой и т.д.), воспользуйтесь приведённым ниже кодом. Выполните следующие шаги:

Примечание: этот код не поддерживает отмену действия, поэтому перед его применением настоятельно рекомендуется создать резервную копию данных.

Шаг 1: Откройте редактор модулей VBA и скопируйте код

1. Активируйте нужный лист, затем нажмите «Alt» + «F11», чтобы открыть окно Microsoft Visual Basic for Applications.

2. В открывшемся окне выберите «Insert» > «Module», чтобы создать новый пустой модуль.

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» для его запуска. Появится диалоговое окно с запросом на выбор ячеек, содержащих текст с разделителями, который требуется разбить (см. скриншот):

код VBA для выбора ячеек, содержащих текст с разделителями

2. Затем нажмите «OK». Появится ещё одно диалоговое окно с запросом на ввод разделителя для разбивки данных. Здесь я указываю запятую и пробел (, ) (см. скриншот):

код VBA для ввода разделителя, по которому следует разбить данные

3. Наконец, нажмите кнопку «OK». Теперь выбранные текстовые строки будут разделены по запятым на отдельные строки, а данные из соответствующих столбцов — продублированы, как показано на скриншотах ниже:

выбранные текстовые строки разделены на строки

Разделение текста, разделённого переносами строк

Если содержимое ваших ячеек разделено переносами строк, вы можете использовать другой код VBA, чтобы разбить его на несколько строк.

Примечание: этот код не поддерживает отмену действия, поэтому настоятельно рекомендуется создать резервную копию данных перед его применением.

Шаг 1: Откройте редактор модулей VBA и скопируйте код

1. Нажмите клавиши «Alt» + «F11», чтобы открыть окно Microsoft Visual Basic for Applications.

2. В открывшемся окне выберите «Insert» > «Module», чтобы создать новый пустой модуль.

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» для запуска. В появившемся окне выберите ячейки, которые нужно разделить (см. скриншот):

код VBA для выбора диапазона, который необходимо разделить

2. Затем нажмите кнопку «OK» — данные в выбранных ячейках будут разделены на строки, как показано на скриншоте ниже:

данные в выбранных ячейках разделены на строки

Метод B: Разделение текста с разделителями на несколько строк за 10 секунд с помощью Kutools для Excel

Если у вас установлен «Kutools для Excel», воспользуйтесь функцией «Разделить на несколько строк», чтобы разбить текстовые строки на несколько строк по любому указанному вами разделителю. Выполните следующие шаги:

Kutools для Excelпредлагает более 300 расширенных функций для автоматизации сложных задач, повышая креативность и эффективность.Интегрирован с возможностями ИИ, Kutools автоматизирует задачи с высокой точностью, делая управление данными простым и удобным.Подробная информация о Kutools для Excel…         Бесплатная пробная версия…

Шаг 1: Выберите функцию Разделить на несколько строк

Нажмите «Kutools» > «Merge & Split» > «Разделить на несколько строк» (см. скриншот):

Нажмите Kutools > Объединить и разделить > Разделить данные по строкам

Шаг 2: Укажите ячейки с данными и разделитель для разделения

В появившемся диалоговом окне используйте следующие параметры:

  • 1). Выберите список ячеек, которые нужно разделить, в поле «Диапазон (один столбец)».
  • 2). Затем выберите разделитель, с помощью которого разделены ваши данные; здесь я выберу «Другой» и введу запятую с пробелом (, ) в текстовое поле;
  • 3). Наконец, нажмите кнопку «OK».
Укажите ячейки с данными и разделитель для разбиения в диалоговом окне

Теперь выбранные ячейки с текстовыми строками, содержащими разделители, разбиты на несколько строк согласно указанному разделителю (см. скриншот):

выбранные ячейки преобразованы в несколько строк

Совет: чтобы восстановить исходные данные, просто нажмите Ctrl + Z и отмените последнее действие.

Удобно в использовании? Заинтересовались этой функцией? Тогда нажмите, чтобы скачать бесплатную пробную версию на 30 дней.


Метод C: Разделение текста с разделителями на несколько строк с помощью Power Query

Если вы используете Office 365 или Excel 2016 и более поздние версии, Power Query станет вашим мощным помощником для разделения текста с разделителями на несколько строк или столбцов. Этот инструмент особенно ценен, если вам важно, чтобы разделённые данные автоматически обновлялись при изменении исходной информации. Выполните следующие шаги:

Шаг 1: Импортируйте таблицу данных в Power Query

1. Выделите диапазон данных, который вы хотите использовать, и нажмите «Data» > «From Table» (см. скриншот):

Совет: В Excel 2019 и Office 365 выберите «Данные» > «Из таблицы/диапазона».

нажмите Данные > Из таблицы

2. В появившемся диалоговом окне «Create Table» нажмите кнопку «OK», чтобы создать таблицу (см. скриншот):

нажмите кнопку OK, чтобы создать таблицу

3. Теперь откроется окно «Power Query Editor» с вашими данными (см. скриншот):

отображается окно редактора Power Query с данными

Шаг 2: Выполните преобразования в Power Query

1. Выделите столбец, который нужно разделить, и нажмите «Home» > «Split Column» > «By Delimiter» (см. скриншот):

нажмите Главная > Разделить столбец > По разделителю

2. В диалоговом окне «Разделить столбец по разделителю»:

Чтобы разделить текстовые строки по запятой, пробелу, точке с запятой и т.д., выполните следующие действия:

  • 1). Выберите разделитель, которым разделены ваши данные, из раскрывающегося списка «Выберите или введите разделитель».
  • 2). В разделе «Разделить в» выберите «Каждое вхождение разделителя»;
  • 3). Затем нажмите «Дополнительные параметры», чтобы развернуть раздел, и в пункте «Разделить на» выберите «Строки».
  • 4). Наконец, нажмите «OK», чтобы закрыть это диалоговое окно.
укажите параметры в диалоговом окне для разделения текста по запятой, пробелу, точке с запятой и т.д.

Чтобы разделить текстовые строки на несколько строк по переносу строки, выполните следующие действия:

  • 1). Выберите «Пользовательский» в раскрывающемся списке «Выберите или введите разделитель»;
  • 2). В раскрывающемся списке «Вставить специальные символы» выберите «Перевод строки» — символы «#(lf)» автоматически появятся в текстовом поле под пунктом «Пользовательский».
  • 3). В разделе «Разделить в» выберите «Каждое вхождение разделителя»;
  • 4). Затем нажмите «Дополнительные параметры», чтобы развернуть раздел, и выберите «Rows» в поле «Split into».
  • 5). Наконец, нажмите «OK», чтобы закрыть это диалоговое окно.
укажите параметры в диалоговом окне для разделения текста по символу перевода строки

3. Теперь «Выбрать данные» разделён на несколько строк, как показано на скриншоте ниже:

выбранные данные разделены на несколько строк

Шаг 3: Выведите результат Power Query в таблицу Excel

1. Затем выведите данные на лист: нажмите «Home» > «Close & Load» > «Close & Load / Close & Load To» (в данном случае выбрано «Close & Load») (см. скриншот).

нажмите Главная > Закрыть и загрузить, чтобы загрузить данные

Совет: при выборе «Close & Load» данные загружаются на новый лист, а при выборе «Close & Load To» — на любой другой лист по вашему усмотрению.

2. В итоге данные будут загружены на новый лист (см. скриншот):

данные загружены на новый лист

Совет: если вам часто приходится обновлять данные в исходной таблице, не переживайте — просто щёлкните правой кнопкой мыши по итоговой таблице и выберите «Refresh», чтобы мгновенно получить актуальные результаты.


Связанные статьи:

  • Разделение значений ячеек на несколько столбцов
  • В Excel, когда нужно разделить список значений из ячеек на несколько столбцов с помощью определённых разделителей — таких как запятая, пробел, точка, перенос строки и т.д., — на помощь приходит встроенная функция «Текст по столбцам», которая позволяет выполнить эту задачу шаг за шагом. В этой статье я поделюсь несколькими эффективными приёмами, которые помогут вам легко и быстро разбить содержимое ячеек на отдельные столбцы или строки.
  • Разделение ячейки на несколько строк или столбцов
  • Предположим, у вас есть одна ячейка, содержащая несколько элементов, разделённых определённым символом, например точкой с запятой, и вы хотите разделить эту длинную ячейку на несколько строк или столбцов на основе этого символа. Есть ли в Excel быстрые способы решения такой задачи?
  • Разделение текстовой строки по регистру букв
  • В Excel текст обычно разделяют с помощью функции «Текст по столбцам», выбирая либо фиксированную ширину, либо разделитель. Но пробовали ли вы когда-нибудь разделять текст по регистру — на заглавные и строчные буквы? Представьте, что у вас есть список данных, который нужно разделить на два столбца: один — со строками, содержащими только строчные буквы, а другой — со строками, содержащими только заглавные, как показано на рисунке ниже. К сожалению, стандартная функция «Текст по столбцам» не поддерживает такой вариант. Однако я покажу вам простой приём, который позволит быстро разделить текстовую строку по регистру в Excel.