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

Проблема: когда цифры «слипаются» в одну колонку

Вы загрузили в Excel данные из внешнего источника — базы 1С, CRM-системы или даже ручного ввода — и обнаружили, что числа записаны в одном столбце «сплошняком»: номера телефонов без пробелов, многозначные коды без разделителей, или финансовые показатели с «склеенными» разрядами. Например, вместо удобных столбцов для тысяч, сотен, десятков и единиц вы видите 123456789 в одной ячейке. Работать с такими данными неудобно: их сложно анализировать, сортировать или использовать в формулах.

К счастью, Excel предлагает несколько способов разбить числа по столбцам — от ручных методов до полностью автоматизированных решений. В этой статье мы разберём 5 рабочих подходов (включая скрытые функции и макросы), сравним их плюсы и минусы, а также покажем, как избежать типичных ошибок при разбивке. Вы узнаете, как:

  • 🔢 Разделить многозначное число на отдельные цифры (например, 12341|2|3|4)
  • 📊 Разбить число по разрядам (тысячи, миллионы) с сохранением числового формата
  • 🔄 Автоматизировать процесс для тысяч строк с помощью Power Query или VBA
  • 🚫 Исправить ошибки, когда Excel «съедает» ведущие нули или неправильно распознаёт разделители

Начнём с самого простого — встроенных инструментов Excel, которые не требуют знания формул.

Способ 1: Разделение по фиксированной ширине (для чисел с одинаковым количеством знаков)

Если ваши числа имеют одинаковую длину (например, 8-значные артикулы или 10-значные номера телефонов), самый быстрый способ разбить их по столбцам — использовать функцию Текст по столбцам с разделением по фиксированной ширине. Этот метод не требует формул и работает даже с текстом, маскирующимся под числа.

Инструкция:

  1. Выделите столбец с данными (например, A1:A100).
  2. Перейдите на вкладку ДанныеТекст по столбцам.
  3. В первом окне мастера выберите Фиксированная ширинаДалее.
  4. В области предварительного просмотра кликните мышью в тех местах, где хотите разбить число (например, после каждого 3-го символа для разделения на тройки). Появятся вертикальные линии-разделители.
  5. Нажмите Далее, затем выберите формат столбцов (обычно Текстовый, чтобы сохранить ведущие нули).
  6. Укажите ячейку для вывода результата (по умолчанию — текущая) и нажмите Готово.

Пример: если исходные данные — 12345678, а вы поставили разделители после 2-го и 5-го символов, получите три столбца: 12|345|678.

⚠️ Внимание: Этот метод не подходит для чисел с переменной длиной (например, если в одном столбце смешаны 5- и 7-значные коды). В таком случае разделители сместятся, и данные разбиваются неправильно.

Выделите только те ячейки, которые нужно разбить (без пустых строк)

Проверьте, что все числа имеют одинаковую длину (используйте функцию ДЛСТР())

Сохраните резервную копию исходных данных

Убедитесь, что в настройках региональных стандартов используется правильный разделитель (запятая или точка)

-->

Способ 2: Формулы для извлечения отдельных цифр или разрядов

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

Основные формулы для разбивки:

ЗадачаФормулаПример (для числа 12345)
Извлечь первую цифру=ЛЕВСИМВ(A1;1)1
Извлечь последнюю цифру=ПРАВСИМВ(A1;1)5
Извлечь N-ю цифру (например, 3-ю)=ПСТР(A1;3;1)3
Разбить на тысячи и остаток=ЦЕЛОЕ(A1/1000) и =ОСТАТ(A1;1000)12 и 345
Разделить на пары цифр (для номеров карт)=ПСТР(A1;1;2), =ПСТР(A1;3;2) и т.д.12|34|5_

Для автоматизации процесса можно «протянуть» формулы вправо, чтобы каждое число разбивалось на отдельные столбцы. Например:

  • 📌 В ячейку B1 введите =ЛЕВСИМВ(A1;1) (первая цифра).
  • 📌 В C1=ПСТР($A1;КОЛОНКА()-1;1) и протяните вправо. Эта формула автоматически извлечёт 2-ю, 3-ю и т.д. цифры.

Преимущество этого метода — точный контроль над тем, какие именно части числа извлекаются. Недостаток — при изменении длины исходных чисел формулы придётся корректировать.

Формулы (ПСТР, ЛЕВСИМВ и др.)

Текст по столбцам (фиксированная ширина)

Power Query

Макросы VBA

Другой способ-->

Способ 3: Power Query — разбивка тысяч строк за 2 клика

Если вам нужно разбить большой объём данных (тысячи строк) и при этом числа имеют разную длину, оптимальным решением станет Power Query — инструмент для преобразования данных, встроенный в Excel 2016+ и Office 365. Он позволяет создавать повторяемые процессы без написания формул.

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

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

Power Query создаст новую таблицу с разбитыми данными. Главное преимущество этого метода — автоматическое обновление: если исходные данные изменятся, достаточно кликнуть Обновить на вкладке Данные, и разбивка пересчитается.

⚠️ Внимание: Если в столбце смешаны числа и текст (например, 123ABC), Power Query может неправильно интерпретировать данные. Перед разбивкой очистите столбец от посторонних символов с помощью функции ЗАМЕНИТЬ().
Как сохранить ведущие нули при разбивке в Power Query?

По умолчанию Power Query обрезает ведущие нули (например, 00123 станет 123). Чтобы этого избежать:

1. После разделения столбца выделите новые столбцы.

2. На вкладке Преобразовать выберите Тип данных: Текст.

3. Вручную добавьте ведущие нули с помощью формулы =ТЕКСТ([Столбец];"00000") (где 00000 — нужное количество знаков).

Способ 4: Макросы VBA для автоматизации (для опытных пользователей)

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

Sub SplitNumberIntoDigits()

Dim rng As Range

Dim cell As Range

Dim i As Integer, j As Integer

Dim numStr As String

' Выделяем диапазон с числами (например, столбец A)

Set rng = Selection

' Отключаем обновление экрана для ускорения

Application.ScreenUpdating = False

For Each cell In rng

If IsNumeric(cell.Value) Then

numStr = CStr(cell.Value)

' Разбиваем каждую цифру в отдельную ячейку вправо

For j = 1 To Len(numStr)

cell.Offset(0, j).Value = Mid(numStr, j, 1)

Next j

End If

Next cell

Application.ScreenUpdating = True

MsgBox "Разбивка завершена!", vbInformation

End Sub

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

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

Макрос разбивает каждое число на цифры и записывает их в ячейки справа от исходной. Например, если в A1 было 123, то в B1, C1 и D1 появятся 1, 2 и 3 соответственно.

Способ 5: Разбивка чисел с разделителями (запятые, пробелы, тире)

Иногда числа в Excel уже содержат разделители (например, номера телефонов в формате 8-912-345-67-89 или финансовые данные с пробелами: 1 234 567). В этом случае разбить их по столбцам проще всего с помощью функции Текст по столбцам с разделителем.

Алгоритм действий:

  1. Выделите столбец с данными.
  2. Перейдите в Данные → Текст по столбцам.
  3. Выберите С разделителямиДалее.
  4. Укажите символ-разделитель:
    • 🔹 Для пробелов — отметьте Пробел.
    • 🔹 Для тире или других символов — выберите Другой и введите нужный знак (например, -).
    • 🔹 Для табуляции — Табуляция.
  • Нажмите Готово.
  • Пример: если исходные данные — 100-200-300, после разбивки по тире получите три столбца: 100, 200, 300.

    ⚠️ Внимание: Если в числе используются несколько типов разделителей (например, 100,200 300 с запятой и пробелом), выберите их все в окне мастера. В противном случае данные разбиваются некорректно.

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

    При разбивке чисел по столбцам пользователи часто сталкиваются с неожиданными проблемами. Вот самые распространённые из них и способы их решения:

    ОшибкаПричинаРешение
    Ведущие нули пропадаютExcel по умолчанию удаляет нули в начале чисел (например, 00123 становится 123)Перед разбивкой измените формат столбца на Текстовый или используйте формулу =ТЕКСТ(A1;"00000")
    Числа преобразуются в датыExcel распознаёт форматы вроде 1-12 как 1 декЗамените разделители на нейтральные символы (например, тире на точку) или используйте текстовый формат
    Разбивка «съезжает»Числа в столбце имеют разную длину, а используется метод фиксированной шириныИспользуйте формулы или Power Query для гибкой разбивки
    Отрицательные числа разбиваются неправильноЗнак - воспринимается как разделитель или часть числаПредварительно замените - на другой символ (например, #), затем верните обратно
    Формулы возвращают ошибку #ЗНАЧ!В ячейке текст вместо числа, а используется функция вроде ЦЕЛОЕ()Проверьте данные на наличие скрытых символов с помощью =ТИП(A1) (должно вернуть 1 для чисел)

    Если ни один из методов не сработал, проверьте региональные настройки Excel: иногда проблема кроется в неверном разделителе целой и дробной части (запятая вместо точки или наоборот). Исправить это можно в Файл → Параметры → Дополнительно → Параметры редактирования.

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

    Можно ли разбить число на разряды (единица, десятки, сотни) без формул?

    Да, с помощью функции Текст по столбцам:

    1. Выделите столбец с числом (например, 1234).
    2. Запустите Данные → Текст по столбцам → Фиксированная ширина.
    3. Установите разделители после каждого знака (для 1234 — после 1-го, 2-го и 3-го символов).
    4. Выберите текстовый формат для результата.
    5. В итоге получите четыре столбца: 1|2|3|4.

    Как разбить номер телефона на код страны, города и номер?

    Используйте комбинацию функций ПСТР() и НАЙТИ():

    =ПСТР(A1;1;НАЙТИ(" ";A1)-1)  ' Код страны
    

    =ПСТР(A1;НАЙТИ(" ";A1)+1;3) ' Код города

    =ПРАВСИМВ(A1;8) ' Основной номер

    Для номера в формате +7 495 1234567.

    Почему после разбивки в некоторых ячейках появляется #Н/Д?

    Это происходит, если:

    • 🔸 В исходных данных есть пустые ячейки.
    • 🔸 Формула ссылается на ячейку за пределами диапазона (например, =ПСТР(A1;10;1) для 5-значного числа).
    • 🔸 Данные содержат непечатаемые символы (проверьте с помощью =КОДСИМВ(ЛЕВСИМВ(A1;1))).
    • Решение: добавьте проверку на ошибки с помощью =ЕСЛИОШИБКА(формула;"").

    Как автоматически разбивать числа при их добавлении в таблицу?

    Настройте динамическую таблицу с Power Query:

    1. Преобразуйте диапазон в таблицу (Ctrl+T).
    2. Загрузите её в Power Query (Данные → Из таблицы/диапазона).
    3. Добавьте шаг разбивки (как в Способе 3).
    4. Сохраните запрос и включите Обновить при открытии файла.

    Теперь при добавлении новых строк в таблицу разбивка будет обновляться автоматически.

    Можно ли разбить числа в Google Таблицах?

    Да, в Google Таблицах доступны аналогичные методы:

    • 🔹 Данные → Разделить текст на столбцы (аналог Текст по столбцам).
    • 🔹 Формулы =ЛЕВСИМВ(), =ПСТР() работают идентично.
    • 🔹 Для автоматизации используйте Apps Script (аналог VBA).

    Отличие: в Google Таблицах нет Power Query, но есть функция =SPLIT() для разбивки по разделителю.