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

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

Многие пользователи сталкиваются с трудностями при попытке объединить текст: формулы возвращают ошибки, пробелы пропадают, а данные отображаются некорректно. В этой статье мы разберём 5 проверенных способов объединения текста — от базовых функций до автоматизации через VBA, — а также покажем, как избежать типичных ошибок и адаптировать решения под разные версии Excel (включая Excel 365 и Excel 2019).

Особое внимание уделим нюансам:

  • 🔹 Как сохранить форматирование при объединении (жирный текст, цвета)
  • 🔹 Почему функция СЦЕПИТЬ устарела и чем её заменить
  • 🔹 Как автоматически обновлять объединённые данные при изменении исходных ячеек
📊 Какую версию Excel вы используете?
Excel 365 (онлайн/десктоп)
Excel 2019
Excel 2016
Excel 2013 или старше
Другая (указать в комментариях)

1. Способ: функция CONCATENATE (СЦЕПИТЬ) — классический метод

Функция CONCATENATE (в русскоязычной версии — СЦЕПИТЬ) была основным инструментом для объединения текста в Excel до 2016 года. Она позволяет соединить до 255 текстовых аргументов в одну строку. Синтаксис простой:

=СЦЕПИТЬ(текст1; [текст2]; ...)

Где текст1, текст2 — это ссылки на ячейки или текстовые строки в кавычках.

Пример: если в ячейке A1 находится фамилия "Иванов", а в B1 — имя "Пётр", формула будет выглядеть так:

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

Результат: "Иванов Пётр". Обратите внимание на пробел в кавычках (" ") — без него слова сольются.

⚠️ Внимание: В Excel 365 и Excel 2019 функция СЦЕПИТЬ помечена как устаревшая, но продолжает работать. Microsoft рекомендует использовать CONCAT или TEXTJOIN (о них ниже).

  • ✅ Плюсы: работает во всех версиях Excel, простой синтаксис.
  • ❌ Минусы: не поддерживает диапазоны (нужно перечислять каждую ячейку), игнорирует пустые ячейки неявно.
Почему Microsoft заменила СЦЕПИТЬ на CONCAT?

Функция CONCAT (введена в 2016 году) поддерживает диапазоны ячеек как аргументы (например, =CONCAT(A1:A10)), что упрощает работу с большими массивами данных. К тому же, CONCAT лучше оптимизирована для современных версий Excel и интегрирована с динамическими массивами.

2. Способ: функция CONCAT — современная замена СЦЕПИТЬ

Функция CONCAT (в русскоязычной версии — ОБЪЕДИНИТЬ) пришла на смену СЦЕПИТЬ в Excel 2016 и новее. Её ключевое преимущество — поддержка диапазонов ячеек вместо перечисления каждой по отдельности. Синтаксис:

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

или для диапазона:

=CONCAT(A1:B1)

Пример: если нужно объединить все ячейки в строке с A1 по D1, достаточно написать:

=CONCAT(A1:D1; " ")
Excel автоматически добавит пробел между значениями. Если ячейка пустая, она будет проигнорирована.

🔹 Важный нюанс: CONCAT не позволяет указать разделитель для всех элементов — пробел в примере выше добавляется ко всем значениям подряд. Для гибкого управления разделителями используйте TEXTJOIN (см. следующий раздел).

Функция Поддержка диапазонов Управление разделителями Игнорирует пустые ячейки
СЦЕПИТЬ ❌ Нет ❌ Только ручное добавление ❌ Нет (пустые ячейки = пустая строка)
CONCAT ✅ Да ❌ Только общий для всех ✅ Да
TEXTJOIN ✅ Да ✅ Гибкое управление ✅ Да (настраивается)

3. Способ: TEXTJOIN — гибкое объединение с разделителями

Функция TEXTJOIN (в русскоязычной версии — ОБЪЕДТЕКСТ) появилась в Excel 2019 и стала самым мощным инструментом для работы с текстовыми данными. Она позволяет:

  • 📌 Указать любой разделитель (запятая, точка с запятой, пробел и т.д.)
  • 📌 Игнорировать пустые ячейки (или включать их по выбору)
  • 📌 Обрабатывать целые диапазоны за один раз

Синтаксис:

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

Где:

  • разделитель — символ или строка, разделяющая значения (например, "," или " ")
  • игнорировать_пустыеИСТИНА (игнорировать пустые ячейки) или ЛОЖЬ (включать их)
  • текст1, текст2... — ячейки или диапазоны

Пример: объединим данные из A1:D1 через запятую, игнорируя пустые ячейки:

=TEXTJOIN(", "; ИСТИНА; A1:D1)

Результат для строки с значениями "Иванов", "", "Пётр", "Сергеевич": "Иванов, Пётр, Сергеевич".

⚠️ Внимание: Если в ячейках есть числовые значения, TEXTJOIN преобразует их в текст автоматически. Однако даты и время отобразятся как числа (например, 44197 вместо "01.01.2021"). Чтобы этого избежать, используйте функцию ТЕКСТ:

=TEXTJOIN("; "; ИСТИНА; ТЕКСТ(A1;"dd.mm.yyyy"); B1:C1)

4. Способ: оператор & (амперсанд) — быстрый и универсальный

Оператор & (амперсанд) — самый простой способ объединить текст без функций. Он работает во всех версиях Excel, включая Excel 2003, и не требует запоминания синтаксиса. Достаточно поставить & между ячейками или текстовыми строками.

Примеры:

  • Базовое объединение: =A1 & " " & B1
  • С добавлением статического текста: ="ФИО: " & A1 & " " & B1
  • С несколькими разделителями: =A1 & ", " & B1 & " (" & C1 & ")"

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

  • ⚡ Мгновенный результат без ввода длинных формул.
  • 🛠 Гибкость: можно комбинировать ячейки, текст и даже результаты других функций.
  • 📱 Работает в Excel Mobile и онлайн-версии.

⚠️ Внимание: Если в ячейках есть числа, они будут преобразованы в текст автоматически, но без форматирования. Например, число 12345 станет строкой "12345", а дата 01.01.2023 — числом 44927. Чтобы сохранить формат, используйте функцию ТЕКСТ:

=ТЕКСТ(A1;"dd.mm.yyyy") & " - " & B1

Ячейки не содержат ошибок (#Н/Д, #ЗНАЧ! и т.д.)|Текстовые данные не имеют лишних пробелов|Числа преобразованы в нужный формат (если требуется)|Проверена длина итоговой строки (максимум 32767 символов в Excel)-->

5. Способ: Power Query — объединение для больших данных

Если вам нужно объединить текст в тысячах строк или автоматизировать процесс для регулярных отчётов, Power Query (встроенный в Excel 2016+ как "Получить данные") станет идеальным решением. Этот инструмент позволяет:

  • 🔄 Объединять данные из разных источников (Excel, CSV, базы данных).
  • 📊 Применять преобразования к целым колонкам за один клик.
  • 🔄 Обновлять результаты автоматически при изменении исходных данных.

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

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

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

  • 📈 Для обработки данных объёмом более 10 000 строк (формулы будут тормозить).
  • 🔄 Если исходные данные обновляются ежедневно (настройте автоматическое обновление).
  • 📂 При объединении данных из нескольких файлов.

6. Способ: VBA-макрос — автоматизация для продвинутых пользователей

Если вам нужно объединить текст по сложным правилам (например, только ячейки с определённым цветом или по условию), макрос на VBA станет лучшим решением. Ниже приведён код, который объединяет значения из двух столбцов (A и B) в третий (C) с разделителем-запятой:

Sub ОбъединитьТекст()

Dim ws As Worksheet

Dim lastRow As Long

Dim i As Long

' Указываем лист (замените "Лист1" на имя вашего листа)

Set ws = ThisWorkbook.Sheets("Лист1")

lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

' Объединяем данные из столбцов A и B в столбец C

For i = 1 To lastRow

ws.Range("C" & i).Value = ws.Range("A" & i).Value & ", " & ws.Range("B" & i).Value

Next i

End Sub

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

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Запустите макрос нажатием F5 или через меню Run → Run Sub/UserForm.

⚠️ Внимание: Перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов), иначе код не будет работать. Также убедитесь, что в настройках безопасности разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Включить все макросы).

🔹 Расширенные возможности VBA:

  • 🎨 Объединение с сохранением форматирования (цвет, шрифт).
  • 📌 Условное объединение (например, только если ячейка в столбце A не пустая).
  • 📂 Автоматическая обработка нескольких листов или книг.

Типичные ошибки и как их избежать

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

🔸 Ошибка #ИМЯ?: Возникает, если название функции написано с опечаткой (например, СЦЕПТИЬ вместо СЦЕПИТЬ). Проверьте синтаксис и регистр (в русскоязычной версии все буквы должны быть заглавными).

🔸 Лишние пробелы: Если в исходных ячейках есть пробелы до или после текста, они останутся после объединения. Используйте функцию СЖПРОБЕЛЫ, чтобы убрать лишние:

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

🔸 Числа отображаются как даты: Например, 1-1 преобразуется в 01-янв. Чтобы этого избежать, используйте функцию ТЕКСТ:

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

🔸 Ограничение на длину строки: В Excel максимальная длина текста в ячейке — 32 767 символов. Если при объединении этот лимит превышен, данные обрежутся. Чтобы проверить длину, используйте функцию ДЛСТР:

=ДЛСТР(ОБЪЕДИНИТЬ(A1:Z1))
Ошибка Причина Решение
#ЗНАЧ! В одной из ячеек ошибка (например, #ДЕЛ/0!) Используйте ЕСЛИОШИБКА: =ЕСЛИОШИБКА(A1;"") & " " & B1
Пустые строки в результате Исходные ячейки содержат непечатаемые символы Примените ПЕЧСИМВ: =ПЕЧСИМВ(ОБЪЕДИНИТЬ(A1:B1))
Текст в одной строке без переносов Отсутствует символ переноса (СИМВОЛ(10)) Добавьте перенос: =A1 & СИМВОЛ(10) & B1 и включите перенос в ячейке

FAQ: Частые вопросы по объединению текста в Excel

Можно ли объединить текст с сохранением форматирования (жирный, цвет)?

Стандартные функции (СЦЕПИТЬ, CONCAT) не сохраняют форматирование. Для этого нужен VBA-макрос или ручное копирование формата после объединения. Пример макроса для копирования жирного шрифта:

Sub ОбъединитьСФорматированием()

Dim rng1 As Range, rng2 As Range, outRng As Range

Set rng1 = Range("A1")

Set rng2 = Range("B1")

Set outRng = Range("C1")

outRng.Value = rng1.Value & " " & rng2.Value

' Копируем жирный шрифт из первой ячейки

If rng1.Font.Bold Then outRng.Characters(1, Len(rng1.Value)).Font.Bold = True

If rng2.Font.Bold Then outRng.Characters(Len(rng1.Value) + 2, Len(rng2.Value)).Font.Bold = True

End Sub

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

Используйте функцию TEXTJOIN с диапазоном строк. Например, чтобы объединить данные из A1:A10 через запятую:

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

Если нужны переносы строк, используйте СИМВОЛ(10):

=TEXTJOIN(СИМВОЛ(10); ИСТИНА; A1:A10)

Не забудьте включить перенос строк в ячейке (Главная → Перенос текста).

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

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

=ТЕКСТ(A1;"dd.mm.yyyy") & " - " & B1

Для времени:

=ТЕКСТ(A1;"hh:mm") & " " & B1
Как объединить текст с условием (например, только если ячейка не пустая)?

Используйте функцию ЕСЛИ вместе с объединением. Пример: объединить A1 и B1, только если обе ячейки не пустые:

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

Для более сложных условий подойдёт TEXTJOIN с параметром ИСТИНА (игнорирует пустые ячейки).

Можно ли объединить текст в Excel Online?

Да, в Excel Online доступны все основные функции:

  • & (амперсанд) — работает всегда.
  • CONCAT и TEXTJOIN — доступны в последних версиях.
  • СЦЕПИТЬ — поддерживается для совместимости.

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

  • ❌ Нет Power Query (только в десктопной версии).
  • ❌ Нет возможности запускать VBA-макросы.