В некоторых случаях вам может потребоваться разделить значения выбранных ячеек, разделенных запятыми, на строки или столбцы. Здесь мы познакомим вас с тремя способами детального решения этой проблемы.
Разделить значения, разделенные запятыми, на столбцы с помощью функции Text to Columns
Разделить значения, разделенные запятыми, на строки с кодом VBA
Быстро разделяйте значения, разделенные запятыми, на строки или столбцы с Kutools for Excel
Разделить значения, разделенные запятыми, на столбцы с помощью функции Text to Columns
Вы можете применить функцию «Текст в столбцы» для разделения значений выбранных ячеек, разделенных запятыми, на столбцы. Пожалуйста, сделайте следующее.
1. Выберите диапазон ячеек, значения которого вы хотите разделить на столбцы, а затем щелкните Данные > Текст в столбцы. Смотрите скриншот:
2. В первом Мастер преобразования текста в столбцы в диалоговом окне выберите разграниченный вариант, а затем щелкните Download кнопку.
3. В секунду Мастер преобразования текста в столбцы диалоговое окно, только отметьте Запятая коробка в Разделители и нажмите Download кнопку.
4. В последний Мастер преобразования текста в столбцы диалоговом окне выберите ячейку для размещения значений разделения в Направление поле и, наконец, щелкните Завершить кнопка. Смотрите скриншот:
Теперь все значения в выбранных ячейках, которые были разделены запятыми, разделены на разные столбцы, как показано ниже.
Как правило, Текст в столбцы функция только разбивает ячейки на отдельные столбцы, если вы хотите разбить ячейки на строки, как вы можете это сделать?
Здесь Kutools for Excel‘s Разделить клетки Утилита может помочь вам быстро разделить ячейки по пробелу, запятой, новой строке, другим разделителям или определенной ширине не только на отдельные строки, но и на столбцы в Excel. Скачать Kutools for Excel сейчас! (30— дневная бесплатная трасса)
Разделить значения, разделенные запятыми, на строки с кодом VBA
Для разделения значений, разделенных запятыми, на строки можно применить следующий код VBA.
1. нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем скопируйте и вставьте приведенный ниже код VBA в окно модуля.
Код VBA: разделить значения, разделенные запятыми, на строки
Sub SplitAll()
Dim xRg As Range
Dim xRg1 As Range
Dim xCell As Range
Dim I As Long
Dim xAddress As String
Dim xUpdate As Boolean
Dim xRet As Variant
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select a range", "Kutools for Excel", xAddress, , , , , 8)
Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
If xRg Is Nothing Then Exit Sub
If xRg.Columns.Count > 1 Then
MsgBox "You can't select multiple columns", , "Kutools for Excel"
Exit Sub
End If
Set xRg1 = Application.InputBox("Split to (single cell):", "Kutools for Excel", , , , , , 8)
Set xRg1 = xRg1.Range("A1")
If xRg1 Is Nothing Then Exit Sub
xUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
For Each xCell In xRg
xRet = Split(xCell.Value, ",")
xRg1.Worksheet.Range(xRg1.Offset(I, 0), xRg1.Offset(I + UBound(xRet, 1), 0)) = Application.WorksheetFunction.Transpose(xRet)
I = I + UBound(xRet, 1) + 1
Next
Application.ScreenUpdating = xUpdate
End Sub
3. нажмите F5 ключ для запуска кода. В всплывающем Kutools for Excel диалоговом окне выберите ячейки, которые хотите разделить, а затем щелкните значок OK кнопку.
4. Во втором выскакивающем Kutools for Excel диалоговом окне выберите ячейку для размещения значений разделения, затем щелкните OK.
Затем вы можете увидеть, что значения, разделенные запятыми, в выбранных ячейках разделены на строки, как показано ниже.
Быстро разделяйте значения, разделенные запятыми, на строки или столбцы с Kutools for Excel
The Разделить клетки полезности Kutools for Excel может помочь вам легко разделить значения, разделенные запятыми, на строки или столбцы.
1. Выберите ячейки, которые необходимо разделить, и нажмите Кутулс > Слияние и разделение > Разделить клетки. Смотрите скриншот:
2. в Разделить клетки диалоговое окно, выберите Разделить на строки or Разделить на столбцы в Тип раздел как вам нужно. И в Укажите разделитель выберите Другое вариант, введите символ запятой в текстовое поле, а затем щелкните OK кнопка. Смотрите скриншот:
3. И затем появится другое окно с подсказкой, чтобы напомнить вам выбрать ячейку для вывода результата, см. Снимок экрана:
4. Нажмите OK кнопку, вы можете увидеть результаты, как показано на скриншотах ниже.
Разделить на столбцы
Разделить на строки
Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Демонстрация: быстрое разделение значений, разделенных запятыми, на строки или столбцы с помощью Kutools for Excel
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Skip to content
В руководстве объясняется, как разделить ячейки в Excel с помощью формул и стандартных инструментов. Вы узнаете, как разделить текст запятой, пробелом или любым другим разделителем, а также как разбить строки на текст и числа.
Разделение текста из одной ячейки на несколько — это задача, с которой время от времени сталкиваются все пользователи Excel. В одной из наших предыдущих статей мы обсуждали, как разделить ячейки в Excel с помощью функции «Текст по столбцам» и «Мгновенное заполнение». Сегодня мы подробно рассмотрим, как можно разделить текст по ячейкам с помощью формул.
Чтобы разбить текст в Excel, вы обычно используете функции ЛЕВСИМВ (LEFT), ПРАВСИМВ (RIGHT) или ПСТР (MID) в сочетании с НАЙТИ (FIND) или ПОИСК (SEARCH). На первый взгляд, некоторые рассмотренные ниже приёмы могут показаться сложными. Но на самом деле логика довольно проста, и следующие примеры помогут вам разобраться.
Для преобразования текста в ячейках в Excel ключевым моментом является определение положения разделителя в нем. Что может быть таким разделителем? Это запятая, точка с запятой, наклонная черта, двоеточие, тире, восклицательный знак и т.п. И, как мы далее увидим, даже целое слово.
- Как распределить ФИО по столбцам
- Как использовать разделители в тексте
- Разделяем текст по переносам строки
- Как разделить длинный текст на множество столбцов
- Как разбить «текст + число» по разным ячейкам
- Как разбить ячейку вида «число + текст»
- Разделение ячейки по маске (шаблону)
- Использование инструмента Split Text
В зависимости от вашей задачи эту проблему можно решить с помощью функции ПОИСК (без учета регистра букв) или НАЙТИ (с учетом регистра).
Как только вы определите позицию разделителя, используйте функцию ЛЕВСИМВ, ПРАВСИМВ и ПСТР, чтобы извлечь соответствующую часть содержимого.
Для лучшего понимания пошагово рассмотрим несколько примеров.
Делим текст вида ФИО по столбцам.
Если выяснение загадочных поворотов формул Excel — не ваше любимое занятие, вам может понравиться визуальный метод разделения ячеек, который демонстрируется ниже.
В столбце A нашей таблицы записаны Фамилии, имена и отчества сотрудников. Необходимо разделить их на 3 столбца.
Можно сделать это при помощи инструмента «Текст по столбцам». Об этом методе мы достаточно подробно рассказывали, когда рассматривали, как можно разделить ячейку по столбцам.
Кратко напомним:
На ленте «Данные» выбираем «Текст по столбцам» — с разделителями.
Далее в качестве разделителя выбираем пробел.
Обращаем внимание на то, как разделены наши данные в окне образца.
В следующем окне определяем формат данных. По умолчанию там будет «Общий». Он нас вполне устраивает, поэтому оставляем как есть. Выбираем левую верхнюю ячейку диапазона, в который будет помещен наш разделенный текст. Если нужно оставить в неприкосновенности исходные данные, лучше выбрать B1, к примеру.
В итоге имеем следующую картину:
При желании можно дать заголовки новым столбцам B,C,D.
А теперь давайте тот же результат получим при помощи формул.
Для многих это удобнее. В том числе и по той причине, что если в таблице появятся новые данные, которые нужно разделить, то нет необходимости повторять всю процедуру с начала, а просто нужно скопировать уже имеющиеся формулы.
Итак, чтобы выделить из нашего ФИО фамилию, будем использовать выражение
=ЛЕВСИМВ(A2; ПОИСК(» «;A2;1)-1)
В качестве разделителя мы используем пробел. Функция ПОИСК указывает нам, в какой позиции находится первый пробел. А затем именно это количество букв (за минусом 1, чтобы не извлекать сам пробел) мы «отрезаем» слева от нашего ФИО при помощи ЛЕВСИМВ.
Далее будет чуть сложнее.
Нужно извлечь второе слово, то есть имя. Чтобы вырезать кусочек из середины, используем функцию ПСТР.
=ПСТР(A2; ПОИСК(» «;A2) + 1; ПОИСК(» «;A2;ПОИСК(» «;A2)+1) — ПОИСК(» «;A2) — 1)
Как вы, наверное, знаете, функция Excel ПСТР имеет следующий синтаксис:
ПСТР (текст; начальная_позиция; количество_знаков)
Текст извлекается из ячейки A2, а два других аргумента вычисляются с использованием 4 различных функций ПОИСК:
- Начальная позиция — это позиция первого пробела плюс 1:
ПОИСК(» «;A2) + 1
- Количество знаков для извлечения: разница между положением 2- го и 1- го пробелов, минус 1:
ПОИСК(» «;A2;ПОИСК(» «;A2)+1) — ПОИСК(» «;A2) – 1
В итоге имя у нас теперь находится в C.
Осталось отчество. Для него используем выражение:
=ПРАВСИМВ(A2;ДЛСТР(A2) — ПОИСК(» «; A2; ПОИСК(» «; A2) + 1))
В этой формуле функция ДЛСТР (LEN) возвращает общую длину строки, из которой вы вычитаете позицию 2- го пробела. Получаем количество символов после 2- го пробела, и функция ПРАВСИМВ их и извлекает.
Вот результат нашей работы по разделению фамилии, имени и отчества из одной по отдельным ячейкам.
Распределение текста с разделителями на 3 столбца.
Предположим, у вас есть список одежды вида Наименование-Цвет-Размер, и вы хотите разделить его на 3 отдельных части. Здесь разделитель слов – дефис. С ним и будем работать.
- Чтобы извлечь Наименование товара (все символы до 1-го дефиса), вставьте следующее выражение в B2, а затем скопируйте его вниз по столбцу:
=ЛЕВСИМВ(A2; ПОИСК(«-«;A2;1)-1)
Здесь функция мы сначала определяем позицию первого дефиса («-«) в строке, а ЛЕВСИМВ извлекает все нужные символы начиная с этой позиции. Вы вычитаете 1 из позиции дефиса, потому что вы не хотите извлекать сам дефис.
- Чтобы извлечь цвет (это все буквы между 1-м и 2-м дефисами), запишите в C2, а затем скопируйте ниже:
=ПСТР(A2; ПОИСК(«-«;A2) + 1; ПОИСК(«-«;A2;ПОИСК(«-«;A2)+1) — ПОИСК(«-«;A2) — 1)
Логику работы ПСТР мы рассмотрели чуть выше.
- Чтобы извлечь размер (все символы после 3-го дефиса), введите следующее выражение в D2:
=ПРАВСИМВ(A2;ДЛСТР(A2) — ПОИСК(«-«; A2; ПОИСК(«-«; A2) + 1))
Аналогичным образом вы можете в Excel разделить содержимое ячейки в разные ячейки любым другим разделителем. Все, что вам нужно сделать, это заменить «-» на требуемый символ, например пробел (« »), косую черту («/»), двоеточие («:»), точку с запятой («;») и т. д.
Примечание. В приведенных выше формулах +1 и -1 соответствуют количеству знаков в разделителе. В нашем примере это дефис (то есть, 1 знак). Если ваш разделитель состоит из двух знаков, например, запятой и пробела, тогда укажите только запятую («,») в ваших выражениях и используйте +2 и -2 вместо +1 и -1.
Как разбить текст по переносам строки.
Чтобы разделить слова в ячейке по переносам строки, используйте подходы, аналогичные тем, которые были продемонстрированы в предыдущем примере. Единственное отличие состоит в том, что вам понадобится функция СИМВОЛ (CHAR) для передачи символа разрыва строки, поскольку вы не можете ввести его непосредственно в формулу с клавиатуры.
Предположим, ячейки, которые вы хотите разделить, выглядят примерно так:
Напомню, что перенести таким вот образом текст внутри ячейки можно при помощи комбинации клавиш ALT + ENTER.
Возьмите инструкции из предыдущего примера и замените дефис («-») на СИМВОЛ(10), где 10 — это код ASCII для перевода строки.
Чтобы извлечь наименование товара:
=ЛЕВСИМВ(A2; ПОИСК(СИМВОЛ(10);A2;1)-1)
Цвет:
=ПСТР(A2; ПОИСК(СИМВОЛ(10);A2) + 1; ПОИСК(СИМВОЛ(10);A2; ПОИСК(СИМВОЛ(10);A2)+1) — ПОИСК(СИМВОЛ(10);A2) — 1)
Размер:
=ПРАВСИМВ(A2;ДЛСТР(A2) — ПОИСК(СИМВОЛ(10); A2; ПОИСК(СИМВОЛ(10); A2) + 1))
Результат вы видите на скриншоте выше.
Таким же образом можно работать и с любым другим символом-разделителем. Достаточно знать его код.
Как распределить текст с разделителями на множество столбцов.
Изучив представленные выше примеры, у многих из вас, думаю, возник вопрос: «А что, если у меня не 3 слова, а больше? Если нужно разбить текст в ячейке на 5 столбцов?»
Если действовать методами, описанными выше, то формулы будут просто мега-сложными. Вероятность ошибки при их использовании очень велика. Поэтому мы применим другой метод.
Имеем список наименований одежды с различными признаками, перечисленными через дефис. Как видите, таких признаков у нас может быть от 2 до 6. Делим текст в наших ячейках на 6 столбцов так, чтобы лишние столбцы в отдельных строках просто остались пустыми.
Для первого слова (наименования одежды) используем:
=ЛЕВСИМВ(A2; ПОИСК(«-«;A2;1)-1)
Как видите, это ничем не отличается от того, что мы рассматривали ранее. Ищем позицию первого дефиса и отделяем нужное количество символов.
Для второго столбца и далее понадобится более сложное выражение:
=ЕСЛИОШИБКА(ЛЕВСИМВ(ПОДСТАВИТЬ($A2&»-«; ОБЪЕДИНИТЬ(«-«;ИСТИНА;$B2:B2)&»-«;»»;1); ПОИСК(«-«;ПОДСТАВИТЬ($A2&»-«;ОБЪЕДИНИТЬ(«-«;ИСТИНА;$B2:B2)&»-«;»»;1);1)-1);»»)
Замысел здесь состоит в том, что при помощи функции ПОДСТАВИТЬ мы удаляем из исходного содержимого наименование, которое уже ранее извлекли (то есть, «Юбка»). Вместо него подставляем пустое значение «» и в результате имеем «Синий-M-39-42-50». В нём мы снова ищем позицию первого дефиса, как это делали ранее. И при помощи ЛЕВСИМВ вновь выделяем первое слово (то есть, «Синий»).
А далее можно просто «протянуть» формулу из C2 по строке, то есть скопировать ее в остальные ячейки. В результате в D2 получим
=ЕСЛИОШИБКА(ЛЕВСИМВ(ПОДСТАВИТЬ($A2&»-«; ОБЪЕДИНИТЬ(«-«;ИСТИНА;$B2:C2)&»-«;»»;1); ПОИСК(«-«;ПОДСТАВИТЬ($A2&»-«;ОБЪЕДИНИТЬ(«-«;ИСТИНА;$B2:C2)&»-«;»»;1);1)-1);»»)
Обратите внимание, жирным шрифтом выделены произошедшие при копировании изменения. То есть, теперь из исходного текста мы удаляем все, что было уже ранее найдено и извлечено – содержимое B2 и C2. И вновь в получившейся фразе берём первое слово — до дефиса.
Если же брать больше нечего, то функция ЕСЛИОШИБКА обработает это событие и вставит в виде результата пустое значение «».
Скопируйте формулы по строкам и столбцам, на сколько это необходимо. Результат вы видите на скриншоте.
Таким способом можно разделить текст в ячейке на сколько угодно столбцов. Главное, чтобы использовались одинаковые разделители.
Как разделить ячейку вида ‘текст + число’.
Начнем с того, что не существует универсального решения, которое работало бы для всех буквенно-цифровых выражений. Выбор зависит от конкретного шаблона, по которому вы хотите разбить ячейку. Ниже вы найдете формулы для двух наиболее распространенных сценариев.
Предположим, у вас есть столбец смешанного содержания, где число всегда следует за текстом. Естественно, такая конструкция рассматривается Excel как символьная. Вы хотите поделить их так, чтобы текст и числа отображались в отдельных ячейках.
Результат может быть достигнут двумя разными способами.
Метод 1. Подсчитайте цифры и извлеките это количество символов
Самый простой способ разбить выражение, в котором число идет после текста:
Чтобы извлечь числа, вы ищите в строке все возможные числа от 0 до 9, получаете общее их количество и отсекаете такое же количество символов от конца строки.
Если мы работаем с ячейкой A2:
=ПРАВСИМВ(A2;СУММ(ДЛСТР(A2) — ДЛСТР(ПОДСТАВИТЬ(A2; {«0″;»1″;»2″;»3″;»4″;»5″;»6″;»7″;»8″;»9″};»»))))
Чтобы извлечь буквы, вы вычисляете, сколько их у нас имеется. Для этого вычитаем количество извлеченных цифр (C2) из общей длины исходной ячейки A2. После этого при помощи ЛЕВСИМВ отрезаем это количество символов от начала ячейки.
=ЛЕВСИМВ(A2;ДЛСТР(A2)-ДЛСТР(C2))
здесь A2 – исходная ячейка, а C2 — извлеченное число, как показано на скриншоте:
Метод 2: узнать позицию 1- й цифры в строке
Альтернативное решение — использовать эту формулу массива для определения позиции первой цифры:
{=МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9};A2&»0123456789″))}
Как видите, мы последовательно ищем каждое число из массива {0,1,2,3,4,5,6,7,8,9}. Чтобы избежать появления ошибки если цифра не найдена, мы после содержимого ячейки A2 добавляем эти 10 цифр. Excel последовательно перебирает все символы в поисках этих десяти цифр. В итоге получаем опять же массив из 10 цифр — номеров позиций, в которых они нашлись. И из них функция МИН выбирает наименьшее число. Это и будет та позиция, с которой начинается группа чисел, которую нужно отделить от основного содержимого.
Также обратите внимание, что это формула массива и ввод её нужно заканчивать не как обычно, а комбинацией клавиш CTRL + SHIFT + ENTER.
Как только позиция первой цифры найдена, вы можете разделить буквы и числа, используя очень простые формулы ЛЕВСИМВ и ПРАВСИМВ.
Чтобы получить текст:
=ЛЕВСИМВ(A2; B2-1)
Чтобы получить числа:
=ПРАВСИМВ(A2; ДЛСТР(A2)-B2+1)
Где A2 — исходная строка, а B2 — позиция первого числа.
Чтобы избавиться от вспомогательного столбца, в котором мы вычисляли позицию первой цифры, вы можете встроить МИН в функции ЛЕВСИМВ и ПРАВСИМВ:
Для вытаскивания текста:
=ЛЕВСИМВ(A2; МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9};A2&»0123456789″))-1)
Для чисел:
=ПРАВСИМВ(A2; ДЛСТР(A2)-МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9};A2&»0123456789″))+1)
Этого же результата можно достичь и чуть иначе.
Сначала мы извлекаем из ячейки числа при помощи вот такого выражения:
=ПРАВСИМВ(A2;СУММ(ДЛСТР(A2) -ДЛСТР(ПОДСТАВИТЬ(A2; {«0″;»1″;»2″;»3″;»4″;»5″;»6″;»7″;»8″;»9″};»»))))
То есть, сравниваем длину нашего текста без чисел с его исходной длиной, и получаем количество цифр, которое нужно взять справа. К примеру, если текст без цифр стал короче на 2 символа, значит справа надо «отрезать» 2 символа, которые и будут нашим искомым числом.
А затем уже берём оставшееся:
=ЛЕВСИМВ(A2;ДЛСТР(A2)-ДЛСТР(C2))
Как видите, результат тот же. Можете воспользоваться любым способом.
Как разделить ячейку вида ‘число + текст’.
Если вы разделяете ячейки, в которых буквы стоят после цифр, вы можете отделять числа по следующей формуле:
=ЛЕВСИМВ(A2;СУММ(ДЛСТР(A2) — ДЛСТР(ПОДСТАВИТЬ(A2; {«0″;»1″;»2″;»3″;»4″;»5″;»6″;»7″;»8″;»9″};»»))))
Она аналогична рассмотренной в предыдущем примере, за исключением того, что вы используете функцию ЛЕВСИМВ вместо ПРАВСИМВ, чтобы получить число теперь уже из левой части выражения.
Теперь, когда у вас есть числа, отделите буквы, вычитая количество цифр из общей длины исходной строки:
=ПРАВСИМВ(A2;ДЛСТР(A2)-ДЛСТР(B2))
Где A2 — исходная строка, а B2 — искомое число, как показано на снимке экрана ниже:
Как разбить текст по ячейкам по маске (шаблону).
Эта опция очень удобна, когда вам нужно разбить список схожих строк на некоторые элементы или подстроки. Сложность состоит в том, что исходный текст должен быть разделен не при каждом появлении определенного разделителя (например, пробела), а только при некоторых определенных вхождениях. Следующий пример упрощает понимание.
Предположим, у вас есть список строк, извлеченных из некоторого файла журнала:
Вы хотите, чтобы дата и время, если таковые имеются, код ошибки и поясняющие сведения были размещены в 3 отдельных столбцах. Вы не можете использовать пробел в качестве разделителя, потому что между датой и временем также есть пробелы. Также есть пробелы в тексте пояснения, который также должен весь находиться слитно в одном столбце.
Решением является разбиение строки по следующей маске: * ERROR: * Exception: *
Здесь звездочка (*) представляет любое количество символов.
Двоеточия (:) включены в разделители, потому что мы не хотим, чтобы они появлялись в результирующих ячейках.
То есть в данном случае в качестве разделителя по столбцам выступают не отдельные символы, а целые слова.
Итак, в начале ищем позицию первого разделителя.
=ПОИСК(«ERROR:»;A2;1)
Затем аналогичным образом находим позицию, в которой начинается второй разделитель:
=ПОИСК(«Exception:»;A2;1)
Итак, для ячейки A2 шаблон выглядит следующим образом:
С 1 по 20 символ – дата и время. С 21 по 26 символ – разделитель “ERROR:”. Далее – код ошибки. С 31 по 40 символ – второй разделитель “Exception:”. Затем следует описание ошибки.
Таким образом, в первый столбец мы поместим первые 20 знаков:
=—ЛЕВСИМВ(A2;ПОИСК(«ERROR:»;A2;1)-1)
Обратите внимание, что мы взяли на 1 позицию меньше, чем начало первого разделителя. Кроме того, чтобы сразу конвертировать всё это в дату, ставим перед формулой два знака минус. Это автоматически преобразует цифры в число, а дата как раз и хранится в виде числа. Остается только установить нужный формат даты и времени стандартными средствами Excel.
Далее нужно получить код:
=ПСТР(A2;ПОИСК(«ERROR:»;A2;1)+6;ПОИСК(«Exception:»;A2;1)-(ПОИСК(«ERROR:»;A2;1)+6))
Думаю, вы понимаете, что 6 – это количество знаков в нашем слове-разделителе «ERROR:».
Ну и, наконец, выделяем из этой фразы пояснение:
=ПРАВСИМВ(A2;ДЛСТР(A2)-(ПОИСК(«Exception:»;A2;1)+10))
Аналогично добавляем 10 к найденной позиции второго разделителя «Exception:», чтобы выйти на координаты первого символа сразу после разделителя. Ведь функция говорит нам только то, где разделитель начинается, а не заканчивается.
Таким образом, ячейку мы распределили по 3 столбцам, исключив при этом слова-разделители.
Если выяснение загадочных поворотов формул Excel — не ваше любимое занятие, вам может понравиться визуальный метод разделения ячеек в Excel, который демонстрируется в следующей части этого руководства.
Как разделить ячейки в Excel с помощью функции разделения текста Split Text.
Альтернативный способ разбить столбец в Excel — использовать функцию разделения текста, включенную в надстройку Ultimate Suite for Excel. Она предоставляет следующие возможности:
- Разделить ячейку по символу-разделителю.
- Разделить ячейку по нескольким разделителям.
- Разделить ячейку по маске (шаблону).
Чтобы было понятнее, давайте более подробно рассмотрим каждый вариант по очереди.
Разделить ячейку по символу-разделителю.
Выбирайте этот вариант, если хотите разделить содержимое ячейки при каждом появлении определённого символа .
Для этого примера возьмем строки шаблона Товар-Цвет-Размер , который мы использовали в первой части этого руководства. Как вы помните, мы разделили их на 3 разных столбца, используя 3 разные формулы . А вот как добиться того же результата за 2 быстрых шага:
- Предполагая, что у вас установлен Ultimate Suite , выберите ячейки, которые нужно разделить, и щелкните значок «Разделить текст (Split Text)» на вкладке «Ablebits Data».
- Панель Разделить текст откроется в правой части окна Excel, и вы выполните следующие действия:
- Разверните группу «Разбить по символам (Split by Characters)» и выберите один из предопределенных разделителей или введите любой другой символ в поле «Пользовательский (Custom)» .
- Выберите, как именно разбивать ячейки: по столбцам или строкам.
- Нажмите кнопку «Разделить (Split)» .
Примечание. Если в ячейке может быть несколько последовательных разделителей (например, более одного символа пробела подряд), установите флажок « Считать последовательные разделители одним».
Готово! Задача, которая требовала 3 формул и 5 различных функций, теперь занимает всего пару секунд и одно нажатие кнопки.
Разделить ячейку по нескольким разделителям.
Этот параметр позволяет разделять текстовые ячейки, используя любую комбинацию символов в качестве разделителя. Технически вы разделяете строку на части, используя одну или несколько разных подстрок в качестве границ.
Например, чтобы разделить предложение на части, используя запятые и союзы, активируйте инструмент «Разбить по строкам (Split by Strings)» и введите разделители, по одному в каждой строке:
В данном случае в качестве разделителей мы используем запятую и союз “или”.
В результате исходная фраза разделяется при появлении любого разделителя:
Примечание. Союзы «или», а также «и» часто могут быть частью слова в вашей исследуемой фразе, так что не забудьте ввести пробел до и после них, чтобы предотвратить разрывы слов на части.
А вот еще один пример. Предположим, вы импортировали столбец дат из внешнего источника, и выглядит он следующим образом:
5.1.2021 12:20
9.8.2021 14:50
Этот формат не является обычным для Excel, и поэтому ни одна из функций даты не распознает здесь какие-либо элементы даты или времени. Чтобы разделить день, месяц, год, часы и минуты на отдельные ячейки, введите следующие символы в поле Spilt by strings:
- Точка (.) Для разделения дня, месяца и года
- Двоеточие (:) для разделения часов и минут
- Пробел для разграничения даты и времени
Нажмите кнопку Split, и вы сразу получите результат:
Разделить ячейки по маске (шаблону).
Эта опция очень удобна, когда вам нужно разбить список однородных строк на некоторые элементы или подстроки.
Сложность заключается в том, что исходный текст не может быть разделен при каждом появлении заданного разделителя, а только при некоторых определенных вхождениях. Следующий пример упростит понимание.
Предположим, у вас есть список строк, извлеченных из некоторого файла журнала. Чуть выше в этой статье мы разбивали этот текст по ячейкам при помощи формул. А сейчас используем специальный инструмент. И вы сами решите, какой из способов удобнее и проще.
Вы хотите, чтобы дата и время, если таковые имеются, код ошибки и пояснительная информация, были в трех отдельных столбцах. Вы не можете использовать пробел в качестве разделителя, потому что между датой и временем имеются пробелы, которые должны отображаться в одном столбце, и есть пробелы в тексте пояснения, который также должен быть расположен в отдельном столбце.
Решением является разбиение строки по следующей маске:
* ERROR:* Exception: *
Где звездочка (*) представляет любое количество символов.
Двоеточия (:) включены в разделители, потому что мы не хотим, чтобы они появлялись в результирующих ячейках.
А теперь нажмите кнопку «Разбить по маске (Split by Mask)» на панели «Split Text» , введите маску в соответствующее поле и нажмите «Split».
Результат будет примерно таким:
Примечание. При разделении строки по маске учитывается регистр. Поэтому не забудьте ввести символы в шаблоне точно так, как они отображаются в исходных данных.
Большое преимущество этого метода — гибкость. Например, если все исходные строки имеют значения даты и времени, и вы хотите, чтобы они отображались в разных столбцах, используйте эту маску:
* * ERROR:* Exception: *
Проще говоря, маска указывает надстройке разделить исходные строки на 4 части:
- Все символы перед 1-м пробелом в строке (дата)
- Символы между 1-м пробелом и словом ERROR: (время)
- Текст между ERROR: и Exception: (код ошибки)
- Все, что идет после Exception: (текст описания)
Думаю, вы согласитесь, что использование надстройки Split Text гораздо быстрее и проще, нежели использование формул.
Надеюсь, вам понравился этот быстрый и простой способ разделения строк в Excel. Если вам интересно попробовать, ознакомительная версия доступна для загрузки здесь.
Вот как вы можете разделить текст по ячейкам таблицы Excel, используя различные комбинации функций, а также специальные инструменты. Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Читайте также:
Поиск ВПР нескольких значений по нескольким условиям — В статье показаны способы поиска (ВПР) нескольких значений в Excel на основе одного или нескольких условий и возврата нескольких результатов в столбце, строке или в отдельной ячейке. При использовании Microsoft…
Формат времени в Excel — Вы узнаете об особенностях формата времени Excel, как записать его в часах, минутах или секундах, как перевести в число или текст, а также о том, как добавить время с помощью…
Как сделать диаграмму Ганта — Думаю, каждый пользователь Excel знает, что такое диаграмма и как ее создать. Однако один вид графиков остается достаточно сложным для многих — это диаграмма Ганта. В этом кратком руководстве я постараюсь показать…
Как сделать автозаполнение в Excel — В этой статье рассматривается функция автозаполнения Excel. Вы узнаете, как заполнять ряды чисел, дат и других данных, создавать и использовать настраиваемые списки в Excel. Эта статья также позволяет вам убедиться, что вы…
Функция ИНДЕКС в Excel — 6 примеров использования — В этом руководстве вы найдете ряд примеров формул, демонстрирующих наиболее эффективное использование ИНДЕКС в Excel. Из всех функций Excel, возможности которых часто недооцениваются и используются недостаточно, ИНДЕКС определенно занимает место…
Быстрое удаление пустых столбцов в Excel — В этом руководстве вы узнаете, как можно легко удалить пустые столбцы в Excel с помощью макроса, формулы и даже простым нажатием кнопки. Как бы банально это ни звучало, удаление пустых…
Разделение текста на столбцы с помощью мастера распределения текста по столбцам
С помощью мастера распределения текста по столбцам текст, содержащийся в одной ячейке, можно разделить на несколько.
Проверьте, как это работает!
-
Выделите ячейку или столбец с текстом, который вы хотите разделить.
-
На вкладке Данные нажмите кнопку Текст по столбцам.
-
В мастере распределения текста по столбцам установите переключатель с разделителями и нажмите кнопку Далее.
-
Выберите разделители для своих данных. Например, запятую и пробел. Данные можно предварительно просмотреть в окне Образец разбора данных.
-
Нажмите кнопку Далее.
-
В поле Поместить в выберите место на листе, где должны отображаться разделенные данные.
-
Нажмите кнопку Готово.
См. также
Разделение текста по столбцам с помощью функций
Нужна дополнительная помощь?
Перейти к содержимому
Добрый день.
Очень часто сталкиваюсь с ситуацией, когда требуется разделить (разбить) ячейки в таблице «Excel» вертикально или горизонтально.
Стандартного инструмента для деления ячеек в «Excel» найти нет, соответственно приходится использовать другие, похожие инструменты, в зависимости от ситуации.
Далее расскажу о том, как произвести разделение ячейки «Excel» стандартными инструментами без написания дополнительных макросов.
Предположим, существует таблица, созданная в программе «Excel», в которой в одном из столбцов размещена информация с городами и наименованиями улиц.
| Точка | Адрес | Бюджет |
| Магазин телефонов | Самара; ул. Алтухого | 700 руб. |
| Ремонт ноутбуков | Уфа; ул. Спиридонова | 850 руб. |
| Ремонт обуви | Кострома; ул. Седина | 1050 руб. |
| Пошив одежды | Москва; ул. Энтузиастов | 2000 руб. |
Необходимо разделить ячейки таким образом, чтобы в одной были названия городов в другой названия улиц.
Каким образом выполняется разбивка ячеек:
- Сначала нужно поставить курсор на разделяемую ячейку.
- Далее при помощи клика правой кнопкой мыши открыть контекстное меню. В меню выбрать пункт «Вставить» и выбрать, что вы хотите вставить:
Вставить - «Столбец» при горизонтальном делении;
Добавление столбца - Аналогичную вставку строки или столбца можно произвести при помощи инструмента «Вставить» расположенного на панели инструментов в разделе (во вкладке) «Главная».
Кнопка «Вставить» на панели Теперь, когда рядом появились свободные (пустые) ячейки можно приступать непосредственно к делению (разбивке) ячейки.
- Для деления нужно снова поставить курсор в ячейку с информацией.
- Войти во вкладку «Данные» на панели инструментов.
- Нажать кнопку «Текст по столбцам».
Текст по столбцам (кнопка) - В появившемся окне выбрать в качестве разделителя пробел или знак пунктуации(запятую, точку, двоеточие и т.д.)
Разделитель - Нажать «Готово»
Выделенная ячейка будет разделена и часть текста перейдет в соседнюю пустую ячейку.
В некоторых случаях вам может потребоваться разделить значения выбранных ячеек, разделенных запятыми, на строки или столбцы. Здесь мы представим вам три метода для подробного решения этой проблемы.
Разделите значения, разделенные запятыми, на столбцы с помощью функции Text to Columns
Разделите значения, разделенные запятыми, на строки с кодом VBA
Быстро разбивайте значения, разделенные запятыми, на строки или столбцы с помощью Kutools for Excel
Содержание
- Разделение значений, разделенных запятыми, на столбцы с помощью функции “Текст в столбцы”
- Разделить значения, разделенные запятыми, на строки с кодом VBA
- Быстро разбивайте значения, разделенные запятыми, на строки или столбцы с помощью Kutools for Excel
- Демо: быстро разделяйте значения, разделенные запятыми, на строки или столбцы с помощью Kutools for Excel
Разделение значений, разделенных запятыми, на столбцы с помощью функции “Текст в столбцы”
Вы можете применить функцию “Текст в столбцы” для разделения значений, разделенных запятыми. выбранных ячеек в столбцы. Пожалуйста, сделайте следующее.
1. Выберите диапазон ячеек, значения которого вы хотите разделить на столбцы, а затем нажмите Данные > Текст в столбцы . См. Снимок экрана:

2. В первом диалоговом окне Мастер преобразования текста в столбцы выберите параметр с разделителями , а затем нажмите кнопку Далее .

3. Во втором диалоговом окне Мастер преобразования текста в столбцы установите только флажок Запятая в разделе Разделители и нажмите кнопку Далее .

4. В последнем диалоговом окне Мастер преобразования текста в столбцы выберите ячейку для размещения значений разделения в поле Destination и, наконец, нажмите Готово . См. Снимок экрана:

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

Простое разделение значений, разделенных запятыми, на строки или столбцы в Excel: ->
Обычно Текст в столбцы только разделяет ячейки на отдельные столбцы, если вы хотите разделить ячейки на строки, как вы можете это сделать?
Здесь Kutools for Excel Разделить ячейки может помочь вам быстро разделить ячейки по пробелу, запятой, новой строке, другим разделителям или определенной ширине не только на отдельные строки, но и на столбцы в Excel. Загрузите Kutools for Excel прямо сейчас! (30-дневная бесплатная пробная версия)

Разделить значения, разделенные запятыми, на строки с кодом VBA
Для разделения значений, разделенных запятыми в строки можно применить следующий код VBA.
1. Одновременно нажмите клавиши Alt + F11 , чтобы открыть окно Microsoft Visual Basic для приложений .
2. В окне Microsoft Visual Basic для приложений нажмите Вставить > Модуль . Затем скопируйте и вставьте приведенный ниже код VBA в окно модуля.
Код VBA: разделите значения, разделенные запятыми, на строки
3 . Нажмите клавишу F5 , чтобы запустить код. Во всплывающем диалоговом окне Kutools for Excel выберите ячейки, которые вы хотите разделить, а затем нажмите кнопку OK .

4. Во втором появившемся диалоговом окне Kutools for Excel выберите ячейку для размещения значений разделения, затем нажмите OK .

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

Быстро разбивайте значения, разделенные запятыми, на строки или столбцы с помощью Kutools for Excel
Утилита Split Cells в Kutools for Excel может помочь вам легко разделить значения, разделенные запятыми, на строки или столбцы.
1. Выберите ячейки, которые нужно разделить, а затем нажмите Kutools > Объединить и разделить > Разделить ячейки . См. Снимок экрана:

2. В диалоговом окне Разделить ячейки выберите Разделить на строки или Разделить на столбцы в типе . по мере необходимости. И в разделе Укажите разделитель выберите вариант Другое , введите символ запятой в текстовое поле и затем нажмите ОК кнопку. См. Снимок экрана:

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

4. Нажмите кнопку OK , вы увидите результаты, как показано на скриншотах ниже.
Разделить на столбцы

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

Если вы хотите получить 30-дневную бесплатную пробную версию этой утилиты , нажмите, чтобы загрузить его , а затем примените операцию в соответствии с вышеуказанными шагами.
Демо: быстро разделяйте значения, разделенные запятыми, на строки или столбцы с помощью Kutools for Excel
Цитата: sergo44441 от 09.09.2010, 22:08
попробуйте мой вариант макроса
Спасибо за желание помочь! (+1)
На самом деле, это тот самый способ, с которого я и сам начинал — в смысле, через Instr и Mid. Вот так вот я делал:
Счётчик = 1
Do While Счётчик <= ВсегоСтрокВтаблице
If Счётчик Mod 200 = 0 Then DoEvents
ProgressBar1.Value = Счётчик
With Sheets("Обработка")
КопияНачальнойСтроки = .Range("A" & Счётчик)
ПозицияПервойЗапятой = InStr(1, КопияНачальнойСтроки, ",")
ПозицияВторойЗапятой = InStr(ПозицияПервойЗапятой + 1, _
КопияНачальнойСтроки, ",")
ПозицияТретьейЗапятой = InStr(ПозицияВторойЗапятой + 1, _
КопияНачальнойСтроки, ",")
ПозицияЧетвёртойЗапятой = InStr(ПозицияТретьейЗапятой + 1, _
КопияНачальнойСтроки, ",")
ПозицияПятойЗапятой = InStr(ПозицияЧетвёртойЗапятой + 1, _
КопияНачальнойСтроки, ",")
ПозицияШестойЗапятой = InStr(ПозицияПятойЗапятой + 1, _
КопияНачальнойСтроки, ",")
ПозицияСедьмойЗапятой = InStr(ПозицияШестойЗапятой + 1, _
КопияНачальнойСтроки, ",")
ПозицияВосьмойЗапятой = InStr(ПозицияСедьмойЗапятой + 1, _
КопияНачальнойСтроки, ",")
.Range("A" & Счётчик) = _
Mid(КопияНачальнойСтроки, 1, ПозицияПервойЗапятой - 1)
.Range("B" & Счётчик) = _
Mid(КопияНачальнойСтроки, ПозицияПервойЗапятой + 1, _
ПозицияВторойЗапятой - ПозицияПервойЗапятой - 1)
.Range("C" & Счётчик) = _
Mid(КопияНачальнойСтроки, ПозицияВторойЗапятой + 1, _
ПозицияТретьейЗапятой - ПозицияВторойЗапятой - 1)
.Range("D" & Счётчик) = _
Mid(КопияНачальнойСтроки, ПозицияТретьейЗапятой + 1, _
ПозицияЧетвёртойЗапятой - ПозицияТретьейЗапятой - 1)
.Range("E" & Счётчик) = _
Mid(КопияНачальнойСтроки, ПозицияЧетвёртойЗапятой + 1, _
ПозицияПятойЗапятой - ПозицияЧетвёртойЗапятой - 1)
.Range("F" & Счётчик) = _
Mid(КопияНачальнойСтроки, ПозицияПятойЗапятой + 1, _
ПозицияШестойЗапятой - ПозицияПятойЗапятой - 1)
.Range("G" & Счётчик) = _
Mid(КопияНачальнойСтроки, ПозицияШестойЗапятой + 1, _
ПозицияСедьмойЗапятой - ПозицияШестойЗапятой - 1)
.Range("H" & Счётчик) = _
Mid(КопияНачальнойСтроки, ПозицияСедьмойЗапятой + 1, _
ПозицияВосьмойЗапятой - ПозицияСедьмойЗапятой - 1)
.Range("I" & Счётчик) = _
Mid(КопияНачальнойСтроки, ПозицияВосьмойЗапятой + 1)
End With
Счётчик = Счётчик + 1
Loop
Получалось очень долго. А чтобы не было совсем уж тоскливо, даже ПрогрессБары стал применять 

И ещё нашёл метод TextToColumns, который вроде бы для этого и предназначен. Но эксперименты с ним особым успехом тоже не увенчались. Потому-то и решил прибегнуть к помощи знатоков.
Может кто-нибудь подскажет, как следует правильно использовать эти методы для решения моей задачи или посоветует ещё какой-нибудь способ?
Раннее мы рассматривали возможность разделить текст по столбцам на примере деления ФИО на составные части. Для этого мы использовали инструмент в Excel «Текст по столбцам».
Несомненно, это очень важный и полезный и инструмент в Excel, который значительно может упростить множество задач. Но у данного способа есть небольшой недостаток. Если вам, например, постоянно присылают данные в определенном виде, а вам постоянно необходимо их делить, то это занимает определенное время, кроме того, если данные вам прислали заново, то вам снова нужно будет проделать все операции.
Содержание
- 1 Пример 1. Делим текст с ФИО по столбцам с помощью формул
- 1.1 Приступаем к делению первой части текста — Фамилии
- 1.2 Приступаем к делению второй части текста — Имя
- 1.3 Приступаем к делению третьей части текста — Отчество
- 2 Пример 2. Как разделить текст по столбцам в Excel с помощью формулы
Пример 1. Делим текст с ФИО по столбцам с помощью формул
Если рассматривать на примере деления ФИО, то разделить текст можно будет с помощью текстовых формул Excel, используя функцию ПСТР и НАЙТИ, которую мы рассматривали в прошлых статьях. В этом случае вам достаточно вставить данные в определенный столбец, а формулы автоматически разделят текст так как вам необходимо. Давайте приступит к рассмотрению данного примера.
У нас есть столбец со списком ФИО, наша задача разместить фамилию, имя отчество по отдельным столбцам.
Попробуем очень подробно описать план действия и разобьем решение задачи на несколько этапов.
Первым делом добавим вспомогательные столбцы, для промежуточных вычислений, чтобы вам было понятнее, а в конце все формулы объединим в одну.
Итак, добавим столбцы позиция 1-го и 2-го пробелам. С помощью функции НАЙТИ, как мы уже рассматривали в предыдущей статье найдем позицию первого пробелам. Для этого в ячейке «H2» пропишем формулу
=НАЙТИ(" ";A2;1)
и протянем вниз. Формулу объяснять не буду — смотрите предыдущую статью
Теперь нам необходимо найти порядковый номер второго пробела. Формула будет такая же, но с небольшим отличием. Если прописать такую же формулу, то функция найдет нам первый пробел, а нам нужен второй пробел. Значит на необходимо поменять третий аргумент в функции НАЙТИ — начальная позиция — то есть позиция с которой функция будет искать искомый текст. Мы видим, что второй пробел находится в любом случае после первого пробела, а позицию первого пробела мы уже нашли, значит прибавив 1 к позиции первого пробелам мы укажем функции НАЙТИ искать пробел начиная с первой буквы после первого пробела. Функция будет выглядеть следующим образом:
=НАЙТИ(" ";A2;H2+1)
Далее протягиваем формулу и получаем позиции 1-го и 2-го пробела.
Приступаем к делению первой части текста — Фамилии
Для этого мы воспользуемся функцией ПСТР, напомню синтаксис данной функции:
=ПСТР(текст; начальная_позиция; число_знаков), где
- текст — это ФИО, в нашем примере это ячейка A2;
- начальная_позиция — в нашем случае это 1, то есть начиная с первой буквы;
- число_знаков — мы видим, что фамилия состоит из всех знаков, начиная с первой буквы и до 1-го пробела. А позиция первого пробела нам уже известна. Это и будет количество знаков минус 1 знак самого пробела.
Формула будет выглядеть следующим образом:
=ПСТР(A2;1;H2-1)
Приступаем к делению второй части текста — Имя
Снова используем функцию =ПСТР(текст; начальная_позиция; число_знаков), где
- текст — это тот же текст ФИО, в нашем примере это ячейка A2;
- начальная_позиция — в нашем случае Имя начинается с первой буква после первого пробела, зная позицию этого пробела получаем H2+1;
- число_знаков — число знаков, то есть количество букв в имени. Мы видим, что имя у нас находится между двумя пробелами, позиции которых мы знаем. Если из позиции второго пробела отнять позицию первого пробела, то мы получим разницу, которая и будет равна количеству символов в имени, то есть I2-H2
Получаем итоговую формулу:
=ПСТР(A2;H2+1;I2-H2)
Приступаем к делению третьей части текста — Отчество
И снова функция =ПСТР(текст; начальная_позиция; число_знаков), где
- текст — это тот же текст ФИО, в нашем примере это ячейка A2;
- начальная_позиция — Отчество у нас находится после 2-го пробелам, значит начальная позиция будет равна позиции второго пробела плюс один знак или I2+1;
- число_знаков — в нашем случае после Отчества никаких знаков нет, поэтому мы просто может взять любое число, главное, чтобы оно было больше возможного количества символов в Отчестве, я взял цифру с большим запасом — 50
Получаем функцию
=ПСТР(A2;I2+1;50)
Далее выделяем все три ячейки и протягиваем формулы вниз и получаем нужный нам результат. На этом можно закончить, а можно промежуточные расчеты позиции пробелов прописать в сами формулы деления текста. Это очень просто сделать. Мы видим, что расчет первого пробела находится в ячейке H2 — НАЙТИ(» «;A2;1), а расчет второго пробела в ячейке I2 — НАЙТИ(» «;A2;H2+1) . Видим, что в формуле ячейки I2 встречается H2 меняем ее на саму формулу и получаем в ячейке I2 вложенную формулу НАЙТИ(» «;A2;НАЙТИ(» «;A2;1)+1)
Смотрим первую формулу выделения Фамилии и смотрим где здесь встречается H2 или I2 и меняем их на формулы в этих ячейках, аналогично с Именем и Фамилией
- Фамилия =ПСТР(A2;1;H2-1) получаем =ПСТР(A2;1;НАЙТИ(» «;A2;1)-1)
- Имя =ПСТР(A2;H2+1;I2—H2) получаем =ПСТР(A2;НАЙТИ(» «;A2;1)+1;
НАЙТИ(» «;A2;НАЙТИ(» «;A2;1)+1)—НАЙТИ(» «;A2;1)) - Отчество =ПСТР(A2;I2+1;50) получаем =ПСТР(A2;НАЙТИ(» «;A2;НАЙТИ(» «;A2;1)+1)+1;50)
Теперь промежуточные вычисления позиции пробелом можно смело удалить. Это один из приемов, когда для простоты сначала ищутся промежуточные данные, а потом функцию вкладывают одну в другую. Согласитесь, если писать такую большую формулу сразу, то легко запутаться и ошибиться.
Надеемся, что данный пример наглядно показал вам, как полезны текстовые функции Excel для работы с текстом и как они позволяют делить текст автоматически с помощью формул однотипные данные. Если вам понравилась статья, то будем благодарны за нажатие на +1 и мне нравится. Подписывайтесь и вступайте в нашу группу вконтакте.
Пример 2. Как разделить текст по столбцам в Excel с помощью формулы
Рассмотрим второй пример, который так же очень часто встречался на практике. Пример похож предыдущий, но данных которые нужно разделить значительно больше. В этом примере я покажу прием, который позволит достаточно быстро решить вопрос и не запутаться.
Допустим у нас есть список чисел, перечисленных через запятую, нам необходимо разбить текст таким образом, чтобы каждое число было в отдельной ячейке (вместо запятых это могут быть любые другие знаки, в том числе и пробелы). То есть нам необходимо разбить текст по словам.
Напомним, что вручную (без формул) это задача очень просто решается с помощью инструмента текст по столбцам, который мы уже рассматривали. В нашем же случае требуется это сделать с помощью формул.
Для начала необходимо найти общий разделить, по которому мы будет разбивать текст. В нашем случае это запятая, но например в первой задаче мы делили ФИО и разделитель был пробел. Наш второй пример более универсальный (более удобный при большом количестве данных), так например мы удобно могли бы делить не только ФИО по отдельным ячейкам, а целое предложение — каждое слово в отдельную ячейку. Собственно такой вопрос поступил в комментариях, поэтому было решено дополнить эту статью.
Для удобства в соседнем столбце укажем этот разделитель, чтобы не прописывать его в формуле а просто ссылаться на ячейку. Это так же позволит нам использовать файл для решения других задач, просто поменяв разделитель в ячейках.
Теперь основная суть приема.
Шаг 1. В вспомогательном столбце находим позицию первого разделителя с помощью функции НАЙТИ. Описывать подробно функцию не буду, так как мы уже рассматривали ее раннее. Пропишем формулу в D1 и протянем ее вниз на все строки
=НАЙТИ(B1;A1;1)
То есть ищем запятую, в тексте, начиная с позиции 1
Шаг 2. Далее в ячейке E1 прописываем формулу для нахождения второго знака (в нашем случае запятой). Формула аналогичная, но с небольшими изменениями.
=НАЙТИ($B1;$A1;D1+1)
Во-первых: закрепим столбец искомого значения и текста, чтобы при протягивании формулы вправо ссылки на ячейки не сдвигалась. Для этого нужно написать доллар перед столбцом B и A — либо вручную, либо выделить A1 и B1, нажать три раза клавишу F4, после этого ссылки станут не относительными, а абсолютными.
Во-вторых: третий аргумент — начало позиции мы рассчитаем как позиция предыдущего разделителя (мы его нашли выше) плюс 1 то есть D1+1 так как мы знаем, что второй разделитель точно находится после первого разделителя и нам его не нужно учитывать.
Пропишем формулу и протянем ее вниз.
Шаг 3. Находимо позиции всех остальных разделителей. Для этого формулу нахождения второго разделителя (шаг 2) протянем вправо на то количество ячеек, сколько всего может быть отдельно разбитых значений с небольшим запасом. Получим все позиции разделителей. Там где ошибка #Знач означает что значения закончились и формула больше не находит разделителей. Получаем следующее
Шаг 4. Отделяем первое число от текст с помощью функции ПСТР.
=ПСТР(A1;1;D1-1)
Начальная позиция у нас 1, количество знаков мы рассчитываем как позиция первого разделителя минус 1: D1-1 протягиваем формулу вниз
Шаг 5. Находимо второе слово так же с помощью функции ПСТР в ячейке P1
=ПСТР($A1;D1+1;E1-D1-1)
Начальная позиция второго числа у нас начинается после первой запятой. Позиция первой запятой у нас есть в ячейке D1, прибавим единицу и получим начальную позицию нашего второго числа.
Количество знаков это есть разница между позицией третьего разделителя и второго и минус один знак, то есть E1-D1-1
Закрепим столбец A исходного текста, чтобы он не сдвигался при протягивании формулы право.
Шаг 6. Протянем формулу полученную на шаге 5 вправо и вниз и получим текст в отдельных ячейках.
Шаг 7. В принципе задача наша уже решена, но для красоты все в той же ячейке P1 пропишем формула отлавливающую ошибку заменяя ее пустым значением. Так же можно сгруппировать и свернуть вспомогательные столбцы, чтобы они не мешали. Получим итоговое решение задачи
=ЕСЛИОШИБКА(ПСТР($A1;D1+1;E1-D1-1);»»)
Примечание. Первую позицию разделителя и первое деление слова мы делали отлично от других и из-за этого могли протянуть формулу только со вторых значений. Во время написания задачи я заметил, что можно было бы упростить задачу. Для этого в столбце С нужно было прописать 0 значения первого разделителя. После этого находим значение первого разделителя
=НАЙТИ($B1;$A1;C1+1)
а первого текста как
=ПСТР($A1;C1+1;D1-C1-1)
После этого можно сразу протягивать формулу на остальные значения. Именно этот вариант оставляю как пример для скачивания. В принципе файлом можно пользоваться как шаблоном. В столбец «A» вставляете данные, в столбце «B» указываете разделитель, протягиваете формулы на нужное количество ячеек и получаете результат.
Внимание! В комментариях заметили, что так как в конце текста у нас нет разделителя, то у нас не считается количество символов от последнего разделителя до конца строки, поэтому последний разделенный текст отсутствует. Чтобы решить вопрос можно либо на первом шаге добавить вспомогательный столбец радом с исходным текстом, где сцепить этот текст с разделителем. Таким образом у нас получится что на конце текста будет разделитель, значит наши формулы посчитают его позицию и все будет работать.
Либо второе решение — это на шаге 3, когда мы составляем формулу вычисления позиций разделителей дополнить ее. Сделать проверку, если ошибка, то указываем заведомо большое число, например 1000.
=ЕСЛИОШИБКА(НАЙТИ($B1;$A1;C1+1);1000)
Таким образом последний текст будет рассчитываться начиная от последней запятой до чуть меньше 1000 знаков, то есть до конца строки, что нам и требуется.
Оба варианта выложу для скачивания.
Скачать пример: Как разделить текст по столбцам с помощью функции_1.xlsx (исправлено: доп поле)
Скачать пример: Как разделить текст по столбцам с помощью функции_2.xlsx (исправлено: заведомо большое число)
Если ячейка содержит текст, разделенный запятой или любым другим знаком, и вы хотите разбить их на несколько столбцов, вам следует следовать этому руководству. Эта статья поможет вам разделить текст, разделенный запятыми в Excel и Google Таблицах без использования стороннего программного обеспечения.
Предположим, у вас есть электронная таблица, содержащая полное имя некоторых людей, и вы хотите разделить имя и фамилию на два столбца. Вместо имен он может включать в себя что угодно, например, список продуктов, ваши услуги и цену или что-то еще. Если рядов мало, можно сделать это вручную. Проблема возникает, когда вам нужно сделать то же самое с сотнями столбцов в Microsoft Excel или Google Sheets. Чтобы избавиться от этой трудоемкой работы, вы можете ознакомиться с этим пошаговым руководством.
Чтобы разделить текст, разделенный запятыми, в Excel, выполните следующие действия:
- Откройте электронную таблицу и выберите все ячейки.
- Перейдите на вкладку «Данные».
- Нажмите на опцию Text to Columns.
- Используйте параметр с разделителями и выберите разделитель.
- Выберите ячейку, в которой вы хотите отобразить результат.
- Сохраните ваш файл.
Для начала вам нужно открыть электронную таблицу в Microsoft Excel и выбрать все ячейки, содержащие текст, разделенный командами. После этого перейдите в Данные вкладку и нажмите Текст в столбцы вариант.
У вас будет два варианта — С разделителями и Фиксированная ширина. Вам нужно выбрать С разделителями вариант и щелкните Следующий кнопка.
После этого выберите разделитель. Поскольку в вашей электронной таблице есть запятая, вам нужно выбрать ее из списка. Однако можно выбрать что-то еще, например табуляцию, точку с запятой, пробел или что-нибудь другое. Наконец, нажмите на Следующий кнопка.
Теперь вам нужно выбрать ячейку, которая будет первым столбцом.
Возвращаясь к руководству, вам нужно удалить default Пункт назначения значение и выберите ячейку, в которой вы хотите отобразить результат. Наконец, нажмите кнопку Заканчивать кнопка.
Какую бы ячейку или столбец вы ни выбрали, в следующей следующей будет последняя часть текста, разделенного запятыми.
Например, если-
- У вас есть такой текст — AA, BB
- Выберите B1 для AA
Часть BB будет сохранена в ячейке C1. Если исходный текст содержит две запятые, самая последняя часть будет отображаться в ячейке D1.
Теперь вы можете сразу увидеть результат.
Как разделить текст через запятую в Google Таблицах
В этом случае Google Таблицы не так умны, как Microsoft Excel. Хотя вы можете разделить все тексты через запятую, вы не можете сохранить исходный столбец. Если вас это устраивает, выполните следующие действия.
- Выделите все ячейки в вашей электронной таблице.
- Перейдите в Данные> Разделить тексты на столбцы.
- Если хотите, измените разделитель.
Сначала вам нужно выделить все ячейки, содержащие значения, разделенные запятыми. После этого разверните Данные меню и выберите Разделить текст на столбцы вариант.
По умолчанию он автоматически определяет разделитель или ограничитель. Если вы используете что-то уникальное или оно не выполняет свою работу безупречно, вы можете расширить Разделитель раскрывающийся список и выберите что-нибудь еще в соответствии с вашими требованиями.
Вот и все!
Данные, импортированные из внешних источников, могут потребовать некоторой очистки. С помощью разделителей вы можете разделить такие данные на разные ячейки, чтобы лучше организовать их и сделать более значимыми.
Разделитель разделяет каждую часть данных в этой строке. В качестве разделителя может использоваться любой символ, например запятая, пробел, табуляция или точка с запятой. Однако разделить данные по ячейкам в Excel не так просто. Итак, давайте посмотрим, как управлять данными с помощью разделителей в электронной таблице.
Выберите ваши данные
Прежде чем начать, вам нужно выбрать все данные, которые вы хотите использовать. Вот как это сделать:
- Откройте новый лист Excel. Введите данные образца в первый столбец листа.
- Введите список имен нескольких певцов и попробуйте разделить эти имена на имена и фамилии в отдельные ячейки.
- Выберите данные, которые вы хотите разделить, с помощью мыши или клавиш Ctrl и стрелки вниз.
Использование параметра «Текст в столбцы»
После выбора данных вы можете разделить имена на имя и фамилию. Посмотрим как!
- Щелкните параметр « Данные» на ленте Excel.
- Щелкните значок « Текст в столбцы» в разделе « Инструменты для работы с данными » на ленте.
- Когда вы выбираете текст в столбцы , на экране открывается мастер преобразования текста в столбцы . Мастер поможет разбить текст на три этапа.
- Выберите вариант с разделителями и нажмите кнопку Далее .
- На следующем экране выберите Пробел в качестве разделителя и снимите флажки с других разделителей.
- После этого нажмите кнопку « Далее» . Окно предварительного просмотра данных покажет, как Excel разделит данные.
- Вы можете выбрать пункт назначения, в котором вы хотите сохранить выходные данные. MS Excel принимает первую ячейку выбранных данных в качестве пункта назначения . Однако для заполненного листа вы должны не забыть выбрать ячейку назначения . В противном случае Excel перезапишет ваши исходные данные. Обратите внимание, что если ваши данные изменятся, вам нужно будет снова сделать разграничение текста.
- После этого нажмите кнопку « Готово» . Excel разделит данные на два столбца с именами и фамилиями.
Разделитель помогает установить точку, в которой можно разделить любой текст. «Пробел» – это всего лишь один из видов простого разделителя. Для имени, отчества и фамилии данные можно разделить на три столбца.
Точно так же другие типы разделителей могут помочь вам разделить данные, которые могут не иметь пробелов. Давайте посмотрим на них в следующем разделе.
Типы разделителей
Другими разделителями, помимо разделителя пробелов, которые можно использовать в строках данных, являются запятая , точка с запятой , табуляция и прочее . Мы уже видели , разделитель пространства , когда мы научились использовать текст для опции столбцов. Здесь мы увидим, как работать с разделителями запятая , точка с запятой и другие .
Запятая
Допустим, у нас есть список данных о пяти друзьях и стране, в которой они живут. Мы можем разделить их имена и страну на разные столбцы, используя разделитель-запятую.
- Выберите все данные и нажмите на опцию « Данные» в верхней части экрана.
- Щелкните параметр « Текст в столбцы» в группе « Инструменты для работы с данными » в верхней части листа Excel. На экране появится окно мастера.
- Выберите вариант с разделителями и нажмите кнопку Далее .
- На этот раз выберите запятую в качестве разделителя и нажмите на указанную опцию « Далее» .
- В окне предварительного просмотра данных показано, как Excel разделит данные. Вы можете выбрать пункт назначения, в котором вы хотите сохранить выходные данные.
- После этого нажмите кнопку « Готово» , чтобы разделить данные на столбцы.
Точка с запятой
Вот небольшой набор данных с регистрационными номерами студентов и их возрастом. Вы можете разделить регистрационные номера учащихся и их возраст в разные столбцы, используя разделители точкой с запятой .
На втором шаге мастера выберите в качестве разделителя точку с запятой .
Как вы можете видеть на экране ниже, разделитель разделяет регистрационный номер и возраст учащегося на отдельные столбцы.
Другой
Параметр «Текст в столбцы» также позволяет вам выбрать разделитель, чтобы разделить любую текстовую строку через разделитель « Другой» . Например, вы можете использовать его для разделения адресов электронной почты на имена пользователей и доменные имена, разделенные знаком @ .
Для нашего образца у нас есть список идентификаторов электронной почты. Вы можете разделить имена пользователей и доменные имена на разные столбцы, используя параметр Другие разделители.
Здесь снова вам нужно выбрать опцию Other в качестве разделителя на второй странице мастера настройки.
- Выберите « Другое» в качестве параметра-разделителя.
- Снимите флажки с других разделителей.
- Введите знак @ в поле рядом с параметром Другое .
- По завершении нажмите кнопку « Далее» .
- Используйте окно предварительного просмотра данных, чтобы увидеть, как Excel разделит данные.
- Выберите место назначения для сохранения выходных данных и нажмите кнопку « Готово» . Это разделит адрес электронной почты на имена пользователей и имена доменов в отдельных ячейках.
Настройте текст в столбцы, чтобы упростить преобразование
Вы можете настроить функцию Text to Columns в соответствии с данными, которые вы хотите разделить.
Классификатор текста
Вы можете сообщить Excel, где строка текста начинается и заканчивается символом квалификатора текста . Квалификатор текста обрабатывает данные между двумя квалификаторами текста как одно значение независимо от каких-либо разделителей в квалификаторах текста. Итак, если значение ячейки – «Нил, Армстронг», 12 , и вы указываете апостроф в качестве квалификатора текста и запятую в качестве разделителя, тогда Excel буду относиться Нил Армстронг как одно значение и 12 как другое значение. Excel проигнорирует запятую между «Нил» и «Армстронг».
Если в данных не указан квалификатор текста , все значения будут разделены на разные ячейки с запятой в качестве разделителя.
Используя квалификатор текста, вы можете указать Excel, какие символы отмечают начало и конец информации, которую вы хотите импортировать в Excel.
Предварительный просмотр данных
В поле предварительного просмотра данных отображается окончательный результат, поскольку он будет разделен на разные столбцы на листе.
Вы можете использовать это поле, чтобы проверить вывод, прежде чем закончить преобразование текста.
Относитесь к последовательным разделителям как к одному
Этот вариант полезен, если ваши данные содержат разделитель из более чем одного символа или если ваши данные содержат несколько разделителей. Например, если значение ячейки Neil ,; Армстронг,; 12 , вы можете выбрать « Обрабатывать последовательные разделители как один».
Если вы не отметите этот параметр, MS Excel будет рассматривать точку с запятой и запятую как два разных разделителя и разбивать ячейки на пять столбцов.
Таким образом, эта функция избавит вас от множества проблем при наличии нескольких разделителей.
Квалификаторы текста жизненно важны, когда вы хотите анализировать громоздкие или сложные данные. Разделители помогают нам отделить данные из одной ячейки.
После импорта данных и расстановки их с помощью разделителей вы можетеразделить данные на отдельные листы .
Организация данных в MS Excel – фундаментальный навык. В аналитике данных первым шагом к осмыслению данных является их организация. И разделение данных на отдельные ячейки – первый шаг к этому.









































































