Если в ячейке Excel хранится число с разделителями (точки, запятые, пробелы или дефисы), а вам нужно разбить его на отдельные столбцы — например, 123-45-6789 превратить в три колонки 123, 45 и 6789 — стандартный инструмент Текст по столбцам не всегда срабатывает корректно. Проблема в том, что Excel по умолчанию воспринимает такие данные как текст или дату, а не как набор числовых сегментов. В 80% случаев пользователи сталкиваются с тем, что после разделения числа превращаются в даты (например, 01.05 становится 1 мая) или теряют ведущие нули (например, 00123 становится 123).
В этой статье разберём 7 способов разделения чисел по столбцам — от базовых (с помощью встроенных функций) до продвинутых (через Power Query и VBA), а также покажем, как избежать типичных ошибок при работе с разными форматами: телефонными номерами, идентификаторами, денежными суммами с валютами и научной нотацией. Особое внимание уделим случаям, когда стандартный мастер разделения отказывается работать — например, при неравномерных разделителях (123..456...789) или когда числа записаны в экспоненциальном формате (1.23E+05).
1. Разделение чисел с помощью мастера «Текст по столбцам»
Самый быстрый способ — использовать встроенный инструмент Данные → Текст по столбцам. Он подходит для чисел с фиксированными разделителями (запятая, точка с запятой, пробел, тире) или фиксированной шириной (например, первые 3 символа — код, следующие 2 — серия). Однако у метода есть критические ограничения:
- 🔢 Не сохраняет ведущие нули (например,
007станет7). - 📅 Преобразует двузначные числа в даты (например,
03/04→3 апреля). - ❌ Не работает с нестандартными разделителями (например,
123***456).
Чтобы избежать ошибок, следуйте алгоритму:
- Выделите столбец с числами.
- Перейдите на вкладку
Данные→Текст по столбцам. - Выберите
С разделителями(если разделитель явный) илиФиксированная ширина(если числа разбиты по позициям). - На шаге с разделителями снимите все галочки, кроме нужного символа (например, только
ТабуляцияилиПробел). - Нажмите
Готовои не забудьте изменить формат ячеек на «Текстовый» для результирующих столбцов.
⚠️ Внимание: Если после разделения числа отображаются как########, расширьте ширину столбца или измените формат наОбщий. Это означает, что Excel не может корректно отобразить данные из-за нехватки места.
1. Проверьте, что в столбце нет объединённых ячеек
2. Убедитесь, что разделитель одинаковый во всех строках
3. Преобразуйте столбец в текстовый формат (CTRL+1 → Текстовый)
4. Создайте резервную копию данных (на случай ошибок)
-->
2. Разделение чисел с ведущими нулями
Если в числе есть ведущие нули (например, 00198765432), стандартный мастер Текст по столбцам их обрежет. Чтобы сохранить нули, используйте один из двух методов:
Способ 1: Предварительное форматирование как текст
Перед разделением:
- Выделите столбец с числами.
- Нажмите
CTRL+1, выберите форматТекстовый. - Добавьте перед каждым числом апостроф (
') вручную или через функцию=ТЕКСТ(A1;"@"). - Запустите мастер
Текст по столбцам.
Способ 2: Формулы с функцией ТЕКСТ
Если числа разделены фиксированным символом (например, -), используйте комбинацию функций:
=ТЕКСТ(ЛЕВСИМВ(A1;НАЙТИ("-";A1)-1);"00000000")
=ТЕКСТ(ПСТР(A1;НАЙТИ("-";A1)+1;5);"00000")
Где "00000000" — маска для сохранения ведущих нулей (количество нулей = максимальная длина числа).
| Исходное число | Разделитель | Формула для первой части | Формула для второй части |
|---|---|---|---|
004-5678 | - | =ТЕКСТ(ЛЕВСИМВ(A1;2);"00") | =ПСТР(A1;4;4) |
000123.456 | . | =ТЕКСТ(ЛЕВСИМВ(A1;6);"000000") | =ПСТР(A1;8;3) |
01 23 4567 | пробел | =ТЕКСТ(ЛЕВСИМВ(A1;2);"00") | =ПСТР(A1;4;2) |
3. Разделение чисел с нестандартными разделителями
Если числа разделены редкими символами (например, 123***456, 123→456 или 123[456]), мастер Текст по столбцам их не распознаёт. В таких случаях используйте функции ПСТР + НАЙТИ:
=ЛЕВСИМВ(A1;НАЙТИ("***";A1)-1) // Первая часть
=ПСТР(A1;НАЙТИ("***";A1)+3;99) // Вторая часть
Для разделителей из нескольких символов (например, → или [ ]) модифицируйте формулу:
=ПСТР(A1;НАЙТИ("→";A1)+2;99) // Пропускаем 2 символа (→)
⚠️ Внимание: Если разделитель встречается в числе несколько раз (например,123-456-789), используйтеНАЙТИс третьим аргументом для указания позиции поиска:=ПСТР(A1;НАЙТИ("-";A1;НАЙТИ("-";A1)+1)+1;99)
4. Разделение чисел с плавающей запятой или валютами
Числа с десятичными разделителями (например, 123,45 или 1 000.50 $) требуют особого подхода, так как Excel может воспринимать их как даты или финансовые форматы. Рассмотрим два сценария:
Сценарий 1: Разделение целой и дробной части
Используйте функции ЦЕЛОЕ и ОСТАТ:
=ЦЕЛОЕ(A1) // Целая часть
=ОСТАТ(A1;1) // Дробная часть (например, 0,45)
Чтобы убрать ноль перед запятой в дробной части, примените:
=ЕСЛИ(ОСТАТ(A1;1)=0;"";ПСТР(ТЕКСТ(ОСТАТ(A1;1);"0.00");3;2))
Сценарий 2: Разделение суммы и валюты
Если число записано с валютой (например, 1000.50 USD), используйте:
=ЛЕВСИМВ(A1;НАЙТИ(" ";A1)-1) // Сумма
=ПСТР(A1;НАЙТИ(" ";A1)+1;3) // Валюта (USD)
Числа с тире (123-456)|Числа с пробелами (123 456)|Денежные суммы (1000.50 $)|Научная нотация (1.23E+05)|Другой вариант-->
5. Разделение чисел в научной нотации (1.23E+05)
Числа в экспоненциальном формате (например, 1.23E+05 = 123000) не разделятся стандартным мастером. Чтобы преобразовать их в обычный вид и затем разбить:
- Создайте вспомогательный столбец с формулой:
=ЗНАЧЕН(A1)Это преобразует
1.23E+05в123000. - Скопируйте результаты как значения (
CTRL+C → ПКМ → Значения). - Примените
Текст по столбцамс разделителемФиксированная ширина, если нужно разбить по разрядам.
Если требуется разделить мантиссу и порядок (например, выделить 1.23 и 5 из 1.23E+05), используйте:
=ЛЕВСИМВ(A1;НАЙТИ("E";A1)-1) // Мантисса (1.23)
=ПСТР(A1;НАЙТИ("E";A1)+2;2) // Порядок (05)
6. Автоматизация разделения с помощью Power Query
Для больших массивов данных (тысячи строк) удобнее использовать Power Query:
- Выделите данные →
Данные → Из таблицы/диапазона. - В редакторе Power Query выберите столбец →
Преобразовать → Разделить столбец → По разделителю. - Укажите разделитель (например,
-или пробел) и нажмитеОК. - Нажмите
Закрыть и загрузить.
Преимущества метода:
- 🔄 Сохраняет ведущие нули автоматически.
- 📊 Работает с неравномерными разделителями (например,
123..456). - 🔄 Позволяет обновить данные одним кликом при изменении исходника.
Как разделить числа с несколькими разными разделителями?
Используйте Power Query с заменой символов:
1. Замените все разделители на один общий (например, замените ., , и - на |).
2. Разделите столбец по символу |.
3. При необходимости переименуйте новые столбцы.
7. Разделение чисел с помощью VBA (для продвинутых пользователей)
Если нужно разделить числа по сложному шаблону (например, АБ123ВГ456, где буквы и цифры чередуются), напишите макрос:
Sub SplitNumbers()
Dim rng As Range, cell As Range
Dim parts() As String
Set rng = Selection
For Each cell In rng
If IsNumeric(Replace(cell.Value, "-", "")) Then
parts = Split(cell.Value, "-")
cell.Offset(0, 1).Value = parts(0)
cell.Offset(0, 2).Value = parts(1)
End If
Next cell
End Sub
Чтобы использовать макрос:
- Нажмите
ALT+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите столбец с данными и запустите макрос (
F5).
⚠️ Внимание: Перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов) и проверьте на тестовых данных.
Частые ошибки и как их избежать
Даже при правильном разделении пользователи сталкиваются с типичными проблемами:
| Ошибка | Причина | Решение |
|---|---|---|
Числа превращаются в даты (03/04 → 3 апреля) | Excel автоматически преобразует формат | Перед разделением отформатируйте столбец как Текстовый |
| Пропадают ведущие нули | Стандартный формат ячейки обрезает нули | Используйте формулу =ТЕКСТ(значение;"00000") |
Появляются символы # вместо чисел | Недостаточная ширина столбца | Расширьте столбец или измените формат на Общий |
Мaster Текст по столбцам не распознаёт разделитель | Символ нестандартный (например, →) | Используйте функции ПСТР/НАЙТИ или Power Query |
Критичный нюанс: Если после разделения числа отображаются как ########, это не ошибка — просто расширьте столбец. Если же появляется сообщение #ЗНАЧ!, проверьте, что в исходных данных нет пустых ячеек или объединённых областей.
FAQ: Ответы на частые вопросы
Как разделить номер телефона +7 (123) 456-78-90 по частям?
Используйте комбинацию функций:
=ПСТР(A1;3;3) // Код города (123)
=ПСТР(A1;8;3) // Первые 3 цифры номера (456)
=ПСТР(A1;12;2) // Последние 2 цифры (90)
Для автоматического удаления скобок и пробелов предварительно примените:
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"(";"");")";"");" ";"")
Почему после разделения числа с точкой (1.234) мастер создаёт 3 столбца вместо 2?
Excel воспринимает точку как разделитель тысячных и десятичных. Чтобы разделить только по десятичной точке:
- Замените точки на запятые (
=ПОДСТАВИТЬ(A1;". ";",")). - Используйте мастер
Текст по столбцамс разделителемЗапятая.
Как разделить число на разряды (например, 123456 → 12 34 56)?
Используйте формулы с фиксированной шириной:
=ЛЕВСИМВ(A1;2) // Первые 2 цифры (12)
=ПСТР(A1;3;2) // Следующие 2 цифры (34)
=ПСТР(A1;5;2) // Последние 2 цифры (56)
Для автоматического добавления пробелов:
=ЛЕВСИМВ(A1;2)&" "&ПСТР(A1;3;2)&" "&ПСТР(A1;5;2)
Можно ли разделить числа в Google Sheets так же, как в Excel?
Да, в Google Sheets есть аналогичный инструмент:
- Выделите столбец →
Данные → Разделить текст на столбцы. - Выберите разделитель или укажите фиксированную ширину.
Отличия от Excel:
- В Google Sheets ведущие нули сохраняются автоматически.
- Нет функции Power Query, но можно использовать
APP SCRIPTдля сложных задач.
Как разделить числа в столбце, если разделитель — это несколько подряд идущих символов (например, 123...456)?
Используйте комбинацию ПСТР и НАЙТИ с учётом длины разделителя:
=ЛЕВСИМВ(A1;НАЙТИ("...";A1)-1) // Первая часть (123)
=ПСТР(A1;НАЙТИ("...";A1)+3;ДЛСТР(A1)) // Вторая часть (456)
Для разделителей переменной длины (например, 123....456) сначала нормализуйте данные:
=ПОДСТАВИТЬ(A1;"....";"|") // Замените 4 точки на один символ