Функция MID в Excel на русском: как извлечь часть текста из ячейки

Почему MID — незаменимый инструмент для работы с текстом

Возможность извлекать фрагменты текста из длинных строк — одна из самых востребованных операций в Microsoft Excel. Функция MID (в русской версии — ПСТР) решает эту задачу с ювелирной точностью, позволяя вытаскивать нужные символы по заданному положению и длине. Без неё невозможно представить обработку баз данных, парсинг отчётов или даже банальное разделение ФИО на отдельные столбцы.

Главное преимущество MID — её универсальность. В отличие от LEFT (ЛЕВСИМВ) или RIGHT (ПРАВСИМВ), которые работают только с начала или конца строки, MID даёт доступ к любой части текста. Например, вы можете извлечь код товара из артикула AR-2026-0543-XL, удалить лишние символы в импортированных данных или разобрать сложные строки с разделителями. А в сочетании с функциями FIND (НАЙТИ) или SEARCH (ПОИСК) её возможности становятся практически безграничными.

Но есть нюанс: в русской версии Excel функция называется ПСТР (сокращение от "подстрока"), а её синтаксис отличается от английской версии. Это часто сбивает с толку новичков, которые копируют формулы из зарубежных источников и получают ошибку #ИМЯ?. В этой статье мы разберём все тонкости работы с MID/ПСТР — от базового синтаксиса до продвинутых приёмов с динамическими диапазонами и массивами.

Синтаксис функции MID в русской версии Excel: разбираем ПСТР по косточкам

Формула ПСТР в Excel имеет следующий синтаксис:

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

Где:

  • 📌 текст — строка или ссылка на ячейку, из которой извлекается подстрока. Может быть как прямым текстом в кавычках ("Пример"), так и адресом ячейки (A1).
  • 📍 начальная_позиция — номер символа, с которого начинается извлечение. Важно: отсчёт идёт с 1, а не с 0 (как в некоторых языках программирования).
  • 📏 количество_символов — сколько символов нужно извлечь, начиная с указанной позиции.

Пример простейшей формулы:

=ПСТР("Эксель2026"; 4; 4)

Эта формула вернёт "ель2", потому что:

  1. Начальная позиция 4 — это символ "е" (считаем: 1=Э, 2=к, 3=с, 4=е).
  2. Извлекаем 4 символа: "е", "л", "ь", "2".
⚠️ Внимание: Если параметр количество_символов не указан или равен 0, Excel вернёт пустую строку. А если начальная_позиция больше длины текста, результат тоже будет пустым.
📊 Как часто вы используете функцию MID/ПСТР в Excel?
Ежедневно
Несколько раз в неделю
Редко, по необходимости
Никогда не слышал о ней

Практические примеры: от простого к сложному

Рассмотрим реальные задачи, где MID/ПСТР становится спасательным кругом.

1. Извлечение кода из артикула

Допустим, у вас есть столбец с артикулами вида PRD-2026-0543, и нужно вытащить числовой код 0543:

=ПСТР(A1; 9; 4)

Здесь:

  • 🔢 A1 — ячейка с артикулом.
  • 🔢 9 — позиция первого символа кода (после PRD-2026-).
  • 🔢 4 — длина кода.

2. Разделение ФИО на отдельные столбцы

Если ФИО записано в одной ячейке (Иванов Иван Иванович), а пробелы стоят строго между словами, можно извлечь фамилию, имя и отчество:

=ПСТР(A1; 1; НАЙТИ(" "; A1)-1)  // Фамилия

=ПСТР(A1; НАЙТИ(" "; A1)+1; НАЙТИ(" "; A1; НАЙТИ(" "; A1)+1)-НАЙТИ(" "; A1)-1) // Имя

=ПРАВСИМВ(A1; ДЛСТР(A1)-НАЙТИ(" "; A1; НАЙТИ(" "; A1)+1)) // Отчество

Для надёжности лучше использовать ПОИСК вместо НАЙТИ, если в ФИО могут быть дефисы или другие символы.

3. Удаление лишних символов в импортированных данных

Часто при импорте из внешних источников в начале строки появляются непечатаемые символы (например, NUL или TAB). Чтобы их удалить:

=ПСТР(A1; КОДСИМВ(ЛЕВСИМВ(A1))>31; ДЛСТР(A1))

Эта формула проверяет код первого символа и извлекает строку с первого "нормального" символа (коды >31).

Убедитесь, что текст в ячейке не содержит лишних пробелов в начале/конце|Проверьте регистр символов (функция чувствительна к регистру)|Учитывайте, что отсчёт позиций начинается с 1, а не с 0|Если длина текста переменная, используйте ДЛСТР для динамического расчёта-->

Типичные ошибки и как их избежать

Даже опытные пользователи иногда сталкиваются с ошибками при работе с MID/ПСТР. Разберём самые распространённые:

Ошибка Причина Решение
#ИМЯ? Опечатка в названии функции (например, МИД вместо ПСТР) Используйте ПСТР в русской версии или MID в английской
#ЗНАЧ! начальная_позиция или количество_символов не являются числом Проверьте, что аргументы — числа, а не текст (например, ПСТР(A1; "5"; 3) не сработает)
Пустая строка начальная_позиция больше длины текста Используйте ДЛСТР для проверки: =ЕСЛИ(начальная_позиция<=ДЛСТР(A1); ПСТР(...); "")
Неправильный фрагмент Ошибка в расчёте позиции (например, забыли учесть пробелы) Визуализируйте позиции с помощью СИМВОЛ или КОДСИМВ
⚠️ Внимание: Если вы работаете с данными, импортированными из CSV или баз данных, проверьте кодировку файла. Символы кириллицы в UTF-8 могут занимать 2 байта, что сбивает отсчёт позиций в ПСТР. В таких случаях используйте ДЛСТРБ (длина в байтах) вместо ДЛСТР.
Как проверить кодировку текста в Excel?

Откройте файл в блокноте и сохраните его с кодировкой UTF-8 с BOM. Затем импортируйте заново в Excel — это поможет избежать проблем с многобайтовыми символами.

Продвинутые техники: MID + другие функции

Реальная мощь MID/ПСТР проявляется в комбинации с другими функциями. Вот несколько продвинутых приёмов:

1. Динамическое извлечение текста между разделителями

Допустим, у вас строка "Начало_ДАННЫЕ_Конец", и нужно извлечь "ДАННЫЕ" между подчёркиваниями:

=ПСТР(A1; НАЙТИ("_"; A1)+1; НАЙТИ("_"; A1; НАЙТИ("_"; A1)+1)-(НАЙТИ("_"; A1)+1))

Для надёжности добавьте проверку на наличие разделителей:

=ЕСЛИОШИБКА(ПСТР(...); "Разделители не найдены")

2. Извлечение всех email из текста

Если в ячейке смешаны текст и email (например, "Контакт: user@example.com, support@site.ru"), можно извлечь первый email:

=ПСТР(A1; ПОИСК("@"; A1)-НАЙТИ(" "; ПРАВСИМВ(A1; ПОИСК("@"; A1))); ПОИСК(" "; ПСТР(A1; ПОИСК("@"; A1); 100)))

Для извлечения всех email потребуется формула массива (в новых версиях Excel) или Power Query.

3. Работа с датами в текстовом формате

Если дата записана как текст ("Заказ от 15.05.2026"), её можно преобразовать в формат даты:

=ДАТАЗНАЧ(ПСТР(A1; НАЙТИ("от "; A1)+3; 10))
=ПСТР(A1; ПОИСК("|"; A1; ПОИСК("|"; A1; ПОИСК("|"; A1)+1)+1)+1; ДЛСТР(A1))

Этот приём полезен для разбора строк с несколькими разделителями, например, "Иванов|Иван|Иванович|1990"-->

MID в Excel Online и мобильной версии: есть ли различия?

Функция ПСТР работает одинаково во всех версиях Excel — настольной (Excel 365, Excel 2019/2021), онлайн-версии (Excel Online) и мобильных приложениях (Excel для Android/iOS). Однако есть несколько нюансов:

  • 📱 В мобильной версии может отсутствовать подсказка по аргументам функции при вводе. Рекомендуется заранее записать синтаксис на бумаге.
  • 🌐 В Excel Online формулы пересчитываются медленнее, особенно если они вложенные (например, ПСТР внутри ЕСЛИ).
  • 🖥️ В Excel 365 доступны динамические массивы, что позволяет извлекать несколько подстрок одной формулой (см. пример ниже).

Пример с динамическим массивом (только для Excel 365):

=ТЕКСТПОСЛЕ(A1:A10; "_"; 1; 1; ""; ИСТИНА)

Эта формула извлечёт все подстроки после последнего подчёркивания в диапазоне A1:A10.

⚠️ Внимание: В Excel для Mac до версии 2016 функция ПСТР могла неправильно обрабатывать двухбайтовые символы (например, иероглифы или эмодзи). Если вы работаете с такими данными, обновите программу до последней версии.

Альтернативы MID: когда лучше использовать другие функции

Хотя MID/ПСТР универсальна, в некоторых случаях удобнее другие функции:

Задача Лучшая функция Пример
Извлечь первые N символов LEFT (ЛЕВСИМВ) =ЛЕВСИМВ(A1; 5)
Извлечь последние N символов RIGHT (ПРАВСИМВ) =ПРАВСИМВ(A1; 3)
Извлечь текст после разделителя TEXTAFTER (ТЕКСТПОСЛЕ) =ТЕКСТПОСЛЕ(A1; "-"; 2)
Разбить текст по разделителю TEXTSPLIT (ТЕКСТРАЗД) =ТЕКСТРАЗД(A1; ";")
Найти позицию подстроки FIND (НАЙТИ) или SEARCH (ПОИСК) =НАЙТИ("х"; A1)

Критическая особенность: функции TEXTAFTER (ТЕКСТПОСЛЕ) и TEXTSPLIT (ТЕКСТРАЗД) доступны только в Excel 365 и Excel 2021. В старых версиях их можно заменить комбинацией ПСТР + НАЙТИ, но это потребует более сложных формул.

FAQ: Ответы на частые вопросы о функции MID в Excel

Можно ли использовать MID для извлечения текста из числа?

Да, но сначала число нужно преобразовать в текст с помощью ТЕКСТ или СЦЕПИТЬ с пустой строкой. Например:

=ПСТР(ТЕКСТ(123456; "0"); 2; 3)

Эта формула вернёт "234".

Как извлечь подстроку, если её позиция и длина неизвестны?

Используйте комбинацию ПСТР с НАЙТИ или ПОИСК. Например, чтобы извлечь все цифры из строки:

=СУММПРОИЗВ(--(ЕЧИСЛО(ПСТР(A1; СТРОКА($1:$10); 1)*1)); ПОВТОР("0"; 10)+0)

Эта формула массива вернёт первое найденное число.

Почему MID возвращает #ЗНАЧ! в английской версии Excel?

Вероятно, вы используете русскую версию Excel, где функция называется ПСТР. Либо проверьте, что все аргументы — числа (например, =MID(A1; 2; 3) сработает, а =MID(A1; "2"; 3) — нет).

Можно ли применить MID ко всему столбцу без протягивания формулы?

Да, в Excel 365 формулы автоматически применяются ко всему динамическому диапазону. В старых версиях используйте Ctrl+Shift+Enter для формул массива или преобразуйте данные в таблицу (Ctrl+T).

Как ускорить работу с MID в больших файлах?

Отключите автоматический пересчёт формул (Формулы → Параметры вычислений → Вручную) и используйте вспомогательные столбцы для промежуточных вычислений. Также поможет замена вложенных ПСТР на Power Query.