Когда нужно ставить числа через тире в Excel и зачем это делать
Запись чисел через дефис (например, 1-10 или 2020-2023) — распространённая задача при работе с диапазонами дат, номеров страниц, интервалов значений или инвентарных номеров. Вручную прописывать такие комбинации неудобно, особенно если речь идёт о сотнях строк. К счастью, Microsoft Excel и Google Таблицы предлагают несколько способов автоматизировать процесс: от простого форматирования до сложных формул с условиями.
Где это пригодится?
- 📅 Отчёты по периодам: "январь–март 2026" вместо перечисления всех месяцев.
- 📚 Библиография: указание страниц источника (например, "с. 45–67").
- 📦 Инвентаризация: диапазоны артикулов или серийных номеров (например, "AR-1001–AR-1050").
- 📊 Аналитика: группировка числовых интервалов (например, "возраст 18–25 лет").
В этой статье разберём 5 рабочих методов, включая:
- 🔹 Ручной ввод с автозаменой.
- 🔹 Форматирование ячеек через пользовательский формат.
- 🔹 Формулы
ТЕКСТСЦЕП(CONCATENATE) иОБЪЕДИНИТЬ(TEXTJOIN). - 🔹 Power Query для массовой обработки.
- 🔹 VBA-скрипты для продвинутых пользователей.
Способ 1: Ручной ввод с автозаменой (самый быстрый)
Если нужно однократно ввести диапазон чисел (например, "1–10"), проще всего сделать это вручную. Но даже здесь есть хитрости:
- Выделите ячейку, где должен появиться результат.
- Введите первое число, затем зажмите
Altи наберите0150на цифровой клавиатуре — это вставит длинное тире (—). Для короткого тире (-) просто нажмите клавишу дефиса. - Добавьте второе число и нажмите
Enter.
🔹 Преимущество: работает в любой версии Excel, не требует формул.
⚠️ Недостаток: не подходит для автоматического заполнения больших таблиц.
Способ 2: Пользовательский формат ячеек (для диапазонов дат)
Если вам нужно отобразить даты через тире (например, "01.01.2026–31.01.2026"), используйте пользовательский формат:
- Выделите ячейку с первой датой (например,
A1). - Нажмите
Ctrl+1(или правая кнопка →Формат ячеек). - Перейдите на вкладку
Число → (все форматы). - В поле
Типвведите:д.мм.гггг"–"д.мм.гггги нажмите
ОК. - В соседней ячейке (
B1) введите вторую дату и объедините ячейки (опционально).
🔹 Пример результата:
| Ячейка A1 | Отображение |
|---|---|
| 01.01.2026 | 01.01.2026–31.01.2026 |
| 15.05.2023 | 15.05.2023–20.05.2023 |
⚠️ Внимание: Этот метод работает только для парных ячеек с датами. Если нужно указать диапазон чисел (например, "1–10"), используйте формулы (см. следующий раздел).
Способ 3: Формулы для автоматического объединения чисел
Для динамического создания диапазонов (например, если числа хранятся в разных ячейках) используйте формулы:
Вариант 1: Функция ТЕКСТСЦЕП (CONCATENATE)
Синтаксис:
=ТЕКСТСЦЕП(A1;"–";B1)
Где:
- 📌
A1— ячейка с первым числом. - 📌
"–"— разделитель (можно заменить на"-"для короткого тире). - 📌
B1— ячейка со вторым числом.
Вариант 2: Функция ОБЪЕДИНИТЬ (TEXTJOIN) для нескольких чисел
Если нужно объединить более двух чисел (например, "1–5–10"), используйте:
=ОБЪЕДИНИТЬ("–";ИСТИНА;A1:B1)
🔹 Пример:
| A1 | B1 | Формула | Результат |
|---|---|---|---|
| 1 | 10 | =ТЕКСТСЦЕП(A1;"–";B1) | 1–10 |
| 2020 | 2023 | =A1&"–"&B1 | 2020–2023 |
| 5 | 8 | =ОБЪЕДИНИТЬ("–";ИСТИНА;A1:C1) | 5–7–8 |
Ячейки содержат числа, а не текст|Тире в формуле заключено в кавычки|Диапазон ячеек указан корректно (например, A1:B1)|Формат ячеек с результатом — "Общий" или "Текст"-->
Способ 4: Power Query для массовой обработки
Если у вас тысячи строк с числами, которые нужно преобразовать в диапазоны, используйте Power Query (доступен в Excel 2016+):
- Выделите исходные данные и нажмите
Данные → Из таблицы/диапазона. - В открывшемся редакторе Power Query выберите столбец с первым числом, затем:
- 📌 Перейдите на вкладку
Добавить столбец → Пользовательский столбец. - 📌 Введите формулу:
[Столбец1] & "–" & [Столбец2]
ОК и Закрыть и загрузить.🔹 Плюсы:
- 🔥 Обрабатывает миллионы строк без тормозов.
- 🔄 Позволяет обновлять данные одним кликом.
⚠️ Внимание: После загрузки данные в Power Query становятся статическими. Чтобы обновить результат при изменении исходных чисел, нажмите Данные → Обновить все.
Способ 5: VBA-скрипт для продвинутых пользователей
Если вам нужно автоматизировать процесс для регулярного использования, напишите простой макрос:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте новый модуль (
Insert → Module) и добавьте код:Sub AddDashBetweenNumbers()Dim rng As Range
Dim cell As Range
Set rng = Selection
For Each cell In rng
If IsNumeric(cell.Value) And IsNumeric(cell.Offset(0, 1).Value) Then
cell.Value = cell.Value & "–" & cell.Offset(0, 1).Value
End If
Next cell
End Sub
- Вернитесь в Excel, выделите пары ячеек с числами и запустите макрос (
Alt+F8 → AddDashBetweenNumbers → Выполнить).
🔹 Как работает скрипт:
- 📌 Объединяет числа из выделенной ячейки и соседней справа.
- 📌 Проверяет, что обе ячейки содержат числа (игнорирует текст).
- 📌 Заменяет исходное значение на диапазон (например, "5" → "5–10").
Модификация скрипта для вертикальных диапазонов
Чтобы объединять числа из ячеек сверху и снизу (например, A1 и A2), замените в коде cell.Offset(0, 1) на cell.Offset(1, 0).
Типичные ошибки и как их избежать
При работе с диапазонами чисел пользователи часто сталкиваются с следующими проблемами:
| Ошибка | Причина | Решение |
|---|---|---|
Формула возвращает #ЗНАЧ! |
Одна из ячеек содержит текст, а не число. | Проверьте формат ячеек (Числовой или Общий). |
Тире отображается как ? |
Некорректная кодировка символа. | Используйте CHAR(150) для длинного тире: |
| Даты преобразуются в числа (например, "45000–45001") | Excel хранит даты как числа. | Примените формат д.мм.гггг к ячейкам с датами. |
🔹 Совет для новичков:
Если формула не работает, проверьте разделитель списка в настройках Windows. В русскоязычных версиях Excel вместо ; может требоваться ,. Чтобы узнать свой разделитель, выполните:
=ИНФОРМ("разделитель_списка")
FAQ: Частые вопросы о записи чисел через тире
Можно ли автоматически создать диапазоны типа "1–5, 7–10" (с пропусками)?
Да, но для этого потребуется VBA-скрипт или сложная формула с условиями. Пример для двух диапазонов:
=ЕСЛИ(A1=1; "1–5"; ЕСЛИ(A1=7; "7–10"; ""))
Для динамического решения лучше использовать Power Query с группировкой данных.
Как в Google Таблицах поставить число через тире?
Все методы из этой статьи работают и в Google Sheets, за исключением Power Query (там используется Apps Script). Для формул замените:
ТЕКСТСЦЕП→CONCATENATEили&.ОБЪЕДИНИТЬ→TEXTJOIN.
Почему после объединения чисел через тире результат выравнивается по левому краю?
Это означает, что Excel воспринял результат как текст. Чтобы вернуть числовой формат:
- Выделите ячейку с результатом.
- Нажмите
Ctrl+1→ выберите форматОбщийилиЧисловой.
Если нужно сохранить тире, но вернуть числовое значение — это невозможно: после добавления символа данные становятся текстом.
Можно ли сделать автозаполнение диапазонов (например, протянуть "1–2" до "1–10")?
Нет, стандартное автозаполнение Excel не поддерживает такие шаблоны. Альтернативы:
- 📌 Используйте формулу с относительными ссылками (например,
=A1&"–"&B1) и протяните её вниз. - 📌 Напишите VBA-скрипт для кастомного автозаполнения.
Как убрать тире из ячейки и вернуть отдельные числа?
Используйте функцию РАЗДЕЛИТЬ (SPLIT в Google Sheets) или ТЕКСТПОСЛЕ/ТЕКСТДО:
=--ТЕКСТДО(A1;"–") // первое число
=--ТЕКСТПОСЛЕ(A1;"–") // второе число
Двойной унарный минус (--) преобразует текст обратно в число.