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

Когда в ячейке Excel смешаны буквы и цифры (например, А123Б45 или Товар500гр), стандартные функции вроде РАЗДЕЛИТЬ() или ТЕКСТ.ПОСЛЕ() часто дают сбой. Проблема в том, что программа не распознаёт автоматически, где заканчивается текст и начинается число — или наоборот. В 90% случаев это происходит из-за отсутствия разделителя (пробела, запятой, тире) между символами разных типов. Решение зависит от структуры данных: для фиксированного формата подойдут формулы с ЛЕВСИМВ() и ПРАВСИМВ(), а для произвольных комбинаций потребуются регулярные выражения или VBA-скрипты.

Например, если в ячейке A1 содержится значение Пример123, и вам нужно вытащить 123 в одну колонку, а Пример — в другую, то универсального метода нет. Excel не умеет "угадывать" границы между текстом и числами без явных указателей. Однако есть обходные пути: от простых функций для однотипных данных до сложных макросов для хаотичных наборов. Далее разберём все варианты — от базовых до продвинутых, с учётом особенностей Excel 2016–2023 и Excel Online.

1. Разделение по фиксированной позиции (если структура данных одинаковая)

Самый надёжный способ — когда буквы и цифры в ячейке всегда занимают одинаковое количество символов. Например, артикулы вида AB-12345, где первые 2 символа — текст, а остальные 5 — числа. В этом случае используйте комбинацию функций ЛЕВСИМВ(), ПРАВСИМВ() и ПСТР():

  • 🔹 Для извлечения текста: =ЛЕВСИМВ(A1; 2) (берёт первые 2 символа слева).
  • 🔹 Для извлечения чисел: =ПРАВСИМВ(A1; 5) (берёт последние 5 символов справа).
  • 🔹 Для извлечения средней части: =ПСТР(A1; 3; 2) (начиная с 3-го символа, длиной 2 знака).

Если длина текстовой или числовой части варьируется, но есть разделитель (например, дефис - или пробел), используйте РАЗДЕЛИТЬ.ПО.РАЗДЕЛИТЕЛЯМ() (в новых версиях Excel) или ТЕКСТ.ДО()/ТЕКСТ.ПОСЛЕ():

=ТЕКСТ.ДО(A1; "-")  // Извлечёт "AB" из "AB-12345"

=ТЕКСТ.ПОСЛЕ(A1; "-") // Извлечёт "12345" из "AB-12345"

⚠️ Внимание: Функции ТЕКСТ.ДО() и ТЕКСТ.ПОСЛЕ() появились только в Excel 2021 и Microsoft 365. В старых версиях используйте ЛЕВСИМВ() с НАЙТИ():

=ЛЕВСИМВ(A1; НАЙТИ("-"; A1)-1)  // Аналог ТЕКСТ.ДО

2. Автоматическое разделение с помощью "Текст по столбцам"

Встроенный инструмент "Текст по столбцам" (меню Данные → Текст по столбцам) справится, если между буквами и цифрами есть разделитель (пробел, запятая, точка с запятой и т.д.). Алгоритм:

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

Если разделителя нет, инструмент бесполезен. Например, для значения Товар100 он не сработает — потребуются формулы или VBA.

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

-->

3. Разделение с помощью формул для произвольных данных

Когда буквы и цифры перемешаны без правила (например, А1Б2В3), используйте комбинацию функций для извлечения только чисел или только текста:

Извлечение чисел из текста

Формула для Excel 2019 и новее:

=ЗНАЧЕН(СЦЕПИТЬ(ЕСЛИОШИБКА(--ПСТР(A1;СТРОКА($1:$10);1);"")))

Как работает:

  1. ПСТР(A1;СТРОКА($1:$10);1) — проверяет каждый символ по очереди.
  2. -- пытается преобразовать символ в число (если это цифра).
  3. ЕСЛИОШИБКА игнорирует ошибки (для букв).
  4. СЦЕПИТЬ объединяет все найденные цифры.
  5. ЗНАЧЕН преобразует результат в число.

Извлечение текста (букв) из строки

Формула для удаления всех цифр:

=СЦЕПИТЬ(ЕСЛИОШИБКА(ПСТР(A1;СТРОКА($1:$10);1);"";--ПСТР(A1;СТРОКА($1:$10);1)=""))
⚠️ Внимание: Эти формулы работают как массивные — после ввода нажмите Ctrl+Shift+Enter (в старых версиях Excel) или просто Enter (в Excel 365). В противном случае результат будет неверным.

Формулы|Инструмент "Текст по столбцам"|VBA-макросы|Регулярные выражения-->

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

Power Query (доступен в Excel 2016+ и Excel for Microsoft 365) позволяет разделять текст и числа даже в сложных комбинациях. Алгоритм:

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

Преимущество Power Query — обработка миллионов строк без замедления. Минус: требует навыков работы с инструментом.

Подробности о регулярных выражениях в Power Query

В Power Query можно использовать регулярные выражения для разделения. Например, формула = Table.SplitColumn(#"Предыдущий шаг", "Column1", Splitter.SplitTextByRegex("(\d+)"), {"Текст", "Число"}) разделит строку на текст и первую группу чисел (\d+). Это работает даже для хаотичных данных вроде А1Б22В333.

5. VBA-макрос для сложных случаев

Если данные не поддаются формулам (например, чередуются буквы и цифры: А10Б20В30), напишите макрос:

Sub SplitTextAndNumbers()

Dim rng As Range, cell As Range

Dim txt As String, num As String

Dim i As Integer, char As String

Set rng = Selection ' Выделите диапазон перед запуском

For Each cell In rng

txt = "" : num = ""

For i = 1 To Len(cell.Value)

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

If IsNumeric(char) Then

num = num & char

Else

txt = txt & char

End If

Next i

cell.Offset(0, 1).Value = txt ' Текст в соседнюю ячейку

cell.Offset(0, 2).Value = Val(num) ' Число ещё правее

Next cell

End Sub

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

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите диапазон с данными и запустите макрос (F5).

Результат: текст и числа будут записаны в соседние столбцы.

⚠️ Внимание: Макрос перезапишет данные в соседних ячейках. Перед запуском убедитесь, что справа от выделенного диапазона есть свободные столбцы.

6. Ошибки и их решения

Распространённые проблемы при разделении текста и чисел:

Ошибка Причина Решение
Формула возвращает #ЗНАЧ! Ячейка содержит ошибку или не текст Используйте ЕСЛИОШИБКА() или проверьте данные на ошибки
Числа отображаются как текст (выровнены влево) Формат ячейки — "Текст" Выделите ячейки → Главная → Формат → Числовой
Макрос не запускается Отключены макросы или нет прав Включите макросы в Файл → Параметры → Центр управления безопасностью
ТЕКСТ.ПОСЛЕ() не работает Старая версия Excel Замените на ПРАВСИМВ() с НАЙТИ()

Критическая ошибка: Если после разделения числа отображаются с экспонентой (например, 1.23E+05 вместо 123000), измените формат ячейки на Числовой без разделителя групп разрядов.

=ТИП(B1) вернёт 1 для чисел и 2 для текста. Это поможет убедиться, что разделение прошло корректно.

-->

7. Альтернативные методы (для опытных пользователей)

Если стандартные способы не подходят, попробуйте:

  • 🔧 Регулярные выражения в VBA: Создайте функцию с поддержкой regex для гибкого разделения. Пример кода:
    Function ExtractNumbers(rng As Range) As String
    

    Dim regex As Object

    Set regex = CreateObject("VBScript.RegExp")

    regex.Pattern = "\D"

    regex.Global = True

    ExtractNumbers = regex.Replace(rng.Value, "")

    End Function

    Вызов: =ExtractNumbers(A1).

  • 📊 Google Таблицы: Используйте =REGEXEXTRACT(A1; "\d+") для чисел и =REGEXEXTRACT(A1; "\D+") для текста.
  • 🔄 Python + Pandas: Для обработки больших файлов экспортируйте данные в CSV и используйте скрипт:
    import pandas as pd
    

    df = pd.read_csv('data.csv')

    df[['Text', 'Numbers']] = df['Column'].str.extract(r'([^\d]+)(\d+)')

    df.to_csv('result.csv', index=False)

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

Часто задаваемые вопросы

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

Да, но только с помощью формул массива, VBA или Power Query. Стандартные функции Excel (вроде РАЗДЕЛИТЬ.ПО.РАЗДЕЛИТЕЛЯМ) требуют явного разделителя (пробела, запятой и т.д.). Для данных без разделителей используйте методы из раздела 3 или раздела 5.

Почему после разделения числа отображаются как текст?

Это происходит, если ячейка имеет формат Текст. Чтобы исправить:

  1. Выделите ячейки с числами.
  2. На вкладке Главная выберите формат Числовой или Общий.
  3. Если это не помогло, используйте функцию ЗНАЧЕН(): =ЗНАЧЕН(B1).

Как разделить данные в формате "100г", "200мл" (цифры + единицы измерения)?

Используйте ЛЕВСИМВ() с НАЙТИ() для динамического определения позиции разделителя:

=ЛЕВСИМВ(A1; НАЙТИ(МИН(ЕСЛИОШИБКА(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1);""));A1)-1))

Эта формула найдёт первую цифру и вернёт всё, что перед ней (например, для 100г результат — пустая строка, а для Яблоки5кгЯблоки). Для извлечения чисел используйте:

=ЗНАЧЕН(СЦЕПИТЬ(ЕСЛИОШИБКА(--ПСТР(A1;СТРОКА($1:$10);1);"")))

Работает ли это в Excel Online?

Да, но с ограничениями:

  • 🔹 Текст по столбцам доступен.
  • 🔹 Формулы массива (вроде СЦЕПИТЬ(ЕСЛИОШИБКА(...))) работают.
  • 🔹 VBA и Power Query недоступны.
  • 🔹 Функции ТЕКСТ.ДО()/ТЕКСТ.ПОСЛЕ() поддерживаются.

Как автоматизировать разделение для новых данных?

Создайте таблицу Excel (Ctrl + T), а затем:

  1. Добавьте столбцы для текста и чисел.
  2. Введите формулы разделения в первую строку новых столбцов.
  3. Excel автоматически продлит формулы на новые строки при добавлении данных.

Для полной автоматизации напишите VBA-макрос, который будет запускаться при открытии файла или изменении данных (событие Worksheet_Change).