Мастерство работы с текстовыми данными в Excel

Иван Корнев·09.04.2026·4 мин

Чтобы быстро найти фрагмент текста, разделить ФИО на отдельные ячейки или объединить данные из разных столбцов в Excel, используйте комбинацию функций ПОИСК, ПСТР, ЛЕВСИМВ, ПРАВСИМВ и СЦЕПИТЬ (или оператор &). Эти инструменты позволяют автоматизировать обработку списков клиентов, баз данных и отчетов без ручного копирования.

Главный принцип: Текстовые функции в Excel нумеруют символы начиная с 1, а не с 0. Пустая ячейка часто воспринимается как пустая строка "", что важно учитывать при проверках.

Поиск и извлечение подстрок

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

Функция ПОИСК (или НАЙТИ для чувствительного к регистру поиска) возвращает номер позиции первого найденного символа.

  • =ПОИСК("найти"; "где искать") — вернет число.
  • Если текст не найден, функция выдаст ошибку #ЗНАЧ!.

Чтобы извлечь текст, используйте ПСТР: =ПСТР(текст; начальная_позиция; количество_символов)

Пример: Извлечь код города из номера телефона (495) 123-45-67, находящегося в ячейке A1. Код находится между скобками.

  1. Находим позицию открывающей скобки: ПОИСК("("; A1) → 1.
  2. Начало кода — следующая позиция: ПОИСК("("; A1) + 1.
  3. Длина кода известна (3 символа) или вычисляется через разницу позиций скобок.
  4. Формула: =ПСТР(A1; ПОИСК("("; A1)+1; 3) → результат 495.

Если нужно найти текст после определенного разделителя (например, домен после @), используйте формулу: =ПРАВСИМВ(A1; ДЛСТР(A1) - ПОИСК("@"; A1))

Автоматический разбор ФИО

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

Вариант 1: Идеальная структура (Фамилия Имя Отчество)

Если все записи содержат ровно два пробела, можно использовать фиксированную логику поиска разделителей.

ЗадачаФормула (для ячейки A1 с полным ФИО)Логика
Фамилия=ЛЕВСИМВ(A1; ПОИСК(" "; A1)-1)Берем всё слева до первого пробела.
Имя=ПСТР(A1; ПОИСК(" "; A1)+1; ПОИСК(" "; A1; ПОИСК(" "; A1)+1) - ПОИСК(" "; A1) - 1)Берем текст между первым и вторым пробелом.
Отчество=ПРАВСИМВ(A1; ДЛСТР(A1) - ПОИСК(" "; A1; ПОИСК(" "; A1)+1))Берем всё справа от второго пробела.

Вариант 2: Отсутствие отчества

Если в списке есть люди без отчества, сложные формулы выше выдадут ошибку. В современных версиях Excel (2021, 365) лучше использовать функцию ТЕКСТРАЗД (TEXTSPLIT): =ТЕКСТРАЗД(A1; " ") Эта функция автоматически разобьет текст по пробелам и распределит по соседним ячейкам. Если отчества нет, третья ячейка останется пустой, что корректно.

Для старых версий используйте проверку на наличие второго пробела: =ЕСЛИОШИБКА(ПСТР(...); "") — чтобы скрыть ошибки, если отчества нет.

Объединение текста и работа с пробелами

Часто требуется собрать ФИО обратно из отдельных ячеек или создать уникальные идентификаторы.

Сцепка данных

Старая функция СЦЕПИТЬ уступает место более удобному оператору & или функции СЦЕП (CONCAT).

  • Формула: =B2 & " " & C2 & " " & D2 (где B-Фамилия, C-Имя, D-Отчество).
  • Преимущество &: можно сразу вставлять разделители (пробелы, запятые, дефисы) прямо в формулу.

Частая ошибка: При объединении ячеек, содержащих числа (например, коды товаров), может теряться форматирование (ведущие нули). Преобразуйте числа в текст функцией ТЕКСТ: =СЦЕП("Артикул: "; ТЕКСТ(A1; "0000"))

Очистка "мусора"

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

  • СЖПРОБЕЛЫ (TRIM): Удаляет все лишние пробелы, оставляя только одинарные между словами.
    • Пример: =СЖПРОБЕЛЫ(A1) превратит " Иванов Иван " в "Иванов Иван".
  • ПЕЧСИМВ (CLEAN): Удаляет непечатаемые символы (переносы строк, табуляцию), которые часто ломают формулы.
    • Комбинированный вариант: =СЖПРОБЕЛЫ(ПЕЧСИМВ(A1)).

Частые ошибки

  • Ошибка #ЗНАЧ! в функции ПОИСК: Возникает, если искомый текст отсутствует. Всегда оборачивайте такие формулы в ЕСЛИОШИБКА(формула; "Не найдено") или используйте ЕСЛИ(ЕОШИБКА(...)).
  • Несовпадение регистров: Функция ПОИСК игнорирует регистр ("текст" = "Текст"), а НАЙТИ — учитывает. Если формула не работает, проверьте, ту ли функцию вы выбрали.
  • "Лишние" пробелы: Визуально ячейки могут выглядеть одинаково, но формула сравнения A1=B1 вернет ЛОЖЬ, если в одной из ячеек есть скрытый пробел в конце. Используйте СЖПРОБЕЛЫ перед сравнением.
  • Лимит символов: Текстовые функции работают только с первыми 255 символами в аргументах старых функций (в новых версиях лимиты расширены, но стоит быть осторожным с очень длинными строками).

FAQ

Как найти последнее вхождение символа (например, последнюю точку в имени файла)? Стандартный ПОИСК находит первое вхождение. Для поиска последнего используют хитрость с заменой целевого символа на уникальный (которого нет в тексте), а затем поиском этого уникального символа, либо формулу массива. Простой способ для расширения файла: =ПРАВСИМВ(A1; ДЛСТР(A1)-ПОИСК("^"; ПОДСТАВИТЬ(A1; "."; "^"; ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1; "."; ""))))).

Можно ли менять регистр текста формулой? Да. Используйте функции:

  • СТРОЧН (LOWER) — перевести всё в нижний регистр.
  • ПРОПИСН (UPPER) — перевести всё в верхний регистр.
  • ПРОПНАЧ (PROPER) — сделать первую букву каждого слова заглавной (идеально для имен).

Как посчитать количество конкретного символа в ячейке? Вычтите длину строки без этого символа из общей длины: =ДЛСТР(A1) - ДЛСТР(ПОДСТАВИТЬ(A1; "а"; "")) — посчитает количество букв "а".