Работа с текстовыми данными в Microsoft Excel часто требует предварительной очистки: удаления лишних символов, приведение к единому формату или извлечения нужных фрагментов. Одна из самых распространённых задач — удаление первых двух символов в ячейках. Это может понадобиться при обработке артикулов (AR12345 → 12345), телефонных номеров (+79123456789 → 9123456789), или когда данные экспортированы с лишними префиксами из других систем.
В этой статье мы разберём 5 проверенных способов удаления первых двух символов — от элементарных формул до автоматизации через VBA. Каждый метод подходит для разных сценариев: одни оптимальны для разовых задач, другие экономят часы при обработке тысяч строк. Вы также узнаете, как избежать типичных ошибок (например, когда формула возвращает #ЗНАЧ!), и как адаптировать решения для Google Таблиц.
1. Способ: функция ПСТР (LEFT) — быстро и без ошибок
Самый надёжный метод для новичков — использование функции ПСТР (или MID в английской версии). Она позволяет извлечь часть текста, начиная с указанной позиции. Чтобы удалить первые два символа, нам нужно взять подстроку, начиная с третьего символа.
Формула будет такой:
=ПСТР(A1; 3; ДЛСТР(A1)-2)
Разберём аргументы:
- 📌
A1— адрес ячейки с исходным текстом. - 📌
3— номер символа, с которого начинаем извлечение (первый символ имеет номер 1). - 📌
ДЛСТР(A1)-2— количество символов для извлечения (общая длина текста минус 2 удаляемых символа).
Если вам нужно применить формулу ко всему столбцу, просто растяните её за правый нижний угол ячейки с результатом. Excel автоматически подставит относительные ссылки (A2, A3 и т.д.).
2. Способ: функция ПРАВСИМВ (RIGHT) — альтернатива для коротких текстов
Функция ПРАВСИМВ извлекает заданное количество символов с конца строки. Этот метод удобен, если вы заранее знаете максимальную длину текста или хотите избежать вложенных функций. Формула:
=ПРАВСИМВ(A1; ДЛСТР(A1)-2)
Преимущество способа — лаконичность. Однако он не подходит для ячеек с текстом длиной 2 символа или меньше: формула вернёт пустую строку или ошибку. Например, для ячейки с текстом "AB" результат будет "" (пусто).
3. Способ: инструмент "Текст по столбцам" — без формул
Если вам нужно однократно очистить данные и не сохранять формулы, воспользуйтесь встроенным инструментом Текст по столбцам. Он разобьёт текст на части по заданному правилу, а вам останется оставить только нужный фрагмент.
Пошаговая инструкция:
- Выделите столбец с данными.
- Перейдите на вкладку
Данные→Текст по столбцам. - Выберите
Фиксированная ширинаи нажмитеДалее. - В области предварительного просмотра кликните мышью после второго символа, чтобы создать разделитель.
- Нажмите
Готово— Excel разобьёт текст на два столбца. Удалите первый столбец с ненужными символами.
Создайте резервную копию данных|Убедитесь, что справа от столбца есть свободные ячейки|Проверьте, нет ли в данных пустых строк|Отмените объединение ячеек (если есть)
-->
Этот метод визуально нагляден, но имеет ограничение: он не подходит для динамических данных. Если исходный текст изменится, процедуру придётся повторять заново.
4. Способ: "Найти и заменить" — для повторяющихся префиксов
Если первые два символа во всех ячейках одинаковые (например, "AR" в артикулах или "+7" в телефонах), самый быстрый способ — инструмент Найти и заменить (Ctrl+H).
Алгоритм:
- Выделите диапазон ячеек.
- Нажмите
Ctrl+H. - В поле
Найтивведите первые два символа (например,AR). - Поле
Заменить наоставьте пустым. - Нажмите
Заменить всё.
⚠️ Внимание: Если первые два символа в некоторых ячейках отличаются (например,"AR123"и"BR456"), этот метод удалит только совпадения. Для таких случаев используйте формулы или VBA.
Преимущество метода — скорость и отсутствие формул. Минус — он работает только с идентичными префиксами.
5. Способ: VBA-макрос — автоматизация для больших данных
Если вам регулярно приходится очищать первые два символа в тысячах строк, имеет смысл написать простой макрос. Он обработает данные за секунды и сэкономит часы ручной работы.
Код макроса для удаления первых двух символов во всех выделенных ячейках:
Sub УдалитьПервыеДваСимвола()
Dim rng As Range
Dim cell As Range
Set rng = Selection ' Выделенный диапазон
For Each cell In rng
If Len(cell.Value) > 2 Then
cell.Value = Right(cell.Value, Len(cell.Value) - 2)
Else
cell.Value = "" ' Если текст короче 2 символов, очищаем ячейку
End If
Next cell
End Sub
Как использовать:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Вставка → Модуль). - Вернитесь в Excel, выделите нужный диапазон и запустите макрос (
Alt+F8→ выберитеУдалитьПервыеДваСимвола→Выполнить).
⚠️ Внимание: Макрос безвозвратно изменяет исходные данные. Перед запуском создайте резервную копию или протестируйте его на небольшом фрагменте.
Как адаптировать макрос для Google Таблиц?
В Google Таблицах используйте Apps Script. Скрипт будет аналогичным, но с синтаксисом JavaScript:
function removeFirstTwoChars() {
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getActiveRange();
const values = range.getValues();
const result = values.map(row =>
row.map(cell =>
cell.toString().length > 2 ? cell.toString().slice(2) : ""
)
);
range.setValues(result);
}
Чтобы запустить:
1. Откройте Расширения → Apps Script.
2. Вставьте код и сохраните.
3. Вернитесь в таблицу и запустите скрипт из меню Расширения → Макросы.
Сравнение методов: какой выбрать?
Выбор способа зависит от задачи, объёма данных и вашего уровня владения Excel. В таблице ниже — сравнение ключевых параметров:
| Метод | Сложность | Скорость | Подходит для динамических данных | Ограничения |
|---|---|---|---|---|
ПСТР/MID |
⭐ | ⚡ Быстро | ✅ Да | Требует знания формул |
ПРАВСИМВ/RIGHT |
⭐ | ⚡ Быстро | ✅ Да | Не работает с текстом ≤2 символов |
| Текст по столбцам | ⭐⭐ | 🐢 Медленно | ❌ Нет | Ручное выполнение, не для динамических данных |
| Найти и заменить | ⭐ | ⚡⚡ Очень быстро | ❌ Нет | Только для одинаковых префиксов |
| VBA-макрос | ⭐⭐⭐ | ⚡⚡⚡ Мгновенно | ❌ Нет (изменяет исходные данные) | Требует навыков программирования |
Для разовых задач с небольшим объёмом данных подойдёт Найти и заменить или Текст по столбцам. Если нужно сохранить возможность обновления данных — используйте формулы ПСТР или ПРАВСИМВ. Для обработки десятков тысяч строк оптимален VBA-макрос.
Типичные ошибки и как их избежать
Даже в простой задаче по удалению символов пользователи часто сталкиваются с проблемами. Вот самые распространённые ошибки и их решения:
- 🚨 Ошибка
#ЗНАЧ!в формулеПСТР.
Причина: ячейка содержит ошибку или не текст. Решение: добавьте проверку с
ЕСЛИОШИБКА:=ЕСЛИОШИБКА(ПСТР(A1;3;99); "") - 🚨 Формула возвращает пустоту для коротких текстов.
Причина: длина текста ≤2 символов. Решение: добавьте условие:
=ЕСЛИ(ДЛСТР(A1)>2; ПСТР(A1;3;99); "") - 🚨 Макрос не работает с ячейками, содержащими числа.
Причина: Excel хранит числа и текст по-разному. Решение: преобразуйте данные в текст с помощью
ТЕКСТили добавьте апостроф перед числом.
Ещё одна типичная проблема — лишние пробелы после удаления символов. Чтобы их убрать, оберните формулу в СЖПРОБЕЛЫ:
=СЖПРОБЕЛЫ(ПСТР(A1; 3; 99))
FAQ: ответы на частые вопросы
Можно ли удалить первые 2 символа в Google Таблицах?
Да, все описанные методы работают и в Google Таблицах, за исключением VBA (вместо него используйте Apps Script). Формулы идентичны:
=MID(A1; 3; LEN(A1)-2)— аналогПСТР.=RIGHT(A1; LEN(A1)-2)— аналогПРАВСИМВ.
Инструмент Текст по столбцам в Google Таблицах называется Разделить текст на столбцы (меню Данные).
Как удалить первые 2 символа, если они не всегда одинаковые?
Используйте формулы ПСТР или ПРАВСИМВ — они работают независимо от содержимого первых двух символов. Если нужно удалить символы только при определённом условии (например, если они являются буквами), комбинируйте с ЕСЛИ:
=ЕСЛИ(И(КОДСИМВ(A1)>=65; КОДСИМВ(A1)<=90); ПСТР(A1;3;99); A1)
Эта формула удалит первые два символа, только если первый символ — заглавная латинская буква (коды 65–90 в ASCII).
Почему после удаления символов числа превращаются в даты?
Это происходит, потому что Excel автоматически преобразует текстовые строки, похожие на даты (например, "01-123" → "1-дек"), в формат даты. Чтобы избежать этого:
- Перед удалением символов отформатируйте ячейки как
Текстовый(Ctrl+1→ вкладкаЧисло). - Или добавьте апостроф перед числом:
'01-123.
Как удалить первые 2 символа во всём файле сразу?
Для обработки всех листов книги используйте VBA-макрос:
Sub УдалитьПервыеДваВоВсемФайле()
Dim ws As Worksheet
Dim rng As Range
For Each ws In ThisWorkbook.Worksheets
Set rng = ws.UsedRange
For Each cell In rng
If Len(cell.Value) > 2 Then
cell.Value = Right(cell.Value, Len(cell.Value) - 2)
End If
Next cell
Next ws
End Sub
⚠️ Внимание: Макрос изменит все данные во всех листах. Перед запуском сохраните резервную копию файла!
Можно ли вернуть удалённые символы обратно?
Если вы использовали формулы — да, просто удалите столбец с результатом. Если применяли Найти и заменить, Текст по столбцам или VBA — исходные данные безвозвратно изменены. Восстановить их можно:
- Из резервной копии файла.
- Через
Журнал изменений(Файл → Сведения → Журнал изменений), если функция включена. - С помощью инструментов восстановления (например, Recuva), но это не гарантирует 100% результат.