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

Работа с числовыми данными в Microsoft Excel часто требует нестандартного форматирования — например, когда нужно разделить цифры запятыми для удобства чтения, подготовки отчётов или экспорта в другие системы. Типичная ситуация: у вас есть столбец с числами 1234567, а нужно получить 1,234,567 (разделение тысяч) или 1,2,3,4,5,6,7 (запятая между каждой цифрой). В этой статье разберём все возможные сценарии — от базовых настроек формата до автоматизации через Power Query и VBA.

Важно понимать, что Excel по умолчанию разделяет тысячи незащищёнными пробелами (в русскоязычных версиях) или запятыми (в англоязычных). Но если вам нужно именно вставить запятые между ВСЕМИ цифрами или каждыми N символами, стандартные инструменты не подойдут — потребуются формулы или скрипты. Мы рассмотрим решения для всех версий Excel (2010–2023), включая Office 365 с динамическими массивами.

1. Стандартное форматирование тысяч: запятые через каждые 3 цифры

Если цель — просто разделить тысячи (например, преобразовать 1000000 в 1 000 000 или 1,000,000), используйте встроенные настройки формата. Этот метод не меняет само значение ячейки, а только её отображение.

Алгоритм:

  1. Выделите ячейки с числами.
  2. Нажмите Ctrl+1 (или правой кнопкой → Формат ячеек).
  3. Перейдите на вкладку Число → выберите категорию Числовой.
  4. В поле Число десятичных знаков укажите 0 (если не нужны дробные части).
  5. Поставьте галочку Разделитель групп разрядов.
📊 Какой разделитель тысяч используется в вашем Excel по умолчанию?
Пробел (1 000 000)
Запятая (1,000,000)
Точка (1.000.000)
Другой

Обратите внимание: в русскоязычных версиях Excel разделителем по умолчанию служит пробел, а в англоязычных — запятая. Чтобы изменить символ-разделитель:

  • 🔹 В Windows: Панель управления → Язык и региональные стандарты → Дополнительные параметры → Разделитель групп разрядов.
  • 🔹 В Excel: Файл → Параметры → Дополнительно → Параметры редактирования → Использовать системные разделители (снимите галочку, чтобы вручную задать символ).
⚠️ Внимание: Если после применения формата в ячейке отображается ########, расширьте столбец — данные не помещаются по ширине.

2. Формулы для разделения цифр запятыми: TEXT, SUBSTITUTE, CONCAT

Когда нужно вставить запятую между каждой цифрой (например, преобразовать 12345 в 1,2,3,4,5), стандартное форматирование не поможет. Здесь пригодятся текстовые функции. Рассмотрим 3 варианта формул.

Способ 1: Функция TEXT с пользовательским форматом

Подходит для разделения групп разрядов (аналог ручного форматирования, но через формулу):

=TEXT(A1; "#,##0")

Где A1 — ячейка с исходным числом. Результат: 1,234,567.

Способ 2: Разделение каждой цифры запятой

Используем комбинацию MID, ROW и TEXTJOIN (для Excel 2019+):

=TEXTJOIN(",", ИСТИНА, СРЗНАЧ(ПСТР($A1; СТРОКА(ДВССЫЛ("1:" & ДЛСТР($A1))); 1)))

Для старых версий Excel замените TEXTJOIN на:

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

📋 Проверьте версию Excel (для TEXTJOIN нужна 2019+)

📋 Убедитесь, что исходные данные — текст (если числа с ведущими нулями)

📋 Скопируйте формулу как значение, если нужно сохранить результат-->

Способ 3: Разделение каждых N цифр

Допустим, нужно разделить число запятыми через каждые 2 цифры (12345612,34,56). Формула:

=ПОДСТАВИТЬ(СЦЕПИТЬ(ЕСЛИОШИБКА(ПСТР($A1; СТРОКА(ДВССЫЛ("1:" & ДЛСТР($A1)/2))*2-1; 2); ""); ","); ", "; ",")
Исходное число Формула Результат
1234567 =TEXT(A1; "#,##0") 1,234,567
12345 =TEXTJOIN(",", 1, MID(A1, ROW(1:5), 1)) 1,2,3,4,5
1000000 =SUBSTITUTE(TEXT(A1; "0,,"), " ", ",") 1,000,000

3. Power Query: автоматизация для больших данных

Если нужно обработать тысячи строк, ручное применение формул неэффективно. Power Query (доступен в Excel 2016+) позволяет автоматизировать процесс:

  1. Выделите данные → Данные → Из таблицы/диапазона (Excel создаст таблицу, если её нет).
  2. В открывшемся редакторе Power Query выберите столбец с числами.
  3. Перейдите на вкладку ПреобразоватьФормат → Заменить.
  4. В поле Найти введите регулярное выражение для разделения:
    • 🔢 Для разделения тысяч: (\d)(?=(\d{3})+(?!\d)) → заменить на $1,.
    • 🔢 Для запятой между каждой цифрой: вставьте пользовательский столбец с формулой =Text.Combine(List.Transform(Text.ToList([Column1]), each _), ",").
  • Нажмите Закрыть и загрузить.
  • Преимущество Power Query — возможность обновлять данные одним кликом (Данные → Обновить все), если исходные числа изменятся.

    4. Макросы VBA: для продвинутых пользователей

    Если вам нужно постоянно преобразовывать числа с запятыми (например, для еженедельных отчётов), напишите простой макрос. Откройте редактор VBA (Alt+F11) и вставьте код в модуль:

    Sub AddCommasBetweenDigits()
    

    Dim rng As Range

    Dim cell As Range

    Dim str As String

    Dim i As Integer

    Set rng = Selection ' Выделенный диапазон

    For Each cell In rng

    If IsNumeric(cell.Value) Then

    str = CStr(cell.Value)

    For i = 2 To Len(str)

    str = Left(str, i - 1) & "," & Mid(str, i)

    i = i + 1

    Next i

    cell.Value = str

    End If

    Next cell

    End Sub

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

    1. Выделите ячейки с числами.
    2. Запустите макрос (Alt+F8 → выберите AddCommasBetweenDigitsВыполнить).
    ⚠️ Внимание: Макрос изменяет исходные данные (преобразует числа в текст). Сначала сохраните резервную копию файла.
    Как вернуть числа обратно?

    Если после применения макроса вам снова нужны числа (без запятых), используйте формулу =ЗНАЧЕН(ПОДСТАВИТЬ(A1; ","; "")) или запишите обратный макрос с функцией Replace.

    5. Особенности для чисел с ведущими нулями

    Если ваши данные содержат ведущие нули (например, 0012345), Excel по умолчанию обрезает их. Чтобы сохранить нули и разделить цифры запятыми:

    1. Преобразуйте числа в текст:
      • 📌 Выделите ячейки → Формат ячеек → Текстовый.
      • 📌 Или используйте формулу =ТЕКСТ(A1; "0").
  • Примените одну из формул для текста (см. раздел 2).
  • Пример: чтобы из 0012345 получить 0,0,1,2,3,4,5, используйте:

    =TEXTJOIN(",", 1, MID(TEXT(A1; "0"); ROW(1:7); 1))

    6. Частые ошибки и как их избежать

    При работе с запятыми в Excel пользователи часто сталкиваются с типичными проблемами:

    • 🚫 Ошибка #ЗНАЧ!: возникает, если формула ожидает число, а ячейка содержит текст. Решение: используйте =ЗНАЧЕН(A1) для преобразования.
    • 🚫 Неправильный разделитель: в русскоязычном Excel запятая может восприниматься как десятичный разделитель. Решение: замените её на точку с запятой в формулах (=ПОДСТАВИТЬ(A1; ","; ";")).
    • 🚫 Потеря данных: при использовании Формат ячеек изменяется только отображение, а не значение. Для реального разделения используйте формулы или VBA.

    Если после применения формул в ячейках отображаются даты вместо чисел (например, 1,234 превращается в 1-фев), измените формат ячейки на Текстовый или Общий.

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

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

    Да, в Google Sheets используйте те же формулы, но с английскими названиями функций:

    • 📌 =TEXT(A1; "#,##0")=TEXT(A1; "#,##0") (аналогично).
    • 📌 =TEXTJOIN=JOIN или =ARRAYFORMULA(TEXTJOIN).

    Для разделения каждой цифры: =ARRAYFORMULA(JOIN(",", SPLIT(A1; ""))).

    Как убрать запятые между цифрами обратно?

    Используйте формулу =ПОДСТАВИТЬ(A1; ","; "") или =ЗНАЧЕН(ПОДСТАВИТЬ(A1; ","; "")), если нужно вернуть числовой формат. Для VBA:

    Sub RemoveCommas()
    

    Dim rng As Range

    For Each rng In Selection

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

    Next rng

    End Sub

    Почему после применения формулы результат не обновляется?

    Вероятные причины:

    • 🔄 Включён Автоматический пересчёт? Проверьте: Формулы → Параметры вычислений → Автоматически.
    • 🔄 Формула введена как текст? Убедитесь, что ячейка не отформатирована как текст.
    • 🔄 Используете TEXTJOIN в Excel 2016? Эта функция появилась только в 2019 году.
    Как разделить запятыми числа в столбце с датами?

    Excel хранит даты как числа (количество дней с 1900 года). Чтобы разделить цифры в дате (например, 01.12.20230,1,1,2,2,0,2,3):

    1. Преобразуйте дату в текст: =ТЕКСТ(A1; "ддммгггг").
    2. Примените формулу для разделения: =TEXTJOIN(",", 1, MID(TEXT(A1; "ddmmyyyy"); ROW(1:8); 1)).
    Можно ли разделить запятыми числа в Excel Online?

    В веб-версии Excel доступны все текстовые функции, кроме TEXTJOIN (замените на =СЦЕПИТЬ с ПОДСТАВИТЬ). Макросы VBA и Power Query в Excel Online не работают.