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

Задача объединить цифры через дефис в Microsoft Excel или Google Таблицах возникает чаще, чем кажется: это может быть нумерация документов (например, «100-200»), диапазоны дат («2023-2026»), инвентарные номера («АБ-123-45») или даже генерация уникальных идентификаторов. Вручную прописывать дефисы неэффективно — особенно если речь идёт о сотнях строк. К счастью, в Excel есть минимум 5 способов автоматизировать этот процесс, от элементарных до продвинутых.

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

  • 🔹 Объединить две цифры дефисом без формул (способ для новичков).
  • 🔹 Использовать CONCAT и TEXTJOIN для гибкого форматирования.
  • 🔹 Автоматически генерировать диапазоны чисел (например, «1-10», «100-200»).
  • 🔹 Добавлять дефисы к числам с ведущими нулями (например, «001-005»).
  • 🔹 Применять пользовательский формат ячеек для визуального отображения.

Важно: методы работают во всех современных версиях Excel (2016 и новее), а также в Excel Online и Google Sheets. Для старых версий (2013 и ранее) некоторые функции могут потребовать адаптации.

📊 Как часто вы сталкиваетесь с необходимостью объединять данные в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

1. Ручной ввод: самый простой способ для единичных случаев

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

Как действовать:

  1. Введите первое число в ячейку (например, A1: 10).
  2. В соседней ячейке (B1) введите второе число (20).
  3. В третьей ячейке (C1) напишите формулу: =A1&"-"&B1.
  4. Нажмите Enter — получите результат 10-20.

⚠️ Внимание: При ручном вводе Excel воспринимает результат как текст, даже если исходные данные были числами. Это означает, что позже вы не сможете использовать такой результат в математических вычислениях (например, сложить «10-20» с другим числом).

2. Функция CONCAT: универсальное решение для любых данных

Функция CONCAT (или её устаревшая версия CONCATENATE в Excel 2016 и старше) позволяет объединять текст и числа с любыми разделителями, включая дефис. Её главный плюс — гибкость: можно соединять не только две ячейки, но и целые диапазоны.

Синтаксис:

=CONCAT(текст1; [текст2]; ...)

Примеры использования:

  • 📌 Простое объединение: =CONCAT(A1; "-"; B1) → «10-20».
  • 📌 С несколькими разделителями: =CONCAT("Префикс-"; A1; "-"; B1; "-суффикс") → «Префикс-10-20-суффикс».
  • 📌 Для диапазона: =CONCAT(A1:A3; "-") → «10-20-30» (если в A1:A3 числа 10, 20, 30).

🔹 Важное отличие от CONCATENATE: CONCAT автоматически игнорирует пустые ячейки, тогда как CONCATENATE вернёт лишние дефисы (например, «10--20» если B1 пустая).

Почему в некоторых версиях Excel нет функции CONCAT?

В Excel 2013 и старше вместо CONCAT используется CONCATENATE. Синтаксис аналогичный, но функция не поддерживает диапазоны. Пример: =CONCATENATE(A1; "-"; B1).

3. TEXTJOIN: продвинутое объединение с фильтрацией пустых ячеек

Функция TEXTJOIN (доступна с Excel 2019 и в Office 365) решает главную проблему CONCATконтроль над пустыми ячейками. Она позволяет:

  • 🔸 Указать разделитель (в нашем случае дефис).
  • 🔸 Пропускать пустые ячейки (опция ИСТИНА/ЛОЖЬ).
  • 🔸 Объединять целые диапазоны за один раз.

Синтаксис:

=TEXTJOIN(разделитель; игнорировать_пустые; текст1; [текст2]; ...)

Примеры:

Формула Данные в A1:A3 Результат
=TEXTJOIN("-"; ИСТИНА; A1:A3) 10, пусто, 30 10-30
=TEXTJOIN("-"; ЛОЖЬ; A1:A3) 10, пусто, 30 10--30
=TEXTJOIN(" - "; ИСТИНА; "Префикс"; A1; A2) 10, 20 Префикс - 10 - 20

⚠️ Внимание: TEXTJOIN преобразует все данные в текст. Если вам нужно сохранить числовой формат для дальнейших вычислений, используйте пользовательский формат ячеек (раздел 5).

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

Проверьте, что числа отображаются корректно (без ошибок #ЗНАЧ!)

Если нужно игнорировать пустые ячейки, используйте ИСТИНА в втором аргументе

Для сложных разделителей (например, " - ") заключайте их в кавычки-->

4. Генерация диапазонов чисел (например, «1-10», «100-200»)

Частая задача — создать строку вида «1-10» из двух чисел, где первое — начало диапазона, второе — конец. Здесь поможет комбинация функций TEXTJOIN или CONCAT с арифметическими операциями.

Пример 1: Простой диапазон из двух ячеек.

=A1 & "-" & B1

Если в A1 = 1, а в B1 = 10 → результат «1-10».

Пример 2: Автоматическое создание диапазонов с шагом.

Допустим, у вас есть начальное число в A1 (например, 5), и вам нужно сгенерировать строку «5-1-5-2-...-5-10». Используйте:

=TEXTJOIN("-"; ИСТИНА; A1; РЯД(1;10;0); " ") & "-" & (A1+10)

🔹 Это единственный способ динамически создать последовательность чисел через дефис без VBA.

Пример 3: Диапазоны с ведущими нулями (например, «001-010»).

Используйте функцию ТЕКСТ для форматирования:

=ТЕКСТ(A1; "000") & "-" & ТЕКСТ(B1; "000")

Если A1 = 1, B1 = 10 → результат «001-010».

5. Пользовательский формат ячеек: дефис без формул

Если вам нужно отображать числа через дефис, но сохранять их в исходном виде для вычислений, используйте пользовательский формат. Этот метод не меняет сами данные, а только их визуальное представление.

Как настроить:

  1. Выделите ячейку или диапазон.
  2. Нажмите Ctrl+1 (или правая кнопка → Формат ячеек).
  3. Перейдите на вкладку ЧислоДругие форматыВсе форматы.
  4. В поле Тип введите:

    Для двух чисел: 0"-"0 (например, «10-20»).

    Для чисел с текстом: "Префикс-"0"-суффикс" (например, «АБ-123-ВГ»).

⚠️ Внимание: Пользовательский формат работает только для отображения. Если скопировать ячейку в другой файл или программу, дефис может исчезнуть. Для постоянного соединения используйте формулы из предыдущих разделов.

6. Ошибки и решения: почему дефис не отображается?

Даже с простыми формулами могут возникать проблемы. Вот топ-5 ошибок и способы их исправления:

Проблема Причина Решение
Формула возвращает #ИМЯ? Опечатка в названии функции (например, CONCATE вместо CONCAT) Проверьте синтаксис. В Excel 2013 и старше используйте CONCATENATE
Дефис не отображается Разделитель не взят в кавычки (например, =A1&-&B1 вместо =A1&"-"&B1) Всегда заключайте разделители в кавычки: "-"
Результат отображается как дата (например, «10-20» становится «10.окт.20») Excel автоматически преобразует текст в дату, если он похож на формат даты Перед формулой добавьте апостроф ('=A1&"-"&B1) или измените формат ячейки на Текстовый
TEXTJOIN не работает У вас Excel 2016 или старше без подписки Office 365 Обновите Excel или используйте CONCAT с вложенными ЕСЛИ для игнорирования пустых ячеек
Ведущие нули исчезают (например, «001» становится «1») Excel по умолчанию убирает ведущие нули у чисел Используйте функцию ТЕКСТ (например, =ТЕКСТ(A1; "000")) или измените формат ячейки на Текстовый

🔹 Совет для сложных случаев: Если формула возвращает неожиданный результат, разбейте её на части. Например, вместо =TEXTJOIN("-"; ИСТИНА; A1:A10) проверьте сначала =A1&"-"&A2, затем расширяйте диапазон.

7. Автоматизация: макрос для массового добавления дефисов

Если вам нужно обработать тысячи строк, ручной ввод или даже формулы могут быть неэффективны. В этом случае поможет макрос на VBA (Visual Basic for Applications). Ниже приведён код, который добавляет дефис между числами в выделенном диапазоне:

Sub AddHyphenBetweenNumbers()

Dim cell As Range

For Each cell In Selection

If IsNumeric(cell.Value) And IsNumeric(cell.Offset(0, 1).Value) Then

cell.Offset(0, 2).Value = cell.Value & "-" & cell.Offset(0, 1).Value

End If

Next cell

End Sub

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

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Вернитесь в Excel, выделите диапазон с парами чисел (например, A1:B10).
  4. Запустите макрос (Alt + F8 → выберите AddHyphenBetweenNumbersВыполнить).
  5. Результат появится в столбце C.

⚠️ Внимание: Макрос перезапишет данные в третьем столбце выделенного диапазона. Перед запуском убедитесь, что там нет важной информации, или скопируйте данные на другой лист.

Как адаптировать макрос для других разделителей?

Чтобы использовать другой разделитель (например, тире «—» или слэш «/»), замените в коде символ "-" на нужный: cell.Offset(0, 2).Value = cell.Value & "—" & cell.Offset(0, 1).Value.

FAQ: Частые вопросы по работе с дефисами в Excel

Можно ли объединить более двух чисел через дефис?

Да! Используйте TEXTJOIN для диапазонов:

=TEXTJOIN("-"; ИСТИНА; A1:A5)

Если чисел много, и они идут подряд (например, 1, 2, 3, ..., 10), сгенерируйте последовательность функцией РЯД:

=TEXTJOIN("-"; ИСТИНА; РЯД(1;10;0))
Как сделать, чтобы дефис отображался только если обе ячейки не пустые?

Используйте комбинацию ЕСЛИ и CONCAT:

=ЕСЛИ(И(NOT(ЕПУСТО(A1)); NOT(ЕПУСТО(B1))); CONCAT(A1; "-"; B1); "")

Эта формула вернёт пустую строку, если хотя бы одна из ячеек A1 или B1 пустая.

Почему после объединения числа превращаются в текст?

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

  • Используйте пользовательский формат ячеек (раздел 5).
  • Либо разделите исходные числа и дефис по разным ячейкам, а отображение настройте через формат.
Как объединить числа через дефис в Google Таблицах?

В Google Sheets работают те же функции, но с небольшими отличиями:

  • Для CONCAT используйте =CONCATENATE(A1; "-"; B1) или =A1&"-"&B1.
  • TEXTJOIN доступен и работает аналогично Excel.
  • Для генерации последовательностей используйте =SEQUENCE(10; 1; 1) вместо РЯД.
Можно ли автоматически добавлять дефис при вводе данных?

Да, но для этого потребуется VBA-макрос на событие. Пример кода для листа, который добавляет дефис после ввода числа в столбец A и автоматически заполняет столбец B:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Me.Range("A:A")) Is Nothing Then

On Error Resume Next

If IsNumeric(Target.Value) Then

Target.Offset(0, 1).Value = Target.Value & "-" & Target.Offset(0, 1).Value

End If

End If

End Sub

⚠️ Этот код срабатывает при каждом изменении ячейки в столбце A и требует настройки под вашу задачу.