Компьютерные уроки для начинающих

Компьютерные уроки для начинающих

» » Применение деления в программе Microsoft Excel. Как в «Экселе» разделить ячейку на две: полезные хитрости Разбить число на несколько ячеек ms excel

Применение деления в программе Microsoft Excel. Как в «Экселе» разделить ячейку на две: полезные хитрости Разбить число на несколько ячеек ms excel

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

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

"ФИО";"Дата рождения";"Пол";"Город проживания";"Профессия"
"Иванов Иван Иванович";"27.03.1985";"Мужской";"Воронеж";"Электрик"
"Петров Петр Петрович";"12.03.1976";"Мужской";"Москва";"Геолог"
"Кухтина Елизавета Федоровна";"11.12.1994";"Женский";"Казань";"Врач"

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

На экране будет отображено окно мастера распределения текста:

Весь процесс состоит из трех шагов.

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

Выберите пункт «С разделителями» и нажмите кнопку «Далее».

Следующим действием выбирается символ-разделитель. Им может быть любой из знаков, включая буквы и цифры.

Обратите внимание на то, что если разделители идут подряд, то каждый из них образует новый столбец, т.е. 2 таких символа создают 1 пустой столбец, 3 – 2 и т.д. Чтобы избавиться от этого часто нужного действия достаточно поставить галочку на поле «Считать последовательные разделители одним».

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

Имейте в виду то, что символы-разделители и ограничители удаляются из содержимого разделенных данных.

На любом описанным выше этапе можно нажать кнопку «Готово» для предоставления возможности приложению Excel самостоятельно завершить разделение текста в ячейках столбца. Но если Вы хотите контролировать весь процесс, то продолжайте нажимать «Далее».

Завершающим шагом является назначение форматирования новым колонкам и указания места для их расположения.

Из возможных настроек предоставлено только несколько форматов (типов данных), а поместить распределенный текст можно только на текущем листе.

Добрый день уважаемый читатель!

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

Разобрать слитый текст на необходимые составляющие возможно произвести с помощью:

Мастер разбора текстов

Рассмотрим самый простой способ разделить текст в ячейке, не по сути, а по исполнению. Для примера, очень наглядно это можно продемонстрировать на ФИО в одной ячейке, которые необходимо разделить на отдельные столбики для удобства и .

Для выполнения задачи вызываем диалоговое окно «Мастер текстов (разбор)» и в 3 шага разделяем текст:

  1. Для начала нужно выделить данные, которые необходимо разделить, следующим шагом на вкладке «Данные» в разделе «Работа с данными» нажимаете иконку «Текст по столбцам» и в вызванном диалоговом окне мастера указываем формат рабочего текста. Выбираем 2 вида форматов:


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

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

Рассоединяем текст с помощью формул

Для этого способа нам понадобятся возможности сочетаний функций ПОИСК и ПСТР. При помощи мы будем искать все пробелы, которые есть между словами (например, между фамилией, именем и отчеством). Потом выделяем необходимое количество символов для дальнейшего разделения.

И если с первыми двумя словами понятно, что и как разделять, то разделителя для последнего слова нет, а это значит что нужно указать в качестве аргумента условно большое количество символов, как аргумент «число_знаков» для функции ПСТР, например, 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. Выдергиваем отдельные слова по разделителю;
  2. Делим текст без пробелов.

Способ №1.

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

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

Function Substring(Txt, Delimiter, n) As String Dim x As Variant x = Split(Txt, Delimiter) If n > 0 And n - 1 <= UBound(x) Then Substring = x(n - 1) Else Substring = "" End If End Function

Function Substring (Txt , Delimiter , n ) As String

Dim x As Variant

x = Split (Txt , Delimiter )

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

Substring = x (n - 1 )

Else

Substring = ""

End If

End Function

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

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

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

Пример:

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

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

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

Function CutWords(Txt As Range) As String Dim Out$ If Len(Txt) = 0 Then Exit Function Out = Mid(Txt, 1, 1) For i = 2 To Len(Txt) If Mid(Txt, i, 1) Like "" And Mid(Txt, i + 1, 1) Like "" Then Out = Out & Mid(Txt, i, 1) & " " Else Out = Out & Mid(Txt, i, 1) End If Next i CutWords = Out End Function

Function CutWords (Txt As Range ) As String

Dim Out $

If Len (Txt ) = 0 Then Exit Function

Out = Mid (Txt , 1 , 1 )

For i = 2 To Len (Txt )

If Mid (Txt , i , 1 ) Like "" And Mid (Txt , i + 1 , 1 ) Like "" Then

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

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

Разбиваем ячейки в Excel при помощи инструмента «Текст по столбцам»

Инструмент «Текст по столбцам » действительно очень удобен, когда нужно разделить данные из одного столбца по нескольким в Excel 2013, 2010, 2007 или 2003.

«Текст по столбцам» позволяет разбивать значения ячеек, отделённые разделителями, или выделять данные фиксированной ширины (когда все значения содержат определённое количество символов). Давайте рассмотрим эти варианты подробнее:

Разбиваем текстовые данные с разделителями по столбцам в Excel

Предположим, есть список участников, приглашённых на конференцию или какое-то другое мероприятие. На рисунке ниже видно, что в столбце Participant (Участник) перечислены имена участников, государство и ожидаемая дата прибытия:

Необходимо разбить этот текст на отдельные столбцы, чтобы таблица имела следующие данные (слева направо): First Name (Имя), Last Name (Фамилия), Country (Страна), Arrival Date (Ожидаемая дата прибытия) и Status (Статус).


Примечание: Если у Вас нет столбцов, следующих непосредственно за тем, что Вы хотите разбить, то необходимость в этом шаге отпадает и его можно пропустить. Главное не упустите, что пустых столбцов должно быть не меньше, чем количество столбцов, на которое вы хотите разделить данные.

Совет: Если Вы не хотите импортировать какой-то столбец (столбцы), который показан в области Data preview (Образец разбора данных), то выделите его и выберите вариант Do not import column (Пропустить столбец) в разделе Column data format (Формат данных столбца).


Разбиваем текст фиксированной ширины по нескольким столбцам

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

К примеру, есть список товаров с ID и наименованием, причем идентификатор товара – это 9 символов, которые стоят перед наименованием этого товара:

Вот что Вам нужно сделать, чтобы разбить такой столбец на два:


Разбиваем объединённые ячейки в Excel

Если Вы объединили несколько ячеек на листе Excel и теперь хотите вновь разбить их по отдельным столбцам, откройте вкладку Home (Главная) и в группе команд Alignment (Выравнивание) нажмите маленькую чёрную стрелку рядом с кнопкой Merge & Center (Объединить и поместить в центре). Далее из выпадающего списка выберите Unmerge Cells (Отменить объединение ячеек).

Таким образом объединение ячеек будет отменено, но удовольствие от результата будет испорчено тем, что все данные останутся в левом столбце. Думаю, Вы догадались, что нужно снова использовать функцию Text to Columns (Текст по столбцам), чтобы разбить данные из одного столбца на два или более столбцов.

Разделяем данные на несколько столбцов в Excel 2013 при помощи мгновенного заполнения

Если Вы уже обновились до Excel 2013, то можете воспользоваться преимуществами нового инструмента «Мгновенное заполнение » и заставить Excel автоматически заполнять (в нашем случае – разбивать) данные, при обнаружении определенной закономерности.

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

Таким образом, при помощи этого инструмента Вы можете взять какую-то часть данных, находящихся в одном или нескольких столбцах, и ввести их в новый столбец. Думаю, Вы лучше поймёте о чём я говорю из следующего примера.

Первым делом, убедитесь, что инструмент «Мгновенное заполнение» включен. Вы найдёте этот параметр на вкладке File (Файл) > Options (Параметры) > Advanced (Дополнительно) > Automatically Flash Fill (Автоматически выполнять мгновенное заполнение).

Теперь давайте посмотрим, как можно автоматически разбить данные по ячейкам. Итак, Вы включили инструмент «Мгновенное заполнение», и начинаете вводить с клавиатуры данные, которые нужно поместить в отдельные ячейки. По мере ввода Excel будет пытаться распознать шаблон в вводимых значениях, и как только он его распознает, данные автоматически будут вставлены в остальные ячейки. Чтобы понять, как это работает, посмотрите на рисунок ниже:

Как видите, я ввёл только пару имён в столбец B , и «Мгновенное заполнение» автоматически заполнило остальные ячейки именами из столбца A . Если вы довольны результатом, просто нажмите Enter , и весь столбец будет заполнен именами. Очень умный инструмент, не правда ли?

Если «Мгновенное заполнение» включено, но не предлагает никаких вариантов, которые соответствуют определённому шаблону, Вы можете запустить этот инструмент вручную на вкладке Data (Данные) > Flash Fill (Мгновенное заполнение) или нажав сочетание клавиш Ctrl+E .

Как в Excel разбивать ячейки при помощи формул

Существуют формулы, которые могут быть очень полезны, когда возникает необходимость разбить ячейки или столбцы с данными в Excel. На самом деле, следующих шести функций будет достаточно в большинстве случаев – LEFT (ЛЕВСИМВ), MID (ПСТР), RIGHT (ПРАВСИМВ), FIND (НАЙТИ), SEARCH (ПОИСК) и LEN (ДЛСТР). Далее в этом разделе я кратко объясню назначение каждой из этих функций и приведу примеры, которые Вы сможете использовать в своих книгах Excel.

Пример 1

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

Вы легко сможете разбить такие имена на два столбца при помощи следующих формул:

  • Извлекаем имя (столбец First name):

    LEFT(A2,SEARCH(" ",A2,1)-1)
    =ЛЕВСИМВ(A2;ПОИСК(" ";A2;1)-1)

  • Извлекаем фамилию (столбец Last name):

    RIGHT(A2,LEN(A2)-SEARCH(" ",A2,1))
    =ПРАВСИМВ(A2;ДЛСТР(A2)-ПОИСК(" ";A2;1))

Для тех, кому интересно, что означают эти формулы, я попробую объяснить более подробно.

SEARCH (ПОИСК) или FIND (НАЙТИ) – это абсолютно идентичные функции, которые выполняют поиск позиции определенной текстовой строки в заданной ячейке. Синтаксис формулы:

SEARCH(find_text,within_text,)
=ПОИСК(искомый_текст;текст_для_поиска;[нач_позиция])

В качестве аргументов Вы должны указать: что нужно найти, где нужно искать, а также позицию символа, с которого следует начать поиск. В нашем примере SEARCH(” “,A2,1) или ПОИСК(” “;A2;1) говорит о том, что мы хотим найти символ пробела в ячейке A2 и начнём поиск с первого символа.

Замечание: Если поиск начинается с первого символа, Вы можете вообще пропустить аргумент start_num (нач_позиция) в формуле и упростить её до такого вида:

LEFT(A2,SEARCH(" ",A2)-1)

LEFT (ЛЕВСИМВ) и RIGHT (ПРАВСИМВ) – возвращает левую или правую часть текста из заданной ячейки соответственно. Синтаксис формулы:

LEFT(text,)
=ЛЕВСИМВ(текст;[количество_знаков])

В качестве аргументов указываем: какой текст взять и сколько символов извлечь. В следующем примере формула будет извлекать левую часть текста из ячейки A2 вплоть до позиции первого найденного пробела.

LEFT(A2,SEARCH(" ",A2)-1)
=ЛЕВСИМВ(A2;ПОИСК(" ";A2)-1)

LEN (ДЛСТР) – считает длину строки, то есть количество символов в заданной ячейке. Синтаксис формулы:

LEN(text)
=ДЛСТР(текст)

Следующая формула считает количество символов в ячейке A2 :

LEN(A2)
=ДЛСТР(A2)

Если имена в Вашей таблице содержат отчества или суффиксы, то потребуются немного более сложные формулы с использованием функции MID (ПСТР).

Пример 2

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

  • Извлекаем имя:

    LEFT(A2,FIND(" ",A2,1)-1)

  • Извлекаем отчество:


  • Извлекаем фамилию:


Функция MID (ПСТР) – извлекает часть текстовой строки (то есть заданное количество символов). Синтаксис:

MID(text,start_num,num_chars)
=ПСТР(текст;начальная_позиция;количество_знаков)

В качестве аргументов функции указываем: какой текст взять, позицию символа, с которого нужно начать, и сколько символов извлечь.

Пример 3

Вы можете использовать аналогичные формулы, чтобы разбить имена с суффиксами в конце:

  • Извлекаем имя:

    LEFT(A2,FIND(" ",A2,1)-1)
    =ЛЕВСИМВ(A2;НАЙТИ(" ";A2;1)-1)

  • Извлекаем фамилию:

    MID(A2,FIND(" ",A2,1)+1,FIND(" ",A2,FIND(" ",A2,1)+1)-(FIND(" ",A2,1)+1))
    =ПСТР(A2;НАЙТИ(" ";A2;1)+1;НАЙТИ(" ";A2;НАЙТИ(" ";A2;1)+1)-(НАЙТИ(" ";A2;1)+1))

  • Извлекаем суффикс:

    RIGHT(A2,LEN(A2)-FIND(" ",A2,FIND(" ",A2,1)+1))
    =ПРАВСИМВ(A2;ДЛСТР(A2)-НАЙТИ(" ";A2;НАЙТИ(" ";A2;1)+1))

Пример 4

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

  • Извлекаем имя:

    MID(A2,SEARCH(" ",A2,1)+1,FIND(" ",A2,FIND(" ",A2,1)+1)-(FIND(" ",A2,1)+1))
    =ПСТР(A2;ПОИСК(" ";A2;1)+1;НАЙТИ(" ";A2;НАЙТИ(" ";A2;1)+1)-(НАЙТИ(" ";A2;1)+1))

  • Извлекаем отчество:

    RIGHT(A2,LEN(A2)- FIND(" ",A2,FIND(" ",A2,1)+1))
    =ПРАВСИМВ(A2;ДЛСТР(A2)-НАЙТИ(" ";A2;НАЙТИ(" ";A2;1)+1))

  • Извлекаем фамилию:

    LEFT(A2,FIND(" ",A2,1)-2)
    =ЛЕВСИМВ(A2;НАЙТИ(" ";A2;1)-2)

Пример 5

Как Вы понимаете, эти формулы работают не только для разделения имён в Excel. Вы можете использовать их для разбиения любых данных из одного столбца по нескольким. Например, следующие формулы Вы можете использовать, чтобы разбить текстовые данные, разделённые запятыми:

  • Извлекаем название штата:

    LEFT(A2,SEARCH(",",A2)-1)
    =ЛЕВСИМВ(A2;ПОИСК(",";A2)-1)

  • Извлекаем аббревиатуру штата:

    MID(A2,SEARCH(",",A2)+2,SEARCH(",",A2,SEARCH(",",A2)+2)-SEARCH(",",A2)-2)
    =ПСТР(A2;ПОИСК(",";A2)+2;ПОИСК(",";A2;ПОИСК(",";A2)+2)-ПОИСК(",";A2)-2)

  • Извлекаем столицу штата:

    RIGHT(A2,LEN(A2)-(SEARCH(",",A2,SEARCH(",",A2)+1)+1))
    =ПРАВСИМВ(A2;ДЛСТР(A2)-(ПОИСК(",";A2;ПОИСК(",";A2)+1)+1))

А вот пример реальных данных из Excel 2010. Данные из первого столбца разбиты на три отдельных столбца:

Раннее мы рассматривали возможность разделить текст по столбцам на примере деления ФИО на составные части.

Для этого мы использовали инструмент в Excel «Текст по столбцам».

Видео: Разделить текст по столбцам в Excel / Text to Columns (Урок 6)

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

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

  • 1 Пример 1. Делим текст с ФИО по столбцам с помощью формул
  • 1.1 Приступаем к делению первой части текста - Фамилии
  • 1.2 Приступаем к делению второй части текста - Имя
  • 1.3 Приступаем к делению третьей части текста - Отчество
  • 2 Пример 2. Как разделить текст по столбцам в Excel с помощью формулы

Пример 1. Делим текст с ФИО по столбцам с помощью формул Если рассматривать на примере деления ФИО, то разделить текст можно будет с помощью текстовых формул Excel, используя функцию ПСТР и НАЙТИ, которую мы рассматривали в прошлых статьях.

В этом случае вам достаточно вставить данные в определенный столбец, а формулы автоматически разделят текст так как вам необходимо. Давайте приступит к рассмотрению данного примера. У нас есть столбец со списком ФИО, наша задача разместить фамилию, имя отчество по отдельным столбцам.

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

Итак, добавим столбцы позиция 1-го и 2-го пробелам. С помощью функции НАЙТИ, как мы уже рассматривали в предыдущей статье найдем позицию первого пробелам. Для этого в ячейке «H2» пропишем формулу

НАЙТИ(» «-A2-1)

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

Значит на необходимо поменять третий аргумент в функции НАЙТИ - начальная позиция - то есть позиция с которой функция будет искать искомый текст.

Мы видим, что второй пробел находится в любом случае после первого пробела, а позицию первого пробела мы уже нашли, значит прибавив 1 к позиции первого пробелам мы укажем функции НАЙТИ искать пробел начиная с первой буквы после первого пробела.

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

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

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

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

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

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

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

Приступаем к делению второй части текста - Имя

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

  • начальная_позиция — в нашем случае Имя начинается с первой буква после первого пробела, зная позицию этого пробела получаем H2+1;
  • число_знаков - число знаков, то есть количество букв в имени. Мы видим, что имя у нас находится между двумя пробелами, позиции которых мы знаем. Если из позиции второго пробела отнять позицию первого пробела, то мы получим разницу, которая и будет равна количеству символов в имени, то есть I2-H2

Получаем итоговую формулу:

ПСТР(A2-H2+1-I2-H2)

Приступаем к делению третьей части текста - Отчество

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

  • текст - это тот же текст ФИО, в нашем примере это ячейка A2;
  • начальная_позиция — Отчество у нас находится после 2-го пробелам, значит начальная позиция будет равна позиции второго пробела плюс один знак или 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 для работы с текстом и как они позволяют делить текст автоматически с помощью формул однотипные данные.

Пример 2. Как разделить текст по столбцам в Excel с помощью формулы

Рассмотрим второй пример, который так же очень часто встречался на практике. Пример похож предыдущий, но данных которые нужно разделить значительно больше. В этом примере я покажу прием, который позволит достаточно быстро решить вопрос и не запутаться.

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

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

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

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

Теперь основная суть приема.

Шаг 1. В вспомогательном столбце находим позицию первого разделителя с помощью функции НАЙТИ. Описывать подробно функцию не буду, так как мы уже рассматривали ее раннее. Пропишем формулу в D1 и протянем ее вниз на все строки

НАЙТИ(B1-A1-1)

То есть ищем запятую, в тексте, начиная с позиции 1

НАЙТИ($B1-$A1-D1+1)

  1. Во-первых: закрепим столбец искомого значения и текста, чтобы при протягивании формулы вправо ссылки на ячейки не сдвигалась. Для этого нужно написать доллар перед столбцом B и A - либо вручную, либо выделить A1 и B1, нажать три раза клавишу F4, после этого ссылки станут не относительными, а абсолютными.
  2. Во-вторых: третий аргумент - начало позиции мы рассчитаем как позиция предыдущего разделителя (мы его нашли выше) плюс 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)

Инструкция

Если ячейка, которую требуется разделить, была создана объединением нескольких клеток таблицы, то операция будет очень проста. Начните с выделения этой ячейки - кликните по ней курсором мыши. При этом в меню будет подсвечена кнопка «Объединить и поместить в центре», размещенная в группе команд «Выравнивание» на вкладке «Главная». Нажмите эту кнопку или раскройте привязанный к ней выпадающий список и выберите пункт «Отменить ». В обоих случаях результат будет одинаков - Excel разделит клетку на составляющие ее ячейки.

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

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

Объедините по строкам выделенный диапазон. На вкладке «Главная» раскройте выпадающий список кнопки «Объединить и поместить в центре» из группы команд «Выравнивание» и выберите пункт «Объединить по строкам».

Измените ширину объединенной колонки - сделайте ее равной соседним столбцам. Для этого выделите все объединенные столбцы - в используемом примере их три. Наведите курсор на границу между заголовками любых двух выделенных колонок и перетащите ее до нужной ширины столбца. Горизонтальный размер всех выделенных колонок при этом будет изменяться синхронно.

Выделите ту ячейку, ради которой производятся все эти манипуляции. Еще раз раскройте выпадающий список кнопки «Объединить и поместить в центре», но на этот раз выберите команду «Отменить объединение ячеек». Это последняя операция, нужная ячейка после нее окажется разбитой на заданное количество частей. При необходимости разделять на горизонтальные секции все описанные действия надо производить со строками.