KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

Добавление символов каждые X символов в ячейках Excel — простые методы

АвторСяоянДата изменения

При работе с кодами товаров, серийными номерами, номерами телефонов, идентификационными номерами или длинными текстовыми строками в Excel часто возникает необходимость вставить определённый символ через каждые несколько знаков. Например, можно преобразовать ABCDEF123456 в ABC-DEF-123-456 или добавить пробелы каждые 4 цифры, чтобы упростить чтение длинных чисел.
Excel не предлагает встроенной кнопки для этой задачи, но вы легко справитесь с ней с помощью нескольких простых приёмов. В этой статье — практические способы вставки заданного символа через каждые X знаков в ячейках Excel.

Добавить символы каждые X символов

Добавление символов каждые X символов в Excel

Важные примечания и ограничения

Заключение


Добавление символов каждые X символов в Excel

Приведённые ниже методы позволят быстро вставлять определённые символы через заданное количество знаков в Excel, упрощая разделение длинных текстовых строк, идентификаторов, артикулов или числовых последовательностей на фиксированные интервалы для стандартизации и повышения читаемости.

 

Метод 1: добавление символов каждые X символов с помощью формулы

Если вы используете Excel 365 или Excel 2021, вы можете применить формулу динамического массива, чтобы разбить текст на группы фиксированной длины, а затем объединить их с помощью указанного символа.

Введите следующую формулу в пустую ячейку:

=TEXTJOIN("-",TRUE,MID(A2,SEQUENCE(ROUNDUP(LEN(A2)/4,0),,1,4),4))

Затем нажмите клавишу Enter. Перетащите маркер заполнения вниз, чтобы применить формулу к другим ячейкам.
Добавить символы каждые X символов с помощью формулы

Как работает эта формула?

  • LEN(A2): Возвращает общее количество символов в ячейке A2.
  • ROUNDUP(LEN(A2)/4,0): Вычисляет необходимое количество групп. Даже если в последней группе меньше 4 символов, она всё равно учитывается.
  • SEQUENCE(ROUNDUP(LEN(A2)/4,0),,1,4): Генерирует начальные позиции: 1, 5, 9, 13 и так далее.
  • MID(A2,SEQUENCE(…),4): Извлекает каждую группу из 4 символов из текста.
  • TEXTJOIN("-",ИСТИНА,…): Объединяет все извлечённые группы через дефис.

Настройка формулы

Вы можете настроить символ и интервал по своему вкусу.

Добавить пробел каждые 4 символа:

=TEXTJOIN(" ",TRUE,MID(A2,SEQUENCE(ROUNDUP(LEN(A2)/4,0),,1,4),4))

Добавить слэш каждые 2 символа:

=TEXTJOIN("/",TRUE,MID(A2,SEQUENCE(ROUNDUP(LEN(A2)/2,0),,1,2),2))

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

Если:

  • Оригинальный текст находится в A2,
  • Символ для вставки находится в B1,
  • Число интервала находится в C1
=TEXTJOIN($B$1,TRUE,MID(A2,SEQUENCE(ROUNDUP(LEN(A2)/$C$1,0),,1,$C$1),$C$1))

Преимущества и недостатки

ПреимуществаНедостатки
Динамический результат, обновляющийся автоматическиРаботает только в Excel 365, Excel 2021 и более поздних версиях
Не требует VBAФормула может быть сложной для новичков
Легко копируется вниз для нескольких ячеекРезультат основан на формуле, а не является статическим текстом
 

Метод 2: добавление символов каждые X символов с помощью кода VBA

Если вам нужно вставить определённый символ через фиксированное количество знаков сразу в нескольких ячейках и мгновенно получить результат — VBA станет отличным решением.

  1. Удерживая клавиши ALT + F11, откройте окно Microsoft Visual Basic for Applications в Excel.
  2. Нажмите Вставка > Модуль и вставьте следующий код в окно модуля.
Sub InsertCharacter()
'Updateby Extendoffice
Dim Rng As Range
Dim InputRng As Range, OutRng As Range
Dim xRow As Integer
Dim xChar As String
Dim index As Integer
Dim arr As Variant
Dim xValue As String
Dim outValue As String
Dim xNum As Integer
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
xRow = Application.InputBox("Number of characters :", xTitleId, Type:=1)
xChar = Application.InputBox("Specify a character :", xTitleId, Type:=2)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set OutRng = OutRng.Range("A1")
xNum = 1
For Each Rng In InputRng
    xValue = Rng.Value
    outValue = ""
    For index = 1 To VBA.Len(xValue)
        If index Mod xRow = 0 And index <> VBA.Len(xValue) Then
            outValue = outValue + VBA.Mid(xValue, index, 1) + xChar
        Else
            outValue = outValue + VBA.Mid(xValue, index, 1)
        End If
    Next
    OutRng.Cells(xNum, 1).Value = outValue
    xNum = xNum + 1
Next
End Sub
  1. Нажмите клавишу F5, чтобы запустить этот код. Появится диалоговое окно с запросом на выбор диапазона данных, в который вы хотите вставить определённый символ в текстовые строки. См. скриншот ниже:
    Выберите диапазон данных
  2. Затем нажмите кнопку OK. В следующем диалоговом окне укажите число — после каждого такого количества символов будет вставляться заданный символ. См. скриншот:
    Введите количество символов
  3. Затем нажмите кнопку OK. В следующем диалоговом окне введите символ, который нужно добавить к тексту. См. скриншот:
    Укажите символ
  4. Нажмите кнопку OK и выберите ячейку, в которую нужно поместить результат. См. скриншот:
    Выберите ячейку вывода
  5. Наконец, нажмите кнопку OK. Excel вставит указанный символ каждые X символов и разместит результаты в выбранной области размещения списка.
    Вставить символы каждые X символов с помощью кода VBA

Преимущества и недостатки

ПреимуществаНедостатки
Работает в старых версиях ExcelТребует включения макросов
Может обрабатывать множество ячеек одновременноVBA может быть сложным для новичков
Выводит статические результаты напрямуюНе является динамическим, если изменяется Исходные данные
Гибкие настройки символов и интерваловФайлы с макросами необходимо сохранять как .xlsm
 

Метод 3: добавление символов каждые X символов с помощью пользовательской функции

Пользовательская функция (UDF) позволяет создавать собственные функции Excel с помощью VBA, которые после добавления можно использовать на листе как обычные формулы.

  1. Нажмите сочетание клавиш Alt + F11, чтобы открыть редактор VBA.
  2. Нажмите Вставка > Модуль. Скопируйте и вставьте следующий код в модуль.
Function InsertEveryX(TextStr As String, InsertChar As String, IntervalNum As Long) As String
    Dim i As Long
    Dim ResultStr As String
    If IntervalNum <= 0 Then
        InsertEveryX = TextStr
        Exit Function
    End If
    For i = 1 To Len(TextStr) Step IntervalNum
        ResultStr = ResultStr & Mid(TextStr, i, IntervalNum) & InsertChar
    Next i
    If Len(ResultStr) > 0 Then
        ResultStr = Left(ResultStr, Len(ResultStr) - Len(InsertChar))
    End If
    InsertEveryX = ResultStr
End Function
  1. Закройте редактор VBA и вернитесь на лист. Введите следующую формулу:
=InsertEveryX(A2,"-",4)

Совет: вы также можете сохранить вставляемый символ и количество интервалов в ячейках.

Затем перетащите маркер заполнения вниз, чтобы применить формулу к остальным ячейкам.
Вставить символы каждые X символов с помощью пользовательской функции (UDF)

Преимущества и недостатки

ПреимуществаНедостатки
Работает как обычная формула ExcelТребует настройки VBA
Проще для восприятия, чем сложная формулаНеобходимо включить макросы
Можно многократно использовать в рабочей книгеНедоступно в других рабочих книгах без копирования
Поддерживает пользовательские символы и интервалыРабочую книгу следует сохранять как .xlsm
 

Метод 4: добавление символов каждые X символов с помощью Kutools для Excel

Если вы предпочитаете обходиться без сложных формул или кода VBA, Kutools для Excel предлагает гораздо более простой способ вставки символов в текст ячеек. Благодаря его мощным текстовым инструментам вы сможете мгновенно добавлять нужные символы в заданные позиции или применять операции обработки текста сразу ко множеству ячеек.

  1. Выделите ячейки, в которые нужно вставить символы. Затем нажмите Kutools > Текст > Добавить текст.
    выберите функцию добавления текста
  2. В диалоговом окне Добавить текст:
    1. Введите символ, который хотите вставить — например, -, / или пробел — в поле Текст.
    2. В разделе Позиция добавления выберите После указанной позиции и укажите позицию, куда следует вставить символ.
    3. Нажмите ОК.
      задайте параметры в диалоговом окне

Совет: в данном примере я указал значения 4, 8 и 12 в поле «После указанной позиции», что означает вставку заданного текста после 4-го, 8-го и 12-го символов каждой строки.

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

Быстрее вставляйте текст в ячейки Excel с Kutools

С помощью функции Kutools для Excel Добавить текст вы можете быстро вставлять нужные символы, знаки или текст в выбранные ячейки — без сложных формул и кода VBA.

Без формул и VBAВставляйте текст с помощью простых настроек вместо создания сложных формул.
Пакетная обработкаПрименяйте одно и то же правило вставки сразу ко множеству ячеек.
Гибкое позиционированиеДобавить текст в начале, в конце или на заданных позициях символов.
Подходит для новичковНаглядное диалоговое окно делает форматирование текста проще и эффективнее.

Важные примечания и ограничения

1. Результаты формул динамичны

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

Если вам нужны фиксированные текстовые значения, скопируйте результаты формулы и используйте:Главная>Вставить>Вставить значения

2. VBA и Kutools, как правило, возвращают статические результаты.

VBA и Kutools лучше подходят для однократной обработки. После вставки символов результат не будет автоматически обновляться при изменении исходного текста, если вы повторно не запустите код или инструмент.

3. Проверьте, не короче ли последняя группа

Если длина текста не делится нацело на заданное число интервалов, последняя группа будет содержать оставшиеся символы.

4. Пустые ячейки

Когда выбранный диапазон содержит пустые ячейки, VBA и Kutools обычно автоматически пропускают их или оставляют без изменений. Однако при использовании формул пустые ячейки могут привести к неожиданным результатам или ошибкам. Чтобы этого избежать, оберните формулу функциями ЕСЛИ или ЕСЛИОШИБКА — так пустые ячейки останутся пустыми.

=IF(A2="","",TEXTJOIN("-",TRUE,MID(A2,SEQUENCE(ROUNDUP(LEN(A2)/4,0),,1,4),4)))

5. Специальные символы

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


Заключение

Добавление символов каждые X позиций в Excel упрощает чтение, форматирование и управление длинными текстовыми строками. Пользователям Excel 365 или Excel 2021 подойдёт гибкое и динамичное решение на основе формул. Для обработки сразу множества ячеек эффективно использовать VBA. Если же вам нужна многократно применимая пользовательская формула — отличным выбором станет пользовательская функция (UDF). А тем, кто предпочитает простой, наглядный и безкодовый подход, Kutools для Excel предлагает ещё более быстрый способ выполнения таких задач с помощью функции «Формат текста».

В общем случае используйте формулы, если нужны динамические результаты; используйте VBA или пользовательские функции (UDF), когда требуется больший контроль; и используйте Kutools, если хотите максимально простой рабочий процесс с минимальным количеством ручных действий.