Как объединить строки в Excel: все способы от CONCAT до Power Query

Объединение строк в Microsoft Excel — одна из самых востребованных операций при работе с текстовыми данными. Выгрузка отчетов из CRM, формирование почтовых адресов, создание уникальных идентификаторов — во всех этих задачах требуется склеивать текст из разных ячеек. Но стандартная функция СЦЕПИТЬ (или CONCAT в новых версиях) часто работает не так, как ожидается: теряются пробелы, числа преобразуются в даты, а разделители приходится добавлять вручную.

В этой статье мы разберем 5 профессиональных методов объединения строк — от базовых формул до автоматизации через Power Query и VBA. Вы узнаете, как избежать типичных ошибок (например, автоматического преобразования чисел в научный формат при склейке), как работать с массивами данных и почему иногда проще использовать & вместо встроенных функций.

Материал будет полезен как начинающим пользователям, так и опытным аналитикам. Все примеры протестированы в Excel 2019-2023 и Microsoft 365, с указанием особенностей для разных версий.

1. Базовые функции: CONCAT vs СЦЕПИТЬ vs оператор &

Начнем с классических инструментов, которые есть во всех версиях Excel. Главное отличие между ними — обработка пустых ячеек и массивов:

Функция СЦЕПИТЬ (LEGACY) — устаревший метод (сохранен для совместимости), который игнорирует пустые ячейки, но не поддерживает диапазоны. Формат:

=СЦЕПИТЬ(А1; " "; B1)

Функция CONCAT (Excel 2016+) — современная замена, умеет работать с диапазонами (например, CONCAT(A1:A10)), но тоже пропускает пустые значения. Пример с разделителем:

=CONCAT(A1:D1; " | ")

Оператор & — самый гибкий вариант, так как позволяет вручную контролировать разделители и формат данных. Минус — требует больше времени на ввод:

=A1 & " " & B1 & ", " & C1
  • 🔹 CONCAT — удобен для быстрого объединения столбцов, но не подходит, если нужно сохранять пустые ячейки как разделители
  • 🔹 СЦЕПИТЬ — используйте только для совместимости со старыми файлами
  • 🔹 & — лучший выбор для сложных шаблонов (например, =A1 & " (код: " & B1 & ")")
📊 Какой метод объединения строк вы используете чаще?
Функция CONCAT
Оператор &
Функция СЦЕПИТЬ
Power Query/VBA

2. Продвинутая склейка: TEXTJOIN и пользовательские разделители

Функция TEXTJOIN (появилась в Excel 2019) решает две ключевые проблемы предыдущих методов:

  1. Позволяет игнорировать пустые ячейки (опция ИСТИНА/ЛОЖЬ)
  2. Поддерживает произвольные разделители, включая символы табуляции (CHAR(9))

Синтаксис:

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

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

  • 📌 Объединение с запятой и пробелом: =TEXTJOIN(", "; ИСТИНА; A1:C1)
  • 📌 Склейка с переносом строки: =TEXTJOIN(CHAR(10); ИСТИНА; A1:A5) (не забудьте включить Перенос текста в ячейке!)
  • 📌 Создание хэштегов: =TEXTJOIN(" #"; ИСТИНА; "Тема:"; A1; B1) → "#Тема: #значение1 #значение2"

Важная особенность: TEXTJOIN автоматически преобразует числа в текст, избегая ошибок с научной нотацией (например, 1.23E+12).

Убедитесь, что версия Excel не старше 2019

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

Для переноса строк включите опцию "Перенос текста" в ячейке результата

Тестируйте формулу на небольшом диапазоне перед применением ко всему столбцу

-->

⚠️ Внимание: Если в ячейках содержатся ошибки (#Н/Д, #ЗНАЧ!), TEXTJOIN вернет первую встреченную ошибку. Используйте ЕСЛИОШИБКА для обработки:
=TEXTJOIN(", "; ИСТИНА; ЕСЛИОШИБКА(A1:A5; ""))

3. Объединение с форматированием: числа, даты, валюта

При склейке числовых данных и дат Excel часто преобразует их в нечитаемый формат. Например, дата 01.01.2023 может превратиться в 44927 (ее внутреннее представление). Чтобы этого избежать, используйте функцию ТЕКСТ:

Примеры корректного объединения:

=A1 & " (" & ТЕКСТ(B1; "дд.мм.гггг") & ") на сумму " & ТЕКСТ(C1; "# ##0,00 ₽")

Результат: Заказ 123 (05.06.2023) на сумму 1 250,50 ₽

Таблица форматов для функции ТЕКСТ:

Тип данныхФорматПример результата
Дата"дд ммм гггг"05 июн 2023
Время"ч:мм"14:30
Число"# ##0,0"1 250,5
Проценты"0,0%"75,5%
Денежный"$# ##0,00"$1 250,50

Для работы с условным форматированием (например, добавление нулей к кодам) используйте комбинацию ТЕКСТ + ПОВТОР:

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

Преобразует 123 в 00123-Наименование.

4. Объединение с условиями: ЕСЛИ, ВПР и массивы

Часто требуется склеивать строки только при выполнении определенных условий. Например, добавлять префикс "Ургентно: " к задачам с приоритетом "Высокий". Для этого комбинируйте функции объединения с логическими проверками.

Пример 1: Условное добавление текста

=ЕСЛИ(D1="Высокий"; "Ургентно: " & A1 & " (" & B1 & ")"; A1 & " (" & B1 & ")")

Пример 2: Склейка данных из разных таблиц по ключу (аналог ВПР)

=A1 & " (" & ВПР(A1; Лист2!A:B; 2; ЛОЖЬ) & ")"

Для работы с динамическими массивами (Excel 365) используйте ФИЛЬТР + TEXTJOIN:

=TEXTJOIN(", "; ИСТИНА; ФИЛЬТР(A1:A10; B1:B10="Да"))

Эта формула объединяет только те значения из A1:A10, где в B1:B10 стоит "Да".

Как объединить данные с дубликатами?

Используйте комбинацию УНИК + TEXTJOIN для удаления повторов перед склейкой:

=TEXTJOIN("; "; ИСТИНА; УНИК(A1:A10))

Это актуально для создания списков уникальных тегов или категорий.

⚠️ Внимание: Формулы массивов (с фигурными скобками {}) в старых версиях Excel требуют подтверждения Ctrl+Shift+Enter. В Excel 365 они работают автоматически, но могут замедлять производительность на больших диапазонах (>10 000 строк).

5. Автоматизация: Power Query и VBA

Для обработки больших объемов данных (тысячи строк) или регулярных задач лучше использовать инструменты автоматизации.

Метод 1: Power Query (Excel 2016+)

  1. Выделите исходные данные → Данные → Из таблицы/диапазона
  2. В редакторе Power Query выберите столбцы → Преобразовать → Объединить столбцы
  3. Укажите разделитель и порядок склейки
  4. Нажмите Закрыть и загрузить

Преимущества:

  • 🔧 Обрабатывает миллионы строк без замедления
  • 🔄 Позволяет обновлять данные одним кликом
  • 📊 Сохраняет исходное форматирование

Метод 2: VBA-макрос

Для создания пользовательской функции объединения:

  1. Нажмите Alt+F11Вставка → Модуль
  2. Вставьте код:
    Function CustomJoin(rng As Range, Optional delimiter As String = " ") As String
    

    Dim cell As Range

    For Each cell In rng

    If cell.Value <> "" Then

    CustomJoin = CustomJoin & delimiter & cell.Value

    End If

    Next cell

    CustomJoin = Mid(CustomJoin, Len(delimiter) + 1)

    End Function

  3. Используйте в Excel как обычную функцию: =CustomJoin(A1:C1; ", ")

VBA-решение удобно для:

  • 📝 Создания сложных шаблонов (например, генерация писем)
  • 🔒 Обработки защищенных листов
  • 📅 Автоматизации отчетов по расписанию

6. Типичные ошибки и их решения

Даже опытные пользователи сталкиваются с проблемами при объединении строк. Вот наиболее частые ошибки и способы их исправления:

Проблема 1: Числа преобразуются в научный формат (например, 1.23E+12)

Решение: Используйте ТЕКСТ или добавьте апостроф перед числом:

=A1 & "'" & B1

Проблема 2: Лишние пробелы в начале/конце строки

Решение: Применяйте СЖПРОБЕЛЫ перед объединением:

=СЖПРОБЕЛЫ(A1) & " " & СЖПРОБЕЛЫ(B1)

Проблема 3: Ошибка #ЗНАЧ! при склейке с пустыми ячейками

Решение: Заменяйте пустые значения на ноль или пробел:

=ЕСЛИ(A1=""; ""; A1) & ЕСЛИ(B1=""; ""; " " & B1)

Проблема 4: Потеря форматирования после объединения

Решение: Используйте Power Query или VBA для сохранения стилей. В ручном режиме применяйте Формат по образцу (Ctrl+Shift+CCtrl+Shift+V) после склейки.

ОшибкаПричинаРешение
#ИМЯ?Опечатка в названии функцииПроверьте синтаксис (например, CONCAT вместо CONCATENATE)
#ЧИСЛО!Слишком длинный результат (>32767 символов)Разбейте на несколько ячеек или используйте Power Query
#ЗНАЧ!Несовместимые типы данныхПреобразуйте все в текст с помощью ТЕКСТ
Неправильная кодировкаИмпорт данных из внешних источниковИспользуйте ПОДСТАВИТЬ для замены проблемных символов

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

Как объединить строки с сохранением абзацев (переносов строк)?

Используйте символ CHAR(10) в качестве разделителя и включите Перенос текста в ячейке результата:

=A1 & CHAR(10) & B1 & CHAR(10) & C1

Для Excel Online или Mac может потребоваться CHAR(13) (возврат каретки).

Можно ли объединить строки без потери данных при обновлении исходных ячеек?

Да, используйте Power Query или создайте связанную таблицу:

  1. Выделите данные → Вставка → Таблица
  2. Добавьте столбец с формулой объединения (он будет автоматически обновляться)

Избегайте ручного копирования результатов формул как "Значения" (Ctrl+Shift+V), если исходные данные меняются.

Как склеить текст с добавлением порядкового номера?

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

=СТРОКА(A1) & ". " & A1 & " (" & B1 & ")"

Для нумерации с ведущими нулями: =ТЕКСТ(СТРОКА(A1); "000") & "..."

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

Excel хранит даты как числа (количество дней с 1900 года). Чтобы отобразить дату корректно, используйте:

=ТЕКСТ(A1; "дд.мм.гггг") & " - " & B1

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

Как объединить строки в Google Таблицах?

В Google Sheets доступны аналогичные функции:

  • =CONCAT(A1:D1) — базовая склейка
  • =TEXTJOIN(", "; TRUE; A1:C1) — с разделителем
  • =ARRAYFORMULA(A1:A5 & " " & B1:B5) — для массивов

Отличие: в Google Таблицах TEXTJOIN доступен с 2017 года (во всех аккаунтах).