Найти тему
Уроки Excel

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

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

Первый способ

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

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

-2

На втором шаге установить ширину полей (если на первом шаге выбран формат "фиксированной ширины"):

-3

или установить разделитель (в нашем случае - пробел), если на первом шаге выбран формат "с разделителями":

-4

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

-5

После нажатия на кнопку "Готово", разделенный текст будет помещен в три ячейки, начиная с B1:

-6

Второй способ

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

=ПОИСК(" ";A1;1) Первым аргументом здесь является символ пробела, обозначенный как " ", вторым аргументом адрес исходной ячейки А1, третьим аргументом является позиция, с которой нужно начинать поиск.

В строке выше позиция первого пробела 7, значит нужно из исходной строки взять слева на один символ меньше. Воспользуемся функцией ЛЕВСИМВ(), которая в качестве первого аргумента принимает текст (в ячейке А1), из которого слева нужно выбрать нужное количество знаков, в качестве второго аргумента принимает количество знаков, которое необходимо извлечь из строки "ПОИСК(" ");А1;1)-1":

-7

Найдем теперь второе слово в строке, т.е. имя. Для этого, зная позицию первого пробела в строке (7), определим второе вхождение пробела в строку (после имени), Для этого также функцией ПОИСК будем искать пробел с позиции 7+1, в результате получим 12:

=ПОИСК(" ";A1;ПОИСК(" ";A1;1)+1)

Зная, что слово начинается с позиции первого вхождения пробела в строку + 1 символ , посчитаем количество символов во втором слове:

=ПОИСК(" ";A1;ПОИСК(" ";A1;1)+1) - ПОИСК(" ";A1;1)-1

Подставив эту формулу в функцию ЛЕВСИМВ(), получим второе слово из строки в ячейке А1:

-8

Осталось определить из исходной строки Отчество. Воспользуемся функцией ПРАВСИМВ(), которая работает аналогично функции ЛЕВСИМВ(), только выбирает нужное количество знаков Справа в строке.

Чтобы определить нужное количество знаков, найдем второе вхождение пробела формулой, построенной ранее: ПОИСК(" ";A1;ПОИСК(" ";A1;1)+1). Получим значение 12.

Определим длину строки с помощью функции "=ДЛСТР(А1)". Получим значение 20. Очевидно, чтобы вычленить из строки отчество, нужно из 20 вычесть 12.

Подставим в функцию ПРАВСИМВ() необходимые аргументы:

-9

В качестве первого аргумента ссялка на ячейку с текстом А1, в качестве второго ДЛСТР(А1) за вычетом позиции второго пробела в строке.

На этом все.

Если Вам интересен Excel, то подписывайтесь на этот канал, ставьте лайк, пишите комментарии, задавайте вопросы.