Excel: разделяем слипшийся текст

Случается, что содержание одного столбца нужно разбить на несколько. Например:

  • слишком обширное описание товара (а нужно, чтоб наименование, характеристики и актуальное наличие были разбиты);
  • полный адрес в одном столбце (а нужно, чтоб индекс, область, район и прочие данные были разбиты);
  • ФИО в одном столбце (а нужно – в отдельных).

Какая бы ситуация ни сложилась у вас, есть несколько способов разделить слипшийся текст.

Задача №1: Разбить текст по столбцам

Решение: Выделите нужные ячейки, перейдите в меню ДанныеТекст по столбцам.

В появившемся окне Мастер текстов (разбора) укажите формат данных:

  • с разделителями – в случае, когда содержимое будущих отдельных столбцов разделяется каким-либо символом (укажите, каким именно).

В случае, если в строках есть нагромождения пробелов, стоит поставить галочку «Считать последовательные разделители одним». Ограничитель строк пригодится вам, если в ячейках есть сочетания, которые не нужно делить (например, название завода изготовителя, заключенное в кавычки, и т.д.).

  • фиксированной ширины – если вы хотите задать произвольную ширину столбца:

Перейдя к третьему шагу, вы должны назначить столбцам подходящий формат:

  • Общий – самый универсальный, сохранит данные в исходном виде.
  • Дата – для столбцов, где указан день-месяц-год (порядок значений вы также выберете самостоятельно).
  • Текстовый – незаменим для ячеек с числовыми данными, которые Excel должен воспринимать как текст. Пример: если столбцу с номерами банковских счетов не назначить текстовый формат, цифры округлятся до 15-ти символов – офис распознает их как числа.

Задача №2: Выборочно выдернуть слова из текста

Для того чтобы сделать это автоматически, воспользуйтесь редактором Visual Basic (вызов горячими клавишами Alt+F11): откройте новый модуль (Insert  Module) и вставьте следующий текст функции:

Function Substring(Txt, Delimiter, n) As String

Dim x As Variant

x = Split(Txt, Delimiter)

If n > 0 And n — 1 <= UBound(x) Then

Substring = x(n — 1)

Else

Substring = «»

End If

End Function

Далее идем в меню Формулы → Вставить функцию, выбираем категорию «Определенные пользователем», применяем синтаксис =SUBSTRING и указываем значения:

  • Txt – адрес ячейки с нужным текстом.
  • Delimeter – разделяющий знак (запятая, тире, пробел и т.д.).
  • N – порядковый номер фрагмента, который нужно «выдернуть».

Задача №3: Разделить текст без пробелов

Если о знаках-разделителях речи даже не идет – то есть текст абсолютно слипшийся (например, ФИО «ПетровскийАндрейИванович»), используйте следующую макрофункцию:

Function CutWords(Txt As Range) As String

Dim Out$

If Len(Txt) = 0 Then Exit Function

Out = Mid(Txt, 1, 1)

For i = 2 To Len(Txt)

If Mid(Txt, i, 1) Like «[a-zа-я]» And Mid(Txt, i + 1, 1) Like «[A-ZА-Я]» Then

Out = Out & Mid(Txt, i, 1) & » »

Else

Out = Out & Mid(Txt, i, 1)

End If

Next i

CutWords = Out

End Function

CutWords аналогично добавляется в редактор Visual Basic, потом выбирается среди функций, определенных пользователем, и автоматически расставляет пробелы перед заглавными буквами.

Читайте нас дальше, чтобы работа с Excel давалась ещё легче.

Пролистать наверх