Как разделить текст в excel с помощью формулы

Как разделить длинный текст из одной ячейки Excel по любому количеству ячеек? Как использовать несколько разделителей в шаблоне? Пошаговая инструкция с формулами и пояснениями.

Проверьте, как это работает!

  1. Выделите ячейку или столбец с текстом, который вы хотите разделить.

  2. На вкладке Данные нажмите кнопку Текст по столбцам.

  3. В мастере распределения текста по столбцам установите переключатель с разделителями и нажмите кнопку Далее.

  4. Выберите разделители для своих данных. Например, запятую и пробел. Данные можно предварительно просмотреть в окне Образец разбора данных.

  5. Нажмите кнопку Далее.

  6. В поле Поместить в выберите место на листе, где должны отображаться разделенные данные.

  7. Нажмите кнопку Готово.

Делим текст вида ФИО по столбцам.

Если выяснение загадочных поворотов формул 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- го пробела, и функция ПРАВСИМВ их и извлекает.

Вот результат нашей работы по разделению фамилии, имени и отчества из одной по отдельным ячейкам.

Видео: Разделить текст по столбцам в Excel / Text to Columns (Урок 6) [Eugene Avdukhov, Excel Для Всех]

Несомненно, это очень важный и полезный и инструмент в Excel, который значительно может упростить множество задач. Но у данного способа есть небольшой недостаток.

Если вам, например, постоянно присылают данные в определенном виде, а вам постоянно необходимо их делить, то это занимает определенное время, кроме того, если данные вам прислали заново, то вам снова нужно будет проделать все операции.

Каким образом выполняется разбивка ячеек:

  • Сначала нужно поставить курсор на разделяемую ячейку.
  • Далее при помощи клика правой кнопкой мыши открыть контекстное меню. В меню выбрать пункт «Вставить» и выбрать, что вы хотите вставить:

    ВставитьВставить

  •  «Столбец» при горизонтальном делении;

    Добавление столбцаДобавление столбца

  • Аналогичную вставку строки или столбца можно произвести при помощи инструмента «Вставить» расположенного на панели инструментов в разделе (во вкладке)  «Главная».Кнопка "Вставить" на панелиКнопка «Вставить» на панели

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

  • Для деления нужно снова поставить курсор в ячейку с информацией.
  • Войти во вкладку «Данные» на панели инструментов.
  • Нажать кнопку «Текст по столбцам».

    Текст по столбцам (кнопка)Текст по столбцам (кнопка)

  • В появившемся окне выбрать в качестве разделителя пробел или знак пунктуации(запятую, точку, двоеточие и т.д.)

    РазделительРазделитель

  • Нажать «Готово»

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

Результат деления ячекРезультат деления ячеек

Как разделить текст по столбцам в экселе

Мне по работе пришлось разделять время в ячейках таблицы excel , пример: 0:00-15:00. А между значениями разделитель точка с запятой 0:00-15:00;16:00-17:00;22:00-24:00. Эти данные в таблице по дням, в ячейках разное количество значений между разделителем. Необходимо было разделить время по каждому дню, в столбик под датой проставить время, разделить время на начало и конец, посчитать разницу и все сложить вместе…

Читайте также: СЦЕПИТЬ в эксель

Приступаем к делению первой части текста — Фамилии

Для этого мы воспользуемся функцией ПСТР, напомню синтаксис данной функции:

=ПСТР(текст- начальная_позиция- число_знаков), где

  • текст — это ФИО, в нашем примере это ячейка A2;
  • начальная_позиция — в нашем случае это 1, то есть начиная с первой буквы;
  • число_знаков — мы видим, что фамилия состоит из всех знаков, начиная с первой буквы и до 1-го пробела. А позиция первого пробела нам уже известна. Это и будет количество знаков минус 1 знак самого пробела.

Формула будет выглядеть следующим образом:

=ПСТР(A2-1-H2-1)

См. также

Разделение текста по столбцам с помощью функций

Нужна дополнительная помощь?

Текст по столбцам Excel 2010

Главное отличие функционала «Текст по столбцам» 2010 Excel от 2003 это расположение кнопки вызова (так как интерфейс 2010 офиса значительно отличается от 2003), остальное практически все то же самое, те же 3 шага, те же окошки, в общем, я думаю скриншоты получаются такие же, поэтому я их приводить здесь не буду, единственное покажу, откуда вызывается данная возможность в 2010 Excel.

Также выделяем необходимый столбец, на ленте переходим на вкладку «Данные» и находим значок «Текст по столбцам»

excel_text_st_7.jpg

Вот в принципе и все что можно сказать по данной возможности Excel. Пользоваться ею не сложно, но бывают случаи, когда она очень сильно помогает и ускоряет работу. Но по опыту могу сказать, что не все пользователи, даже те, которые долго пользовались Excel, знают об этой возможности, поэтому рекомендую взять ее на вооружение. Удачи!

Как распределить текст с разделителями на множество столбцов.

Изучив представленные выше примеры, у многих из вас, думаю, возник вопрос: «А что, если у меня не 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. И вновь в получившейся фразе берём первое слово — до дефиса.

Если же брать больше нечего, то функция ЕСЛИОШИБКА обработает это событие и вставит в виде результата пустое значение «».

Скопируйте формулы по строкам и столбцам, на сколько это необходимо. Результат вы видите на скриншоте.

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

Выдергиваем слова с помощью макросов VBA

     Рассмотрим два способа разделить текст в ячейке:

  1. Выдергиваем отдельные слова по разделителю;
  2. Делим текст без пробелов.

     Способ №1.

     Поскольку вас интересует автоматическое деление текста, значит надо написать хорошую функцию на VBA и внедрить ее в рабочую книгу. Для начала переходим на вкладку «Разработчик» и выбираем «Visual Basic» или вызываем эту возможность с помощью горячего сочетания клавиш Alt+F11. (детальнее в статье «Как создать макрос в Excel»).

     Создаем новый модуль в меню «Insert» наживаем пункт «Module» и переносим в него нижеприведенный код:

FunctionSubstring(Txt,Delimiter,n)AsString

DimxAsVariant

    x=Split(Txt,Delimiter)

    Ifn>0Andn1<=UBound(x)Then

        Substring=x(n1)

    Else

        Substring=“”

    EndIf

EndFunction

     Теперь эта функция появилась в «Мастер функций» в разделе «Определенные пользователем». Синтаксис созданной функции очень прост и выглядит так:

            =SUBSTRING (_Txt_;_Delimeter_;_n_), где:

  • – указываем ячейку текст в которой будем делить;
  • – это символ который служит разделителем (запятая, тире, пробел и т.д);
  • – ставим номер по порядку фрагмента, которой будем извлекать.

Slitii text 6 Как разделить текст в ячейке Excel?     Пример:

     Рассмотрим, как возможно изъять текст по разнообразным символам-разделителям. Для удобства и лучшей автоматизации не забывайтесь значения формулы закреплять абсолютными ссылками. Slitii text 7 Как разделить текст в ячейке Excel?     Способ №2.

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

     В этом поможет небольшая функция, которая автоматически сможет вставлять «пробел» перед всеми заглавными буквами в тексте. Используя Visual Basic, создайте новый модуль, как описано в первом способе и добавьте в него код:

FunctionCutWords(Txt AsRange)AsString

    Dim Out$

    IfLen(Txt)=0ThenExit Function

    Out=Mid(Txt,1,1)

         Fori=2ToLen(Txt)

        IfMid(Txt,i,1)Like“[a-zа-я]”AndMid(Txt,i+1,1)Like“[A-ZА-Я]”Then

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

        Else

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

        EndIf

    Nexti

    CutWords=Out

EndFunction

     Как и предыдущая функция, эту также ищем в разделе «Определенные пользователем» и указываем в ее одном аргументе тот текст, который разлепим. Slitii text 8 Как разделить текст в ячейке Excel?     Пример:

     Используя микрофункцию на склеенный текст, теперь мы легко его разделим. Slitii text 9 Как разделить текст в ячейке Excel?     Я велосипед не придумывал, а предоставил рабочие макросы от Николая Павлова.

     А на этом у меня всё! Я очень надеюсь, что всё вышеизложенное вам понятно. Буду очень благодарен за оставленные комментарии, так как это показатель читаемости и вдохновляет на написание новых статей! Делитесь с друзьями прочитанным и ставьте лайк!

     Не забудьте поблагодарить автора!

Видео: Формулы в Эксель

=ПСТР(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 для работы с текстом и как они позволяют делить текст автоматически с помощью формул однотипные данные.

Как разбить текст по ячейкам по маске (шаблону).

Эта опция очень удобна, когда вам нужно разбить список схожих строк на некоторые элементы или подстроки. Сложность состоит в том, что исходный текст должен быть разделен не при каждом появлении определенного разделителя (например, пробела), а только при некоторых определенных вхождениях. Следующий пример упрощает понимание.

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

Вы хотите, чтобы дата и время, если таковые имеются, код ошибки и поясняющие сведения были размещены в 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, который демонстрируется в следующей части этого руководства.

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...