Если в вашей таблице Excel числа записаны в одном столбце слитно (например, 123456789 вместо 123-45-6789 или 20230515 вместо даты 20.05.2023), их можно автоматически разделить на несколько столбцов без ручного ввода. Проблема возникает, когда данные импортированы из внешних источников — 1С, PDF, банковских выписок или веб-форм — где разделители (пробелы, дефисы, точки) теряются. В 90% случаев достаточно стандартного инструмента "Текст по столбцам", но для сложных форматов (например, нефиксированная длина частей числа) потребуются формулы или Power Query.
В этой статье разберём 5 рабочих методов — от базовых до продвинутых, — включая обработку чисел с плавающей запятой, научной нотацией (1.23E+05) и многозначных идентификаторов. Все способы протестированы в Excel 2016–2023 и Office 365, но majority из них работают и в старых версиях (начиная с Excel 2010). Для каждого метода приведён пример с реальными данными и скриншотами этапов.
1. Стандартный разделитель: инструмент "Текст по столбцам"
Самый быстрый способ разбить числа на столбцы — использовать встроенную функцию Данные → Текст по столбцам. Она подходит, если в числе есть фиксированные разделители (например, пробел, запятая, тире) или если части числа имеют постоянную длину (например, ИНН или телефонный номер).
Пример: у вас есть столбец с номерами паспортов в формате 1234567890, которые нужно разбить на пары 12 34 567890. Алгоритм:
- Выделите столбец с числами.
- Перейдите на вкладку
Данные→Текст по столбцам. - Выберите
Фиксированная ширина(если разделителей нет) илиС разделителями(если они есть). - Для фиксированной ширины добавьте линии разрыва в предварительном просмотре, кликая по линейке.
- Нажмите
Готово.
⚠️ Внимание: Если числа хранятся как текст (например, с ведущими нулями), Excel может автоматически преобразовать их в числовой формат и обрезать нули. Чтобы избежать этого, перед разбивкой примените формат Текстовый к исходному столбцу.
| Исходные данные | Разделитель | Результат (Столбец 1) | Результат (Столбец 2) |
|---|---|---|---|
12345678 |
Фиксированная ширина (4 символа) | 1234 |
5678 |
2023-05-15 |
Дефис (-) |
2023 |
05 |
1.23E+05 |
Научная нотация (преобразовать в число) | 123000 |
(пусто) |
2. Разбивка по формулам: LEFT, MID, RIGHT
Когда числа не имеют явных разделителей, но их структура предсказуема (например, первые 3 цифры — код региона, следующие 6 — номер), используйте текстовые функции:
- 🔢
=LEFT(A1; 3)— извлекает первые 3 символа. - 🔢
=MID(A1; 4; 6)— извлекает 6 символов, начиная с 4-го. - 🔢
=RIGHT(A1; 2)— извлекает последние 2 символа.
Пример: разбиваем номер 780512345678 на части: 780 (код оператора), 512345 (номер), 678 (дополнительный код). Формулы:
=LEFT(A1; 3) → 780
=MID(A1; 4; 6) → 512345
=RIGHT(A1; 3) → 678
⚠️ Внимание: Если в числе есть невидимые символы (например, неразрывный пробел или символ табуляции), функции могут возвращать ошибку. Чтобы очистить данные, используйте =CLEAN(A1) или =TRIM(A1).
Удалите лишние пробелы (=TRIM(A1))
Проверьте длину строки (=LEN(A1))
Преобразуйте числа в текст (=TEXT(A1; "0"))
Сохраните оригинальные данные в отдельном столбце-->
3. Power Query: разбивка сложных числовых форматов
Power Query (доступен в Excel 2016+ и Office 365) позволяет автоматизировать разбивку чисел по сложным правилам, включая:
- 📊 Динамическую длину частей (например, первая часть — до первого нуля).
- 📊 Множественные разделители (например, точка с запятой и двоеточие).
- 📊 Обработку ошибок (например, пропуск пустых ячеек).
Инструкция для разбивки числа 1000500200 на части 1000, 500, 200:
- Выделите данные →
Данные → Получить данные → Из таблицы/диапазона. - В редакторе Power Query выделите столбец →
Преобразовать → Разделить столбец → По количеству символов. - Укажите длину частей:
3, 3, 3. - Нажмите
Закрыть и загрузить.
Power Query сохраняет шаги преобразования, поэтому при обновлении исходных данных разбивка применятся автоматически. Это удобно для регулярно обновляемых отчётов.
Как разбить число с плавающей запятой
1. Преобразуйте число в текст: =TEXT(A1; "0.000000").
2. Используйте Текст по столбцам с разделителем точка (.).
3. Для научной нотации (1.23E+05) сначала примените =VALUE(A1), затем разбивайте.
4. Макросы VBA для пакетной обработки
Если нужно разбить тысячи строк по одинаковому правилу, напишите макрос. Пример кода для разбивки 10-значного числа на части 2-3-5:
Sub SplitNumbers()
Dim rng As Range
Dim cell As Range
Dim lastRow As Long
' Определяем последний ряд с данными
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set rng = Range("A1:A" & lastRow)
' Добавляем столбцы для результатов
Range("B1:D1").Value = Array("Часть 1", "Часть 2", "Часть 3")
' Разбиваем каждое число
For Each cell In rng
If Len(cell.Value) = 10 Then
cell.Offset(0, 1).Value = Left(cell.Value, 2)
cell.Offset(0, 2).Value = Mid(cell.Value, 3, 3)
cell.Offset(0, 3).Value = Right(cell.Value, 5)
End If
Next cell
End Sub
⚠️ Внимание: Перед запуском макроса сохраните файл с расширением .xlsm (с поддержкой макросов) и проверьте, что в настройках безопасности разрешены макросы (Файл → Параметры → Центр управления безопасностью).
Текст по столбцам|Формулы (LEFT/MID/RIGHT)|Power Query|Макросы VBA-->
5. Разбивка чисел с ведущими нулями
Числа с ведущими нулями (например, 0012345) Excel по умолчанию преобразует в 12345, обрезая нули. Чтобы сохранить формат:
- Примените к исходному столбцу формат
Текстовый(Ctrl+1 → Числовой формат → Текстовый). - Используйте формулу
=TEXT(A1; "000000"), где количество нулей равно максимальной длине числа. - Применяйте разбивку (например,
=LEFT(A1; 2)) только после преобразования в текст.
Для пакетной обработки в Power Query:
- Загрузите данные в Power Query.
- Выделите столбец →
Преобразовать → Формат → Текст. - Примените разбивку по фиксированной ширине или разделителям.
6. Ошибки при разбивке и их решения
Распространённые проблемы и способы их исправления:
| Ошибка | Причина | Решение |
|---|---|---|
| Числа преобразуются в даты | Excel распознаёт формат как ДД.ММ.ГГГГ |
Примените формат Текстовый до разбивки |
Формулы возвращают #ЗНАЧ! |
Ячейка содержит текст вместо числа | Используйте =VALUE(A1) для преобразования |
| Ведущие нули пропадают | Числовой формат ячейки | Преобразуйте в текст: =TEXT(A1; "0") |
| Power Query не разбивает данные | Неверно указан разделитель | Проверьте кодировку символов (например, UTF-8) |
Если после разбивки в результатах появляются символы #N/A или пустые ячейки, проверьте:
- 🔍 Наличие скрытых символов (
=CLEAN(A1)). - 🔍 Соответствие длины числа заданным параметрам.
- 🔍 Формат ячеек (текст vs число).
FAQ: Частые вопросы по разбивке чисел в Excel
Можно ли разбить число на столбцы, если длина частей разная?
Да, используйте Power Query с динамическими правилами или напишите макрос на VBA, который будет анализировать структуру каждого числа индивидуально. Например, для числа 123-4567-89 можно разбить по дефису, даже если части имеют разную длину.
Как разбить большое число (например, 15 знаков) на группы по 3 цифры?
Используйте формулу с MID и ROW для динамического извлечения:
=MID($A1; (ROW(A1)-1)*3+1; 3)
Протяните формулу вниз, чтобы получить группы 123 456 789 012 345.
Почему после разбивки числа отображаются как ######?
Это означает, что ширина столбца недостаточна для отображения числа. Расширьте столбец или примените формат Текстовый. Также проверьте, не превышает ли число лимит Excel (15 знаков точности).
Как автоматизировать разбивку для новых данных?
Создайте шаблон с Power Query или макросами. В Power Query сохраните запрос и обновляйте его по кнопке Данные → Обновить все. Для макросов назначьте сочетание клавиш (Alt+F8 → Параметры).
Можно ли разбить числа в Google Sheets?
Да, в Google Таблицах используйте:
=SPLIT(A1; "-")— для разбивки по разделителю.=ARRAYFORMULA(MID(A1; ROW(INDIRECT("1:"&LEN(A1))); 1))— для посимвольной разбивки.
Инструмент Данные → Разделить текст на столбцы работает аналогично Excel.