Как разделить текст в ячейке Excel?
Добрый день уважаемый читатель!
В статье я хочу рассмотреть вопрос о том, как и какими способами, возможно, разделить текст в ячейке, который оказался склеен! Если вы часто работаете с импортированными данными в Excel, то периодически встречаете такие проблемы как выгруженные точки вместо запятых, неправильный формат данных, слепленные слова или значения и многое другое. На этот случай Excel предоставляет несколько возможностей по нормализации данных и у каждого из них есть свои плюсы и минуса.
Разобрать слитый текст на необходимые составляющие возможно произвести с помощью:
Мастер разбора текстов
Рассмотрим самый простой способ разделить текст в ячейке, не по сути, а по исполнению. Для примера, очень наглядно это можно продемонстрировать на ФИО в одной ячейке, которые необходимо разделить на отдельные столбики для удобства сортировки и фильтрации.
Для выполнения задачи вызываем диалоговое окно «Мастер текстов (разбор)» и в 3 шага разделяем текст:
- Для начала нужно выделить данные, которые необходимо разделить, следующим шагом на вкладке «Данные» в разделе «Работа с данными» нажимаете иконку «Текст по столбцам» и в вызванном диалоговом окне мастера указываем формат рабочего текста. Выбираем 2 вида форматов:
- С разделителями – это когда существует текст или символ, который условно будет отделять будущее содержимое отдельных ячеек;
- Фиксированной ширины – это когда при помощи пробелов в тексте имитируется столбики одинаковой ширины.
- Вторым шагом, в нашем примере, указываем символ, выполняющий роль разделителя. В случаях, когда в тексте идут подряд пару разделителей, несколько пробелов, к примеру, то установка флажка для пункта «Считать последовательные разделители одним» укажет для Excel принимать их за один разделитель. Дополнительное условие «Ограничитель строк» поможет указать, что текстовые значения, содержащиеся в кавычках не делить (к примеру, название фирмы «Рудольф, Петер и Саймон»);
- Последним шагом, для уже разделённых столбиков, нужно указать в диалоговом окне мастера, предварительно выделив их, выбрать необходимый формат получаемых данных:
- Общий – не проводит изменения данных, оставляя их в первоначальном виде, будет оптимальным выбором в большинстве случаев;
- Текстовый – данный формат, в основном, необходим для столбиков с числовыми значениями, которые программа в обязательном порядке должна интерпретировать как текст. (К примеру, это числа с разделителем по тысяче или номер пластиковой карточки);
- Дата – этот формат используется для столбиков с датами, кстати, формат самой даты можно выбрать в выпадающем списке.
В случае, когда будете использовать символы, которые не похожи на стандартные, назначенные в региональных настройках, можете использовать кнопку «Подробнее» для правильного их распознавания.
Рассоединяем текст с помощью формул
Для этого способа нам понадобятся возможности сочетаний функций ПОИСК и ПСТР. При помощи функции ПОИСК мы будем искать все пробелы, которые есть между словами (например, между фамилией, именем и отчеством). Потом функцией ПСТР выделяем необходимое количество символов для дальнейшего разделения.
И если с первыми двумя словами понятно, что и как разделять, то разделителя для последнего слова нет, а это значит что нужно указать в качестве аргумента условно большое количество символов, как аргумент «число_знаков» для функции ПСТР, например, 100, 200 или больше.
А теперь поэтапно рассмотрим формирование формулы для разделения текста в ячейке:
- Во-первых, нам необходимо найти два пробела, которые разделяют наши слова, для поиска первого пробела нужна формула: =ПОИСК(» «;B2;1), а для второго подойдет: =ПОИСК(» «;B2;C2+1);
- Во-вторых, определяем, сколько символов нужно выделить в строке. Поскольку позиции разделителя мы уже определили, то символов для разделения у нас будет на один меньше. Значит, будем использовать функцию ПСТР для изъятия слов, с ячейки используя как аргумент «количество_знаков» результат работы предыдущей формулы. Для определения первого слова (Фамилии) нужна формула: =ПСТР(B2;1;ПОИСК(» «;B2;1)), для определения второго значения (Имя): =ПСТР(B2;ПОИСК(» «;B2;1)+1;ПОИСК(» «;B2;ПОИСК(» «;B2;1)+1) -ПОИСК(» «;B2;1)), а теперь определим последнее значение (Отчество): =ПСТР(B2;ПОИСК(» «;B2;ПОИСК(» «;B2;1)+1)+1;100).
В результате мы разделили ФИО на три слова, что позволит с ними эффективно работать.
Если же значение в ячейке будете делить на две части, то ищете только один пробел (или иной разделитель), а вот чтобы разделить более 4 слов, в формулу добавьте поиск необходимых разделителей.
Выдергиваем слова с помощью макросов VBA
Рассмотрим два способа разделить текст в ячейке:
- Выдергиваем отдельные слова по разделителю;
- Делим текст без пробелов.
Способ №1.
Поскольку вас интересует автоматическое деление текста, значит надо написать хорошую функцию на VBA и внедрить ее в рабочую книгу. Для начала переходим на вкладку «Разработчик» и выбираем «Visual Basic» или вызываем эту возможность с помощью горячего сочетания клавиш Alt+F11. (детальнее в статье «Как создать макрос в Excel»).
Создаем новый модуль в меню «Insert» наживаем пункт «Module» и переносим в него нижеприведенный код:
Разбить по строкам/столбцам
Данная функция является частью надстройки MulTEx
- Описание, установка, удаление и обновление
- Полный список команд и функций MulTEx
- Часто задаваемые вопросы по MulTEx
Скачать MulTEx
Вызов команды:
MulTEx -группа Ячейки/Диапазоны —Диапазоны —Разбить по строкам/столбцам
Эта команда разбивает данные во всех выделенных ячейках на части, используя в качестве разделителя указанные символ/символы. Главная особенность — в отличие от стандартной команды Excel «Разбить по столбцам», данная команда заносит результат разбиения данных в строки либо столбцы в одну строку/столбец, а не каждую часть в свой столбец. К тому же в стандартной команде Excel нет возможности указать несколько символов — только один.
Диапазон значений — указывается диапазон ячеек, данные которых необходимо разбить. Может быть как одним столбцом/строкой, так и диапазоном, состоящим из нескольких строк и нескольких столбцов.
Разделитель — указывается символ (или группа символов), который будет применен в качестве разделителя. Если разделитель не указан, то появится сообщение, информирующее об этом. В сообщении будет предложено использовать разделитель по умолчанию (Пробел). В случае отказа Вы сможете указать необходимый разделитель. Данные, внесенные ранее не будут утеряны.
-
Специальный — можно добавить в поле Разделитель один из специальных символов: неразрывный пробел или перенос на строки. Стандартно такие символы невозможно ввести с клавиатуры, но они могут часто встречаться в ячейках. Например, эти символы часто применяется в выгрузках из различных программ(вроде 1С): неразрывный пробел для разделения цифр или слов, которые не надо переносить на строки, а перенос на строки — для разделения основания платежей и иной информации.
Если в поле Разделитель уже указан какой-либо символ, то при выборе дополнительно специального символа будет показано сообщение:
Поместить результат:
Разделитель результата:
Доступно только если в качестве вывода результата указана одна ячейка. По умолчанию разделителем является перенос на строки. В качестве разделителя можно указать любой символ или группу символов.
- Перенос на строки — каждое новое результирующее значение в ячейке будет записано с новой строки:
- Произвольный — любой символ, буква, цифра или группа символов(словосочетания, цифры и т.п.).
Транспонировать — если Диапазон значений представляет собой столбец, то данные после обработки будут помещены в одну строку. Если Диапазон значений — строка, то данные будут помещены в столбец. Недоступно при выводе результата в одну ячейку.
Финансы в Excel
Текст по столбцам и строкам
Подробности Создано 03 Май 2012
Большинство опытных пользователей Excel умеют пользоваться встроенным интерфейсным средством для разбивки текстовой строки на составляющие с использованием символа разделителя. В некоторых ситуациях может оказаться удобнее разобрать текст не с помощью интерфейса, а с использованием формул. Как ни странно, но Excel не имеет встроенной стандартной функции рабочего листа для проведения таких действий. Это тем более непонятно, так как VBA поддерживает стандартную функцию Split, облегчающую решение подобных задач.
В примере созданы 2 сложные формулы для разбивки текста по столбцам и строкам. Их также можно использовать для выборки текстовой составляющей по порядковому номеру.
Напомним, что интерфейсное средство «Текст по столбцам» доступно через меню и ленту Excel Данные Текст по столбцам.
В файле-примере показано два типа формулы для разделения текста на составляющие:
- текст по столбцам (диапазон B5:K6)
- текст по строкам (диапазон A10:B19)
В качестве разделителя текста используется символ «,» (запятая). В служебных целях задействованы еще два символа » » (математические знаки «меньше» и «больше»). Эти символы не могут находится в исходном тексте, в противном случае формула будет работать неверно. И разделитель, и служебные символы можно заменить на любые другие, главное, чтобы они не могли быть задействованы в исходном тексте. Для замены исправьте константы во всех местах формулы.
Формула в ячейке B5 и далее по столбцам обрабатывает исходный текст из ячейки A5:
Формула в ячейке A10 и далее по строкам обрабатывает исходный текст из ячейки A9:
Формулы ссылаются только на исходный текст и не требуют наличия других предварительно вычисленных составляющих. Варианты отличаются только автоматическим определением порядкового номера текстовой составляющей, в первом случае — это подформула для вычисления номера от количества столбцов: COLUMNS($B:B); во втором — от количества строк: ROWS($10:10). При копировании диапазон столбцов и строк автоматически расширяется, вычисляя таким образом нужное значение. Вместо этой подформулы можно задать константу или переменную, определяющую требуемый номер. Из результатирующих текстовых значений убираются лишние пробелы при помощи функции TRIM().
Наверняка можно сделать формулу покороче, используя другие методы поиска. Это просто наш вариант — оригинальный, нигде не подсмотренный 😉
Как разделить текст в ячейке Excel?
Добрый день уважаемый читатель!
В статье я хочу рассмотреть вопрос о том, как и какими способами, возможно, разделить текст в ячейке, который оказался склеен! Если вы часто работаете с импортированными данными в Excel, то периодически встречаете такие проблемы как выгруженные точки вместо запятых, неправильный формат данных, слепленные слова или значения и многое другое. На этот случай Excel предоставляет несколько возможностей по нормализации данных и у каждого из них есть свои плюсы и минуса.
Разобрать слитый текст на необходимые составляющие возможно произвести с помощью:
Мастер разбора текстов
Рассмотрим самый простой способ разделить текст в ячейке, не по сути, а по исполнению. Для примера, очень наглядно это можно продемонстрировать на ФИО в одной ячейке, которые необходимо разделить на отдельные столбики для удобства сортировки и фильтрации.
Для выполнения задачи вызываем диалоговое окно «Мастер текстов (разбор)» и в 3 шага разделяем текст:
- Для начала нужно выделить данные, которые необходимо разделить, следующим шагом на вкладке «Данные» в разделе «Работа с данными» нажимаете иконку «Текст по столбцам» и в вызванном диалоговом окне мастера указываем формат рабочего текста. Выбираем 2 вида форматов:
- С разделителями – это когда существует текст или символ, который условно будет отделять будущее содержимое отдельных ячеек;
- Фиксированной ширины – это когда при помощи пробелов в тексте имитируется столбики одинаковой ширины.
- Вторым шагом, в нашем примере, указываем символ, выполняющий роль разделителя. В случаях, когда в тексте идут подряд пару разделителей, несколько пробелов, к примеру, то установка флажка для пункта «Считать последовательные разделители одним» укажет для Excel принимать их за один разделитель. Дополнительное условие «Ограничитель строк» поможет указать, что текстовые значения, содержащиеся в кавычках не делить (к примеру, название фирмы «Рудольф, Петер и Саймон»);
- Последним шагом, для уже разделённых столбиков, нужно указать в диалоговом окне мастера, предварительно выделив их, выбрать необходимый формат получаемых данных:
- Общий – не проводит изменения данных, оставляя их в первоначальном виде, будет оптимальным выбором в большинстве случаев;
- Текстовый – данный формат, в основном, необходим для столбиков с числовыми значениями, которые программа в обязательном порядке должна интерпретировать как текст. (К примеру, это числа с разделителем по тысяче или номер пластиковой карточки);
- Дата – этот формат используется для столбиков с датами, кстати, формат самой даты можно выбрать в выпадающем списке.
В случае, когда будете использовать символы, которые не похожи на стандартные, назначенные в региональных настройках, можете использовать кнопку «Подробнее» для правильного их распознавания.
Рассоединяем текст с помощью формул
Для этого способа нам понадобятся возможности сочетаний функций ПОИСК и ПСТР. При помощи функции ПОИСК мы будем искать все пробелы, которые есть между словами (например, между фамилией, именем и отчеством). Потом функцией ПСТР выделяем необходимое количество символов для дальнейшего разделения.
И если с первыми двумя словами понятно, что и как разделять, то разделителя для последнего слова нет, а это значит что нужно указать в качестве аргумента условно большое количество символов, как аргумент «число_знаков» для функции ПСТР, например, 100, 200 или больше.
А теперь поэтапно рассмотрим формирование формулы для разделения текста в ячейке:
- Во-первых, нам необходимо найти два пробела, которые разделяют наши слова, для поиска первого пробела нужна формула: =ПОИСК(» «;B2;1), а для второго подойдет: =ПОИСК(» «;B2;C2+1);
- Во-вторых, определяем, сколько символов нужно выделить в строке. Поскольку позиции разделителя мы уже определили, то символов для разделения у нас будет на один меньше. Значит, будем использовать функцию ПСТР для изъятия слов, с ячейки используя как аргумент «количество_знаков» результат работы предыдущей формулы. Для определения первого слова (Фамилии) нужна формула: =ПСТР(B2;1;ПОИСК(» «;B2;1)), для определения второго значения (Имя): =ПСТР(B2;ПОИСК(» «;B2;1)+1;ПОИСК(» «;B2;ПОИСК(» «;B2;1)+1) -ПОИСК(» «;B2;1)), а теперь определим последнее значение (Отчество): =ПСТР(B2;ПОИСК(» «;B2;ПОИСК(» «;B2;1)+1)+1;100).
В результате мы разделили ФИО на три слова, что позволит с ними эффективно работать.
Если же значение в ячейке будете делить на две части, то ищете только один пробел (или иной разделитель), а вот чтобы разделить более 4 слов, в формулу добавьте поиск необходимых разделителей.
Выдергиваем слова с помощью макросов VBA
Рассмотрим два способа разделить текст в ячейке:
- Выдергиваем отдельные слова по разделителю;
- Делим текст без пробелов.
Способ №1.
Поскольку вас интересует автоматическое деление текста, значит надо написать хорошую функцию на VBA и внедрить ее в рабочую книгу. Для начала переходим на вкладку «Разработчик» и выбираем «Visual Basic» или вызываем эту возможность с помощью горячего сочетания клавиш Alt+F11. (детальнее в статье «Как создать макрос в Excel»).
Создаем новый модуль в меню «Insert» наживаем пункт «Module» и переносим в него нижеприведенный код:
Разделить текст по столбцам в Excel
Приложение Excel позволяет разбивать текст в ячейках столбца на несколько подстрок и располагать их в отдельных колонках. При этом для разбивки используется специальный разделитель, который выбирается пользователем для каждого конкретного случая.
Для примера рассмотрим данные CSV файла. Каждая подстрока в нем разделена символом «точка с запятой» и помещена в двойные кавычки. Вставьте их в любое место Вашей рабочей книги:
Перед разбивкой данных требуется выделить нужный диапазон, а затем кликнуть по пиктограмме «Текст по столбцам» в области «Работа с данными» на ленте вкладки «Данные».
На экране будет отображено окно мастера распределения текста:
Весь процесс состоит из трех шагов.
На первом этапе требуется выбрать формат данных для разделения, а именно указать, содержит ли текст разделители, или каждый будущий столбец имеет свою фиксированною ширину, т.е. длину текста. Последний вариант рассматриваться не будет, так как он ничем не отличается от первого кроме следующего шага, где требуется самостоятельно выбрать на линейке ширину поля.
Выберите пункт «С разделителями» и нажмите кнопку «Далее».
Следующим действием выбирается символ-разделитель. Им может быть любой из знаков, включая буквы и цифры.
Обратите внимание на то, что если разделители идут подряд, то каждый из них образует новый столбец, т.е. 2 таких символа создают 1 пустой столбец, 3 – 2 и т.д. Чтобы избавиться от этого часто нужного действия достаточно поставить галочку на поле «Считать последовательные разделители одним».
Может возникнуть ситуация, когда подстрока для создания столбца содержит символ-разделитель, который таковым не является. В подобных случаях строки должны быть заключены в одинарные либо двойные кавычки (в нашем примере исходных данных это присутствует), а в окне мастера нужно выбрать, какой ограничитель строк применить.
Имейте в виду то, что символы-разделители и ограничители удаляются из содержимого разделенных данных.
На любом описанным выше этапе можно нажать кнопку «Готово» для предоставления возможности приложению Excel самостоятельно завершить разделение текста в ячейках столбца. Но если Вы хотите контролировать весь процесс, то продолжайте нажимать «Далее».
Завершающим шагом является назначение форматирования новым колонкам и указания места для их расположения.
Из возможных настроек предоставлено только несколько форматов (типов данных), а поместить распределенный текст можно только на текущем листе.
У Вас недостаточно прав для комментирования.
Разделение текста на столбцы с помощью мастера распределения текста по столбцам
Смотрите также без цитирования обойтись…: Отлично, спасибо большое.Юрий М перевести число и
-
ее отображение. обладают функционалом простейшего1 Из строки формул.
-
обозначить мой разделитель arrTmp1(j) .Cells(lCnt, 3) Explicit Sub jjj_split() в файл и: В файле на
-
ячейки, кликаете, чтобы указать способ распределения текста по листе, где должныС помощью мастера распределенияmer1k А теперь последний: В примере была
-
сумму прописью вВ режиме редактирования работают текстового редактора. Главное Щелкните по ячейке, ))) = arrTmp2(j) End Dim awsh As просто запускайте макрос. копии листа1 давитеТекст по столбцам разбиения текста на
-
столбцам см. в отображаться разделенные данные. текста по столбцам
-
: Ну да, цитаты вопросик думаю. Как одна строка и Excel. все стандартные комбинации
-
отличие – это в которой необходимо…..надеюсь понятно написала With ‘ wshResult Worksheet Dim wshResult
-
Или просто - кнопку с побудительнойи указываете в
support.office.com
Распределение содержимого ячейки на соседние столбцы
разных столбцах. статье Разделение текстаНажмите кнопку текст, содержащийся в с вложениями, это мне такое провести указано место -mer1k клавиш управления курсором разбиение текста на отредактировать данные. В )) Next j Next As Worksheet Dim откройте файл моего надписью и проверяйте качестве разделителей ЗапятуюПримечание: по столбцам сГотово одной ячейке, можно беспорядочно конечно…Будем знать)
с 12000 строками? куда выгружать результат.: Добрый день. Скажите, клавиатуры, как и строки. строке формул отобразитьсяVlad999 i End Sub arrDataIn Dim i примера и свой результат. и пробел. Ячейку Для получения справки по
помощью функций..
-
разделить на несколько. В любом случае Мне ж получается Если исходных строк каким образом можно в других программах
-
Внимание! содержимое, которое доступно: СИМВОЛ(10) и есть
mts2050
As Long Dim — и запускайтеVoditel_CDROMa вывода я указал заполнению все действияМожно объединить ячейки, содержащиеПримечание:Выделите ячейку или столбец Спасибо Вам) нужно изменить макрос? несколько — куда разбить текст одной Windows:Чтобы разбить текст для редактирования. Сделайте этот разделитель.: Спасибо. n As Long макрос через Alt+F8/: Как вариант с B6 (Лист2)
-
мастера читайте статью функцию СЦЕП илиМы стараемся как с текстом, который
-
vikttur Только как правильно? выгружать результат? Может ячейки, на строки?Клавиша «DELETE» удаляет символ на строки в необходимые изменения, после
-
не совсем понялJack Famous Dim arrTmp1$(), arrTmp2$() Макрос-то делался под помощью функции SubStr(ссылка
А в итоговой Разделение текста по функцию СЦЕПИТЬ. можно оперативнее обеспечивать вы хотите разделить.: Знайте. И желательноЮрий М в соседний столбец? Поиск юзал, но
справа, а «Backspace» одной ячейке Excel
support.office.com
Помогите текст разбить на ячейки по строкам
чего нажмите Enter вопрос. Приложите файл: irakli78, mts2050, доброго Dim n2 As данные из примера. на строку, номер таблице я записал различным столбцам сВыполните следующие действия.
вас актуальными справочными
На вкладке
пройтись и исправить,: А Вы пробовалиmer1k нашел только способ слева. нужно нажать комбинацию или кликните по пример, так есть, времени суток! Недавно Long Dim jА если там фрагмента, разделитель). См.
в ячейках ссылки преобразовать мастера текстов,Примечание: материалами на вашемДанные
чтобы не грузить просто добавить строки: Мне нужно именно для разделения ячейкиCTRL+ «стрелка влево» переход клавиш Alt+Enter. Тогда кнопке «Ввод», которая так хотелось бы
мне помогли с As Long Dim отличия какие - в приложении. на ти самые
или нажмите кнопку
Диапазон, содержащий столбец, который языке. Эта страницанажмите кнопку модераторов.
и нажать на раскидать текст на на СТОЛБЦЫ. За на начало слова,
вы сможете перейти размещена в начале получить сделанный вручную. такой же проблемой. lCnt As Long
надо смотреть иirakli78 B6 и т.д.Справка вы хотите разделить
переведена автоматически, поэтомуТекст по столбцамLogin_excel кнопку? строки, чтоб и ранее спасибо. Пример а CTRL+ «стрелка
на новую строку строки формул. ДляФишкаУниверсальное решение.
Set awsh = макрос корректировать, быть: Просто не хватаетПодойдёт так, Ираклий?в мастере разделения может включать любое
ее текст может.: Привет. Подскажите, какИ не нужно дубликаты удалить, и прикрепляю. Использую майкрософт
вправо» – в в ячейке. В отмены изменений можно: Ну как-то такА как заполнить ActiveSheet With awsh может. слов благодарности!! ЧестноЮрий М текста столбцов.
количество строк, но содержать неточности иВ разнести многострочный текст меня цитировать, да
посмотреть количество номеров. 2007 конец слова. том месте текста,
нажать клавишу «Esc» )) пустые ячейки значениями
arrDataIn = .Range(«A2:C»AVKL говоря пока не: wowik7, количество переносовirakli78 он может содержать грамматические ошибки. Длямастере распределения текста по по отдельным строкам ещё и целиком.Я пробовал разбитьSmiley«HOME» смещает курсор клавиатуры где находится курсор или кнопку «Отмена»Фишка из верхних, узнаете & .Cells(.Rows.CountLarge, 1).End(xlUp).Row).Value: Добрый день Пытливый!
проверял, зашел с можно узнать программно: Добрый день! Буду не более одного нас важно, чтобы
столбцам из одной ячейки?
Зачем?!! эти данные на: mer1k, разбейте его
в начало строки, клавиатуры, появится перенос (возле кнопки «Ввод»).: ой, забыла написать, (готовый макрос в .Parent.Sheets.Add , awsh,Спасибо большое за телефона… но все
)) очень благодарен, если столбца. Это важные
эта статья былаустановите переключательBema
mer1k столбцы. Т.е. текст на столбцы с
а «END» – строки и соответственно2 Из самой ячейки. как надо ))
комментариях) 1, xlWorksheet End решение! Очень помогло равно спасибо!!Юрий М кто-нибудь посоветует как из них достаточно вам полезна. Просимс разделителями: Привет.: Прошу прощения. Просто разбивается в своей помощью «текст по в конец. начало новой. Перейдите на ячейкуVlad999Фишка With ‘ awsh в работе!) завтра посмотрю и: irakli78, зачем Вам можно разбить текст пустыми столбцами справа вас уделить паруи нажмите кнопку1. Формулой в предыдущем примере, же строке, только столбцам» и потомЕсли в тексте болееВ обычных редакторах текст и нажмите клавишу: Решение макросом в: Необходимо разбить текст Set wshResult =mts2050 обязательно сообщу! Еще объединённые ячейки? Настрадаетесь который в одной от выбранных столбец, секунд и сообщить,Далее2. Макросом пробовал. не получалось. на столбцы. Но транспонируйте. одной строки то делится на строки F2 или сделайте теме: Разбить текст
в ячейке (с ActiveSheet n =
: Подскажите как сделать раз спасибо! потом… ячейке на несколько который будет предотвратить помогла ли она
.3. Текст по Сейчас сделал, и как потом сСергей
planetaexcel.ru
Разбить текст ячейки (строки), содержащий разделитель, на строки
комбинации CTRL+HOME и нажатием клавиши Enter, по ней двойной ячейки (строки), содержащий разделителями «Alt+Enter») на
UBound(arrDataIn, 1) lCnt что бы текстirakli78Все_просто строк с соблюдением перезапись по данные, вам, с помощью
Выберите столбцам. все хорошо. Огромное этих столбцов разместить: можно так CTRL+END перемещают курсор но в Excel щелчок мышкой. Тогда
разделитель, на строки отдельные строки = 0 For разбивался не в: Хотел бы узнать,: Человек по сути некоторых параметров…
которые распространяться данные кнопок внизу страницы.
разделителиalexleoix спасибо, оочень упростили
номера в строки,Юрий М в начало или данное действие выполняет в ячейке появится
макросомGenbor i = 1
одной ячейке, а а как данный просит написать макрос,
Пример прилагаю в любой смежных Для удобства такжедля своих данных.: 4. Power Query задачу.
CyberForum.ru
Редактирование ячейки в Excel и разбиение текста на несколько строк
причем за раз?: Или так. в конец целого функцию подтверждения вода курсор клавиатуры, аЕсли ячейка содержит большой: Код =ПОДСТАВИТЬ(A1;»»;СИМВОЛ(10)) - To n arrTmp1
в нескольких и макрос использовать уже а вы наЗаранее благодарю!!! столбцах. При необходимости приводим ссылку на Например,БМВПо поводу цитирования.
Редактирование строки текста в ячейках
Можно конечно взятьmer1k
- текста. данных и переход ее размер изменится текст или сложную это символ, на = Split(arrDataIn(i, 2) соотносился между ними. в другом файле? него взъелись.wowik7 вставьте количество пустые оригинал (на английскомзапятую: 5. Word ( А что тут и скопировать строку: Спасибо. Как этим
- Примечание. Точно так же на следующую ячейку. на время редактирования. формулу, но с основании которого будет & «|», «|») Пример в файле.HugoЯ, к сожалению,: Скажите, а известно, столбцы, будет достаточно языке) .и и это не такого? Именно для в первый столбец пользоваться? Добавлять туда
редактируются: формулы, функции, Поэтому как написать После всех изменений ошибками, то нет переноситься строка (запятая, arrTmp2 = Split(arrDataIn(i,JayBhagavan
: Описка, исправьте в
Как сделать несколько строк в ячейке Excel?
не так силен сколько будет слов для хранения каждогоМожно разделить содержимого ячейкипробел шутка, копируем вставляем
этого кнопочка и
путем транспонирования. С свой текст? числа, даты и несколько строк в нажмите Enter или смысла удалять их точка с запятой, 3) & «|»,: mts2050, и Вам irakli78.xls (45.5 КБ) в макросах. Хотя в строке? Вот составные части распределенных
и распространение составные. Данные можно предварительно в word. копируем, создана. Всю жизнь одной строкой тоПопробовал свое ввести, логические значения. ячейке Excel жмите Tab или кликните вводить все данные точка и т.д.) «|») n2 =
здравия. F на G: сейчас все равно в приложенной книге данных. части нескольких смежных просмотреть в окне вставляем в excel цитирую удается, но вот но в строкиСтоит еще отметить, что Alt+Enter.
Режим редактирования
мышкой на любую заново. Рациональнее ихФишка WorksheetFunction.Max(UBound(arrTmp1, 1) -Кол-во разделителей вRange(«G» & lngI
- стараюсь написать. 4 слова иВыделите ячейку, диапазон или
- ячеек. Например, еслиОбразец разбора данных )Юрий М с несколькими никак.
- текст он кидает простой режим редактированияОбратите внимание, что после другую ячейку. Для
- просто отредактировать.: а как в 1, UBound(arrTmp2, 1) соседних по горизонтали & «:G» &Юрий М все разделены запятой
весь столбец, где лист содержит.vikttur
: Цитировать нужно не Они раскидывается на только с первой позволяет задавать тексту разделения одной строки отмены редактирования нажмите
Для редактирования значений в формуле обозначить знак — 1) ReDim ячейках всегда одинаковое? lngI + UBound(strA)).Merge: Кто «взъелся»? ))
и пробелом. Известно, содержатся текстовые значения,Полное имяНажмите кнопку
exceltable.com
Разделение текста в ячейке, на строки.
: 6. Ручка + бездумно, а с столбцы. строки. А как свой стиль оформления: в ячейке на клавишу «Esc». Excel предусмотрен специальный «разделение», которое ставится Preserve arrTmp1(0 Tomts2050Пытливый
Я только предупредил что разделение будет которые требуется разделить.столбца, можно разделить столбецДалее лист бумаги в
умом. И толькоВот снова скинул
с остальными быть? полужирный, курсив, подчеркнутый
две и болееПримечание. При редактировании не режим. Он максимально при помощи клавиш
n2) ReDim Preserve: Да количество разделителей: Если структура таблицы про объединение )) таким же иНа вкладке на двух столбцов. клеточку то, что ДЕЙСТВИТЕЛЬНО табличку. Как например У меня этих и цвет. с помощью клавиш
забывайте о кнопках прост, но гармонично Alt+Enter, т.е. перенос arrTmp2(0 To n2) совпадает. такая же (столбцы А макрос там слов обязательно 4Данные
—Выберите значение в разделеБМВ нужно. Ну вот все это разделить, строк почти 12000,
Обратите внимание, что стиль Alt+Enter, то автоматически отмены / повтора объединил в себе на др.строку……..как его For j =JayBhagavan и шапка расположены не очень и ?в группеимениФормат данных столбца: vikttur, — Почему зачем, например, в причем уместив только в каждой строке текста не отображается активируется опция «формат
действий на панели толь самые полезные записать в формулу? 0 To n2: В примере - так, как в
сложный…Как вариант, метод
Работа с даннымииили используйте то, не в линейку? цитате в строки в бывает и по в строке формул, ячеек»-«выравнивание»-«перенос по словам».
быстрого доступа. Или функции текстового редактора.Приведенную Вами формулу, lCnt = lCnt не совпадает:4 и
примере), а такжеwowik7 с использованием «Данные»нажмите кнопку
Фамилии которое Excel выберетИли от ExCELL»Прикрепленные файлы первом же столбце? одному номеру, а поэтому его удобнее Притом что сама
о комбинациях клавиш Ничего лишнего в я уже видела + 1 With 3. Учту. нет ячеек в
: Изменил своё первое —> «Работа сТекст по столбцамстолбцом. автоматически. отталкиваемся?primer 002.xlsm (17.68Юрий М
есть даже и
задавать, редактируя непосредственно эта функция не CTRL+Z и CTRL+Y. нем нет. здесь в других
wshResult .Cells(lCnt, 1)JayBhagavan столбце D с сообщение. Прикрепил там данными» —> «Текст.
Советы:В полеvikttur КБ)»? Что это: Вариант.
planetaexcel.ru
Разделение текста по строкам
по 20 номеров в самой ячейке. разбивает строку наРедактировать содержимое ячеек можно
вопросах, но я = arrDataIn(i, 1)
: запускать когда целевой
одним словом -
файл по столбцам»
Следуйте инструкциям в
Поместить в: Именно. Без ячеек даёт? Да иmer1k через запятую.Читайте так же: как слова, а оптимизирует
В режиме редактирования, ячейки двумя способами: не знаю, как .Cells(lCnt, 2) =
лист активный Option то переносите кодПытливыйВыделяете две нужныхСтолбцах мастера
Сведения об альтернативном способевыберите место на никак
planetaexcel.ru
вообще можно было
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Еще…Меньше
Windows: 2208 (сборка 15601)
Mac: 16.65 (сборка 220911)
Веб: представлено 15 сентября 2022
г.
iOS: 2.65 (сборка 220905)
Android: 16.0.15629
Разделяет текстовые строки с помощью разделителей столбцов и строк.
Функция TEXTSPLIT работает так же, как мастер преобразования текста в столбцы, но в виде формулы. Она позволяет разбивать на столбцы или строки. Эта функция обратна функции ОБЪЕДИНИТЬ.
Синтаксис
=ТЕКСТРАЗД(text,col_delimiter,[row_delimiter],[ignore_empty], [match_mode], [pad_with])
Синтаксис функции ТЕКСТРАЗД поддерживает следующие аргументы.
-
текст Текст, который нужно разделить. Обязательный.
-
разделитель_столбцов Текст, помечающий точку, в которой текст разлит по столбцам.
-
разделитель_строк Текст, помечающий точку, в которую следует слить текст вниз по строкам. Необязательный.
-
игнорировать_пустые Укажите значение TRUE, чтобы игнорировать последовательные разделители. По умолчанию имеет значение FALSE, которое создает пустую ячейку. Необязательный.
-
match_mode Укажите значение 1, чтобы выполнить совпадение без учета регистра. По умолчанию используется значение 0, которое выполняет сопоставление с учетом регистра. Необязательный.
-
заполняющее_значение Значение, которым нужно дополнить результат. Значение по умолчанию: #Н/Д.
Замечания
Если имеется несколько разделителей, необходимо использовать константу массива. Например, для разделения одновременно с помощью запятой и точки используйте формулу =ТЕКСТРАЗД(A1;{«,»,».»}).
Примеры
Скопируйте пример данных и вставьте их в ячейку A1 нового листа Excel. При необходимости измените ширину столбцов, чтобы видеть все данные.
Разделите имя и фразу с помощью общего разделителя.
Данные |
Дарья Леонидовна Санникова |
Быть или не быть |
Формулы |
=TEXTSPLIT(A2, » «) |
=TEXTSPLIT(A3, » «) |
На следующем рисунке показаны результаты.
Разделите константы массива в A2 на массив 2X3.
Данные |
||||
1,2,3;4,5,6 |
||||
Формулы |
||||
=ТЕКСТРАЗД(A2;»,»,»;») |
На следующем рисунке показаны результаты.
Данные |
||||||
Делай. Или не делай. Не пробуй. – Аноним |
||||||
Формулы |
||||||
=ТЕКСТРАЗД(A2;».») |
||||||
=ТЕКСТРАЗД(A2;{«.»,»-«}) |
||||||
=ТЕКСТРАЗД(A2;{«.»,»-«};;ЛОЖЬ) |
На следующем рисунке показаны результаты.
Данные |
|||
Делай. Или не делай. Не пробуй. – Аноним |
|||
Формулы |
|||
=ТЕКСТРАЗД(A2;;».») |
На следующем рисунке показаны результаты.
Данные |
|||
Делай. Или не делай. Не пробуй. – Аноним |
|||
Формулы |
|||
=ТЕКСТРАЗД(A2;;{«.»,»-«}) |
На следующем рисунке показаны результаты.
Данные |
|||
Делай. Или не делай. Не пробуй. – Аноним |
|||
Формулы |
|||
=ТЕКСТРАЗД(A2;;{«.»,»-«};ИСТИНА) |
На следующем рисунке показаны результаты.
Совет Чтобы удалить ошибку #Н/Д, используйте функцию ЕСНД. Можно также добавить аргумент «заполняющее_значение».
Данные |
|||||
Делай. Или не делай. Не пробуй. – Аноним |
|||||
Формулы |
|||||
=ТЕКСТРАЗД(A2;» «,».»;ИСТИНА) |
На следующем рисунке показаны результаты.
См. также
Текстовые функции (справочник)
Функция ТЕКСТДО
Функция ТЕКСТПОСЛЕ
Функция ОБЪЕДИНИТЬ
Функция CONCAT
Нужна дополнительная помощь?
Допустим, вот таблица с тремя столбцами на рабочем листе, в первом перечислены уровни цен, во втором перечислены названия фруктов с разделителями-запятыми в ячейках, а в третьем столбце перечислены цены на фрукты. Задача состоит в том, чтобы разделить имена фруктов с разделителями на строки и повторить соответствующие уровни цен и строки цен, как показано ниже:
Здесь введите два метода для решения этой задачи.
Разделить текст с разделителями на строки с помощью VBA
Разделить текст с разделителями на строки с помощью Power Query
Разделить текст с разделителями на строки с помощью VBA
Вот код VBA, который может быстро разделить текст с разделителями на строки.
1. Нажмите другой + F11 ключи для включения Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить вкладка> Модули для создания нового пустого модуля.
3. Скопируйте и вставьте приведенный ниже код в пустой модуль.
VBA: разделить текст с разделителями на строки
Public Sub SplitTextInCellsToRows()
'UpdatebyExtendoffice20220622
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)
Debug.Print xRg.Address
xArr = Split(xRg, xSplitChar)
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(xFFNum)
Next
xRg.EntireRow.Delete
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
4. Нажмите F5 ключ, чтобы нажать кнопку запуска чтобы активировать код, появляется диалоговое окно для выбора столбца, который исключает заголовок, содержащий текст с разделителями, необходимый для разделения на строки. Нажмите OK.
5. Затем появится второе диалоговое окно для ввода используемого вами разделителя. Здесь вводится запятая (,). Нажмите OK.
Теперь тексты с разделителями были разбиты на строки, а другие связанные столбцы были повторены.
VBA изменит исходные данные, перед этим лучше сохранить их копию.
Разделить текст с разделителями на строки с помощью Power Query
Если вы используете Excel 2013 или более поздние версии, Power Query будет хорошим выбором для решения этой работы.
1. Выберите диапазон данных, чтобы нажать Данные > Из таблицы/диапазона.
2. Во всплывающем Создать таблицу диалог, проверьте В моей таблице есть заголовки как вам нужно, и нажмите OK.
Тогда Редактор Power Query отображается окно, и данные были показаны в нем.
3. Щелкните столбец, в котором вы хотите разделить тексты с разделителями на строки, и щелкните Преобразование вкладка> Разделить столбец > По разделителю.
Или вы также можете выбрать столбец и щелкнуть правой кнопкой мыши заголовок столбца, чтобы выбрать эту функцию в контекстном меню.
4. в Разделить столбец по разделителю окно, выберите разделитель, как вам нужно из Выберите или введите разделитель раздел, затем выберите Каждое появление разделителя вариант, а затем развернуть Дополнительные параметры раздел на выбор Ряды вариант. Нажмите OK.
Теперь тексты с разделителями разбиты на строки.
5. Затем закройте окно, появится диалоговое окно, нажмите Сохранить кнопку.
Затем будет создан новый лист с таблицей.
Прочие операции (статьи)
Как изменить цвет строки на основе группы в Excel?
В Excel раскрашивание каждой второй строки может быть проще для большинства из нас, но, пробовали ли вы когда-нибудь раскрасить строки поочередно в зависимости от изменения значения столбца — Столбец A, как показано на следующем снимке экрана, в этой статье я расскажу о том, как для изменения цвета строки в зависимости от группы в Excel.
Как уменьшить размер файла Excel?
Иногда для открытия или сохранения требуется несколько минут, если файл Excel слишком велик. Для решения этой проблемы здесь, в этом руководстве, рассказывается, как уменьшить размер файла Excel, удалив содержимое или форматы, которые не нужны или никогда не используются.
Excel: как создать или вставить закладку
Вы когда-нибудь представляли себе создание или вставку закладки для быстрого перехода к определенному диапазону данных, когда на листе или в книге много данных?
Как применить затенение к нечетным или четным (альтернативным) строкам / столбцам в Excel?
При разработке рабочего листа многие люди склонны применять затенение к нечетным или четным (альтернативным) строкам или столбцам, чтобы сделать рабочий лист более наглядным. В этой статье будут показаны два метода применения затенения к нечетным или четным строкам / столбцам в Excel.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы и хранение данных; Разделить содержимое ячеек; Объедините повторяющиеся строки и сумму / среднее значение… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Избранные и быстро вставляйте формулы, Диапазоны, диаграммы и изображения; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Группировка сводной таблицы по номер недели, день недели и другое … Показать разблокированные, заблокированные ячейки разными цветами; Выделите ячейки, у которых есть формула / имя…
Вкладка 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, используя различные комбинации функций, а также специальные инструменты. Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Читайте также: