Как отделить цифры от букв в Excel: полное руководство с примерами

Работа с комбинированными данными — одна из самых распространённых задач в Microsoft Excel. Часто в ячейках встречаются значения, где цифры и буквы перемешаны: артикулы (PRD-12345), инвентарные номера (АБ-789), телефонные номера с префиксами (+7(999)123-45-67). Разделение таких данных на отдельные компоненты экономит время и упрощает дальнейший анализ.

В этой статье вы найдёте 5 рабочих методов — от простых функций до автоматизации через VBA. Мы разберём, как выделить только цифры или только буквы, учитывая нюансы разных форматов данных. Все примеры протестированы в Excel 2019–2026 и Microsoft 365, но большинство способов работают и в старых версиях (начиная с Excel 2010).

Особое внимание уделим типичным ошибкам: почему формулы возвращают #ЗНАЧ!, как избежать потери данных при конвертации, и что делать, если числа сохраняются как текст. В конце статьи — FAQ с ответами на частые вопросы и сравнительная таблица методов по скорости и сложности.

1. Метод «Текст по столбцам»: разделяем без формул

Самый простой способ для новичков — встроенный инструмент «Текст по столбцам». Он подходит, если данные имеют фиксированный разделитель (дефис, пробел, запятая) или постоянную ширину (например, первые 2 символа — буквы, остальные — цифры).

Как использовать:

  1. Выделите столбец с данными.
  2. Перейдите на вкладку ДанныеТекст по столбцам.
  3. Выберите С разделителями (если есть символ-разделитель) или Фиксированная ширина (если позиция символов постоянна).
  4. Настройте параметры на следующем экране и укажите, куда вывести результат.

Пример: для данных вида АБ123 (2 буквы + 3 цифры) выберите Фиксированная ширина и создайте разрыв после 2-го символа. Excel автоматически разобьёт данные на два столбца.

⚠️ Внимание: Если в ячейке смешаны буквы и цифры без разделителей (например, a1b2c3), этот метод не сработает. Используйте формулы или VBA.
📊 Какой способ разделения данных вы используете чаще?
Формулы
Текст по столбцам
Power Query
VBA
Ручной ввод

2. Формулы для извлечения только цифр

Если нужно вытащить только цифры из строки (например, из PRD-12345 получить 12345), используйте комбинацию функций. Ниже — универсальные формулы для разных версий Excel.

2.1. Для Excel 2019–2026 и Microsoft 365

Современные версии поддерживают динамические массивы и новые функции. Самый короткий вариант:

=ТЕКСТПОСЛЕ(ТЕКСТДОБ(ПОДСТАВИТЬ(A1;{"0";"1";"2";"3";"4";"5";"6";"7";"8";"9"};"");"");0)

Как это работает: функция ПОДСТАВИТЬ удаляет все цифры, оставляя только буквы и символы. Затем ТЕКСТДОБ и ТЕКСТПОСЛЕ извлекают пустую строку, а 0 в конце возвращает её длину — то есть количество цифр. Но для извлечения самих цифр лучше использовать:

=СЦЕПИТЬ(ЕСЛИОШИБКА(ПСТР($A1;СТРОКА(ДВССЫЛ("1:10"));1)*1;""))

2.2. Для Excel 2010–2016

В старых версиях примените формулу массива (вводите с Ctrl+Shift+Enter):

=СУММПРОИЗВ(--(НЕ(ЕОШ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:10"));1)*1))));*10^(СТРОКА(ДВССЫЛ("1:10"))-1))

Или более простой вариант для извлечения цифр в текстовый формат:

=ПСТР(A1;МИН(ЕСЛИ(ЕОШИБКА(ПСТР(A1;СТРОКА(ДВССЫЛ("1:10"));1)*1;0);СТРОКА(ДВССЫЛ("1:10"))));СЧЁТЕСЛИ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:10"));1);{"0";"1";"2";"3";"4";"5";"6";"7";"8";"9"}))

Эти формулы анализируют каждый символ в ячейке и возвращают только цифры. Результат будет в текстовом формате — при необходимости преобразуйте его в число через ЗНАЧЕН.

- Убедитесь, что в ячейке нет скрытых пробелов (используйте СЖПРОБЕЛЫ)

- Проверьте регистр букв (формулы чувствительны к А и а)

- Для больших диапазонов тестируйте на 5–10 строках перед применением ко всему столбцу

-->

2.3. Примеры работы формул

Исходные данные (A1)Формула для цифрРезультат
PRD-12345=СЦЕПИТЬ(ЕСЛИОШИБКА(...))12345
АБ12ВГ34=ПСТР(...) с массивом1234
+7(999)123-45-67Любая из формул79991234567
1a2b3c=СУММПРОИЗВ(...)123
⚠️ Внимание: Если в ячейке есть десятичные разделители (например, 12,34), формулы вернут 1234. Для сохранения точки/запятой используйте ПОДСТАВИТЬ с заменой разделителя на временный символ (например, |).

3. Формулы для извлечения только букв

Чтобы оставить в строке только буквы и символы (удалив цифры), используйте аналогичные подходы, но с обратной логикой. Например, для данных PRD-12345 нужно получить PRD-.

3.1. Универсальная формула (все версии Excel)

=СЦЕПИТЬ(ЕСЛИОШИБКА(ПСТР(A1;СТРОКА(ДВССЫЛ("1:20"));1)/ПСТР(A1;СТРОКА(ДВССЫЛ("1:20"));1);ПСТР(A1;СТРОКА(ДВССЫЛ("1:20"));1);""))

Логика: деление символа на себя возвращает ошибку, если символ — не число. Функция ЕСЛИОШИБКА заменяет ошибки на пустую строку, а корректные символы (буквы) — оставляет.

3.2. Альтернатива с ПОДСТАВИТЬ

Проще удалить все цифры через замену:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"0";"");"1";"");"2";"");"3";"");"4";"");"5";"");"6";"");"7";"");"8";"");"9";"")

Минус: громоздкость. Плюс: работает во всех версиях без массивов.

Как ускорить работу с длинными формулами?

Создайте пользовательскую функцию через VBA (раздел 5 этой статьи) или используйте Power Query (раздел 4). Оба метода позволяют обработать тысячи строк за секунды, тогда как формулы массива могут тормозить на больших файлах.

3.3. Особенности работы с кириллицей и латиницей

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

  • 🔹 Для кириллицы: =СЦЕПИТЬ(ЕСЛИ(КОДСИМВ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:20"));1))>=1040;ПСТР(A1;СТРОКА(ДВССЫЛ("1:20"));1);"")) (вводите как формулу массива).
  • 🔹 Для латиницы: замените >=1040 на <1040 и добавьте проверку на диапазон 65-90 (заглавные буквы) и 97-122 (строчные).

4. Разделение данных с помощью Power Query

Power Query (доступен в Excel 2016+ и Microsoft 365) — мощный инструмент для преобразования данных. Он справится с задачей даже для миллиона строк, причём без формул.

Пошаговая инструкция:

  1. Выделите исходные данные и нажмите ДанныеИз таблицы/диапазонаExcel 2016Получить данныеИз таблицы).
  2. В открывшемся редакторе Power Query выберите столбец → ПреобразоватьРазделить столбецПо позициям.
  3. Укажите количество символов для разделения (например, первые 2 — буквы, остальные — цифры).
  4. Нажмите Закрыть и загрузить.

Для сложных случаев (например, a1b2c3d4) используйте пользовательский столбец:

  • 🔹 Добавьте столбец с формулой =Text.Select([Column1],{"0".."9"}) для цифр.
  • 🔹 Для букв: =Text.Remove([Column1],{"0".."9"}).

4.1. Преимущества Power Query

КритерийФормулыPower Query
Скорость на 100 000 строк~30 секунд~2 секунды
Сложность настройкиВысокая (нужно знать синтаксис)Низкая (интуитивный интерфейс)
Поддержка обновления данныхРучная правка формулАвтоматическое (при изменении источника)
Работа с разными форматамиОграниченоГибкие правила преобразования

5. Автоматизация через VBA: пользовательские функции

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

5.1. Функция для извлечения цифр

Откройте редактор VBA (Alt+F11), вставьте новый модуль (Insert → Module) и добавьте код:

Function ExtractNumbers(rng As Range) As String

Dim i As Integer, char As String

For i = 1 To Len(rng.Value)

char = Mid(rng.Value, i, 1)

If IsNumeric(char) Then ExtractNumbers = ExtractNumbers & char

Next i

End Function

Теперь в Excel можно использовать =ExtractNumbers(A1).

5.2. Функция для извлечения букв

Function ExtractLetters(rng As Range) As String

Dim i As Integer, char As String

For i = 1 To Len(rng.Value)

char = Mid(rng.Value, i, 1)

If Not IsNumeric(char) Then ExtractLetters = ExtractLetters & char

Next i

End Function

Примеры использования:

  • 🔹 =ExtractNumbers(A1) → вернёт 12345 для PRD-12345.
  • 🔹 =ExtractLetters(A1) → вернёт PRD-.
⚠️ Внимание: Перед использованием VBA сохраните файл как .xlsm (с поддержкой макросов). В противном случае функции не будут работать, а Excel выдаст ошибку при открытии.

5.3. Расширенная функция: разделение с учётом регистра

Если нужно сохранить регистр букв (например, AbC123AbC), модифицируйте код:

Function ExtractLettersCase(rng As Range) As String

Dim i As Integer, char As String

For i = 1 To Len(rng.Value)

char = Mid(rng.Value, i, 1)

If Not IsNumeric(char) Then ExtractLettersCase = ExtractLettersCase & char

Next i

End Function

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

При разделении цифр и букв пользователи часто сталкиваются с проблемами. Вот TOP-5 ошибок и их решения:

  • 🔹 Формула возвращает #ЗНАЧ! → Проверьте, не содержит ли ячейка #Н/Д или пустое значение. Используйте ЕСЛИОШИБКА для обработки.
  • 🔹 Цифры сохраняются как текст → Примените ЗНАЧЕН или поменяйте формат ячейки на Общий.
  • 🔹 Формула массива не работает → Убедитесь, что ввели её с Ctrl+Shift+Enter (в старых версиях Excel).
  • 🔹 Power Query не видит данные → Преобразуйте диапазон в Таблицу Excel (Ctrl+T).
  • 🔹 VBA-функция не обновляется → Проверьте, включены ли макросы (Файл → Параметры → Центр управления безопасностью).

Критическая ошибка: если в ячейке есть непечатаемые символы (например, символ табуляции или перевода строки), формулы могут работать неправильно. Чтобы их удалить, используйте =СЖПРОБЕЛЫ(A1) или в Power Query выберите CleanTrim.

6.1. Тест на скрытые символы

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

=ДЛСТР(A1)

Если результат больше, чем количество видимых символов, значит, в ячейке есть «мусор». Очистите данные с помощью СЖПРОБЕЛЫ или ПЕЧСИМВ:

=ПЕЧСИМВ(A1)

7. Сравнение методов: какой выбрать?

Выбор способа зависит от объёма данных, версии Excel и частоты использования. Ниже — сравнительная таблица:

МетодСкоростьСложностьПодходит дляОграничения
Текст по столбцамСредняяНизкаяПростые разделители, фиксированная ширинаНе работает со смешанными символами
ФормулыНизкая (на больших данных)ВысокаяГибкие правила, любые версии ExcelТормозит при >10 000 строк
Power QueryВысокаяСредняяБольшие объёмы, сложные преобразованияТребует Excel 2016+
VBAВысокаяВысокая (нужно знать код)Повторяющиеся задачи, пользовательские функцииНе работает в .xlsx без макросов
Ручной вводНизкаяНизкаяМалые объёмы (<100 строк)Ошибки при копировании

Рекомендации:

  • 🔹 Для разовых задач на 100–1000 строк → Текст по столбцам или формулы.
  • 🔹 Для ежедневной обработки больших файлов → Power Query или VBA.
  • 🔹 Если нужна максимальная гибкость → комбинируйте методы (например, Power Query для очистки + формулы для финальной обработки).

FAQ: Ответы на частые вопросы

Можно ли разделить цифры и буквы в Google Таблицах?

Да, в Google Sheets работают аналогичные методы:

  • 🔹 Для цифр: =REGEXEXTRACT(A1; "[0-9]+").
  • 🔹 Для букв: =REGEXREPLACE(A1; "[0-9]"; "").

Также доступен инструмент Данные → Разделить текст на столбцы (аналог Текст по столбцам в Excel).

Почему после разделения цифры отображаются с апострофом ('12345)?

Это означает, что Excel воспринимает число как текст. Чтобы исправить:

  1. Выделите ячейки с апострофом.
  2. Нажмите на жёлтый значок предупреждения → Преобразовать в число.
  3. Или используйте =ЗНАЧЕН(A1).
Как разделить данные, если цифры и буквы чередуются (например, a1b2c3)?

Используйте VBA или Power Query с пользовательскими правилами. Пример кода для VBA:

Function SplitMixed(rng As Range)

Dim i As Integer, result As String

For i = 1 To Len(rng.Value)

If IsNumeric(Mid(rng.Value, i, 1)) Then

result = result & " " & Mid(rng.Value, i, 1)

Else

result = result & Mid(rng.Value, i, 1)

End If

Next i

SplitMixed = result

End Function

Результат для a1b2c3: a 1b 2c 3 (далее разделите по пробелу).

Можно ли автоматизировать процесс для новых данных?

Да, есть три варианта:

  • 🔹 Power Query: настройте запрос один раз, и он будет обновляться при изменении источника.
  • 🔹 VBA: создайте макрос, который запускается по кнопке или при открытии файла.
  • 🔹 Таблицы Excel: преобразуйте данные в Умную таблицу (Ctrl+T) и используйте формулы со ссылками на столбцы (они автоматически расширятся).
Как разделить данные, если цифры и буквы разделены пробелами или другими символами?

Используйте Текст по столбцам с указанием разделителя или формулы:

  • 🔹 Для пробелов: =ЛЕВСИМВ(A1;НАЙТИ(" ";A1)-1) (буквы) и =ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1)) (цифры).
  • 🔹 Для любых разделителей: =ПОДСТАВИТЬ(A1;разделитель;"|"), затем разделите по |.