Как в Excel соединить текст из двух ячеек в одну — 7 проверенных способов с примерами

Работа с текстовыми данными в Microsoft Excel часто требует объединения информации из нескольких ячеек. Например, когда нужно сгенерировать ФИО из отдельных столбцов с фамилией, именем и отчеством, создать уникальные идентификаторы или сформировать адрес из улицы, дома и квартиры. Но как это сделать быстро и без ошибок?

Многие пользователи ошибочно думают, что для объединения текста достаточно функции ОБЪЕДИНИТЬ (или CONCATENATE в английской версии). Однако этот метод устарел и имеет ограничения. Современные версии Excel предлагают более гибкие инструменты: от простых формул до автоматизации через Power Query и VBA. В этой статье разберём 7 рабочих способов — от базовых до продвинутых, с учётом нюансов форматирования и производительности.

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

1. Базовое объединение: функция СЦЕПИТЬ (CONCAT) и оператор &

Самый простой способ соединить текст — использовать функцию СЦЕПИТЬExcel 2016+) или её предшественницу ОБЪЕДИНИТЬ. Альтернатива — оператор &, который работает во всех версиях программы.

Пример формулы:

=СЦЕПИТЬ(A2; " "; B2)

Эта формула объединит содержимое ячеек A2 и B2, вставив между ними пробел. Аналогичный результат даст:

=A2 & " " & B2
  • Плюсы: работает во всех версиях Excel, не требует дополнительных настроек.
  • Минусы: не обрабатывает пустые ячейки (останется лишний пробел), не поддерживает диапазоны.

Важно! В Excel 365 функция СЦЕПИТЬ автоматически игнорирует пустые ячейки, а в Excel 2019 и старше — нет. Это может привести к лишним пробелам в результате.

Чем отличается СЦЕПИТЬ от ОБЪЕДИНИТЬ?

Функция ОБЪЕДИНИТЬ (CONCATENATE) устарела в Excel 2016 и заменена на СЦЕПИТЬ (CONCAT). Главные отличия:

- СЦЕПИТЬ поддерживает диапазоны ячеек (например, =СЦЕПИТЬ(A2:A10)), а ОБЪЕДИНИТЬ — только отдельные аргументы.

- СЦЕПИТЬ игнорирует пустые ячейки (в новых версиях), а ОБЪЕДИНИТЬ — нет.

2. Объединение с разделителями: функция ТЕКСТСОЕДИНИТЬ (TEXTJOIN)

Функция ТЕКСТСОЕДИНИТЬ (доступна с Excel 2016) решает две ключевые проблемы предыдущих методов:

  1. Позволяет указать разделитель (пробел, запятую, тире и т.д.).
  2. Игнорирует пустые ячейки (опционально).

Синтаксис:

=ТЕКСТСОЕДИНИТЬ(разделитель; игнорировать_пустые; текст1; [текст2]; ...)

Примеры:

  • Объединить A2:B2 через запятую: =ТЕКСТСОЕДИНИТЬ(", "; ИСТИНА; A2:B2)
  • Создать ФИО с пробелами (игнорировать пустые отчества): =ТЕКСТСОЕДИНИТЬ(" "; ИСТИНА; A2; B2; C2)

Критичный нюанс: если в ячейках есть числа или даты, их нужно предварительно преобразовать в текст с помощью функции ТЕКСТ или форматирования.

📊 Какой способ объединения вы используете чаще?
Функция СЦЕПИТЬ
Оператор &
Функция ТЕКСТСОЕДИНИТЬ
Другой метод
Не знаю, как объединять

3. Объединение с форматированием: функция ОБЪЕДИНИТЬТ (CONCAT в Excel 365)

В Excel 365 и Excel Online появилась функция ОБЪЕДИНИТЬТ (англ. CONCAT), которая поддерживает диапазоны ячеек и автоматически игнорирует пустые значения. Однако она не позволяет указать разделитель — для этого всё равно понадобится ТЕКСТСОЕДИНИТЬ.

Пример:

=ОБЪЕДИНИТЬТ(A2:D2)

Эта формула объединит все непустые ячейки в диапазоне A2:D2 без разделителей.

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

  • ✅ Нужно быстро объединить много ячеек (например, строки с данными).
  • ✅ Вам не важен порядок или разделители.
  • ❌ Не подходит, если требуется контроль над форматированием результата.

Проверить ячейки на лишние пробелы (ПРОБЕЛЫ или СЖПРОБЕЛЫ)

Преобразовать числа/даты в текст (ТЕКСТ или формат ячейки "Текстовый")

Удалить непечатаемые символы (ПЕЧСИМВ)

Объединить данные с учётом регистра (при необходимости ПРОПИСН/СТРОЧН)

-->

4. Объединение с условиями: функции ЕСЛИ + СЦЕПИТЬ

Что делать, если текст нужно объединять только при выполнении условия? Например, добавлять слово "ург." к адресу только если город — Москва, или соединять ФИО только если все три поля заполнены.

Пример 1: Объединение с проверкой заполненности

=ЕСЛИ(И(NЕПУСТО(A2); НЕПУСТО(B2)); СЦЕПИТЬ(A2; " "; B2); "")

Эта формула объединит A2 и B2 только если обе ячейки непустые.

Пример 2: Динамический разделитель

=ЕСЛИ(НЕПУСТО(A2); A2 & ЕСЛИ(НЕПУСТО(B2); ", " & B2; ""); "")

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

⚠️ Внимание: Вложенные функции ЕСЛИ могут сильно замедлить работу книги, если их много. В Excel 365 лучше использовать ТЕКСТСОЕДИНИТЬ с параметром ИСТИНА для игнорирования пустых ячеек.

5. Продвинутое объединение: Power Query

Если вам нужно объединить текст в тысячах строк или регулярно обновлять данные, Power Query (вкладка Данные → Получить данные) станет спасением. Этот инструмент позволяет:

  • Объединять столбцы с любым разделителем.
  • Очищать данные до объединения (удалять пробелы, исправлять регистр).
  • Автоматически обновлять результат при изменении исходных данных.

Пошаговая инструкция:

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

Преимущества перед формулами:

КритерийФормулыPower Query
Скорость обработки 100 000 строк~15 секунд~2 секунды
Поддержка динамических данныхДа (с пересчётом)Да (автообновление)
Очистка данных до объединенияНетДа
Сложность для новичковНизкаяСредняя

6. Объединение через макросы (VBA)

Для полной автоматизации можно написать простой макрос. Это актуально, если:

  • Нужно объединять данные по сложным правилам (например, с проверкой формата).
  • Требуется применить объединение к нескольким листам или книгам.
  • Нужно сохранять исходное форматирование (цвет, шрифт).

Пример кода для объединения двух столбцов:

Sub CombineCells()

Dim ws As Worksheet

Dim rng As Range

Dim i As Long

Set ws = ActiveSheet

Set rng = ws.Range("A2:B" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row)

For i = 1 To rng.Rows.Count

rng.Cells(i, 3).Value = rng.Cells(i, 1).Value & " " & rng.Cells(i, 2).Value

Next i

End Sub

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

  1. Нажмите Alt + F11 для открытия редактора VBA.
  2. Вставьте код в модуль (Insert → Module).
  3. Запустите макрос (F5) или назначьте его на кнопку.
⚠️ Внимание: Макросы могут конфликтовать с защитой книги. Перед запуском сохраните файл с расширением .xlsm (с поддержкой макросов) и временно отключите антивирус, если он блокирует выполнение.

7. Динамические массивы: объединение с проливанием (Excel 365)

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

Пример: объединение диапазона с проливанием

=ТЕКСТСОЕДИНИТЬ("; "; ИСТИНА; A2:A100 & " " & B2:B100)

Эта формула:

  1. Объединит пары ячеек из столбцов A и B через пробел.
  2. Результаты для всех строк появятся автоматически (без протягивания маркера заполнения).
  3. Игнорирует пустые ячейки.

Ограничения:

  • Работает только в Excel 365 и Excel Online.
  • Может замедлять книгу при большом количестве динамических формул.

Сравнение методов: какой выбрать?

Выбор способа объединения зависит от версии Excel, объёма данных и требований к результату. Ниже — сравнительная таблица для быстрого выбора:

МетодПодходит дляПлюсыМинусыВерсия Excel
СЦЕПИТЬ/& Простого объединения 2-3 ячеек Простота, совместимость Нет разделителей, не игнорирует пустые ячейки Все версии
ТЕКСТСОЕДИНИТЬ Объединения с разделителями Гибкость, игнорирует пустые ячейки Не работает в Excel 2013 и старше 2016+
ОБЪЕДИНИТЬТ Объединения диапазонов Поддерживает массивы Нет разделителей 365/2019
Power Query Больших объёмов данных Быстрота, очистка данных Сложнее для новичков 2010+
VBA Автоматизации сложных правил Максимальная гибкость Требует знаний программирования Все версии

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

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

  • 🔹 Лишние пробелы: Используйте СЖПРОБЕЛЫ для очистки данных до объединения:
    =ТЕКСТСОЕДИНИТЬ(" "; ИСТИНА; СЖПРОБЕЛЫ(A2); СЖПРОБЕЛЫ(B2))
  • 🔹 Числа преобразуются в даты: Принудительно конвертируйте их в текст с помощью ТЕКСТ:
    =ТЕКСТ(A2; "0") & "-" & B2
  • 🔹 Формула не тянется: В Excel 365 проверьте, не блокирует ли "проливание" соседняя таблица или данные.
  • 🔹 Русские буквы превращаются в "???": Установите кодировку UTF-8 при экспорте/импорте данных.
  • 🔹 Макрос не работает: Включите поддержку макросов в Файл → Параметры → Центр управления безопасностью.

Почему ТЕКСТСОЕДИНИТЬ не работает в Excel 2013?

Функция ТЕКСТСОЕДИНИТЬ (TEXTJOIN) была добавлена только в Excel 2016. В более старых версиях используйте комбинацию ЕСЛИ + СЦЕПИТЬ или VBA. Например:

=ЕСЛИ(A2<>""; A2 & ЕСЛИ(B2<>""; " " & B2; ""); "")

FAQ: Ответы на популярные вопросы

Как объединить текст из двух ячеек с переносом строки?

Используйте функцию СИМВОЛ(10) для вставки переноса и включите перенос текста в ячейке (Главная → Перенос текста):

=A2 & СИМВОЛ(10) & B2

В Excel 365 можно использовать ТЕКСТСОЕДИНИТЬ с СИМВОЛ(10) в качестве разделителя.

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

Да, но только через формулы или Power Query. Функция Объединить и поместить в центре (кнопка на панели) удаляет данные из исходных ячеек, оставляя только результат в первой ячейке.

Используйте вместо неё:

=ТЕКСТСОЕДИНИТЬ(" "; ИСТИНА; A2:D2)
Как объединить текст с сохранением форматирования?

Формулы и Power Query не сохраняют форматирование (цвет, шрифт). Для этого нужны:

  1. VBA-макрос с копированием формата.
  2. Ручное объединение через Объединить и поместить в центре (но данные в исходных ячейках удалятся!).
  3. Специальная надстройка (например, Kutools for Excel).
Почему после объединения появляются знаки "#ЗНАЧ!"?

Ошибка #ЗНАЧ! возникает, когда:

  • В ячейках есть ошибки (например, #ДЕЛ/0!). Используйте ЕСЛИОШИБКА:
  • =ЕСЛИОШИБКА(СЦЕПИТЬ(A2; B2); "")
  • Типы данных несовместимы (например, текст + ошибка). Преобразуйте данные в текст с помощью ТЕКСТ.
Как объединить текст из нескольких листов?

Для объединения данных с разных листов используйте:

  1. Формулы с 3D-ссылками:
    =Лист1!A2 & " " & Лист2!B2
  2. Power Query (объедините таблицы через Добавить столбец → Настраиваемый столбец).
  3. VBA для сложных сценариев (см. пример в разделе про макросы).

Для динамического обновления лучше подходит Power Query.