Объединение содержимого ячеек — одна из самых востребованных операций в Microsoft Excel и Google Таблицах. Новичку может показаться, что достаточно просто вручную скопировать данные из одной ячейки в другую, но при работе с большими массивами данных такой подход неэффективен. На практике задача "склеить две ячейки" решается минимум пятью разными способами — от элементарных функций до продвинутых инструментов вроде Power Query или VBA.
В этой статье мы разберём все актуальные методы с примерами, сравним их плюсы и минусы, а также покажем, как избежать типичных ошибок. Особое внимание уделим нюансам: что делать, если между склеиваемыми значениями нужно вставить разделитель (пробел, запятую, тире), как объединить ячейки с числами или датами, и почему иногда результат отображается как странный код вместо текста.
Если вы никогда не работали с формулами в Excel, не переживайте — первые два метода не требуют глубоких знаний. Для опытных пользователей мы подготовили разделы про динамические массивы и автоматизацию через макросы, которые сэкономят часы при обработке тысяч строк.
1. Функция СЦЕПИТЬ (CONCATENATE) — классический метод
Функция СЦЕПИТЬ (в английской версии — CONCATENATE) существует в Excel с первых версий и до сих пор остаётся самым очевидным решением. Она позволяет объединить до 255 текстовых или числовых значений в одну строку.
Основной синтаксис:
=СЦЕПИТЬ(текст1; [текст2]; ...)
Где текст1, текст2 и так далее — это либо ссылки на ячейки (например, A1), либо текст в кавычках (например, " " для пробела).
Пример: если в ячейке A1 у вас фамилия "Иванов", а в B1 — имя "Пётр", формула =СЦЕПИТЬ(A1; " "; B1) вернёт "Иванов Пётр". Обратите внимание на пробел в кавычках — это обязательный разделитель, иначе результат будет слитным: "ИвановПётр".
- ✅ Простота: не требует знания сложных функций
- ✅ Работает во всех версиях Excel (включая 2003)
- ❌ Ограничение на 255 аргументов (маловероятно, но возможно)
- ❌ Неудобно добавлять разделители между множеством ячеек
В Excel 2016 и новее появилась альтернатива — функция ОБЪЕДИНИТЬ (CONCAT), которая автоматически игнорирует пустые ячейки. Например, =ОБЪЕДИНИТЬ(A1:B1) склеит только непустые значения в диапазоне.
2. Оператор "&" — самый быстрый способ
Для тех, кто предпочитает краткость, в Excel есть оператор амперсанд (&). Он делает то же самое, что и СЦЕПИТЬ, но записывается короче и работает немного быстрее при больших объёмах данных.
Пример той же задачи с фамилией и именем:
=A1 & " " & B1
Результат будет идентичен: "Иванов Пётр".
Преимущества метода:
- 🚀 Минимальный синтаксис — меньше шансов ошибиться
- 📊 Лучшая производительность при обработке тысяч строк
- 🔄 Легко комбинировать с другими функциями (например,
ЕСЛИ)
А теперь — ключевой нюанс: если одна из ячеек содержит число или дату, Excel может интерпретировать её не так, как вы ожидаете. Например, если в A1 число 123, а в B1 текст "руб.", формула =A1 & B1 вернёт 123руб.. Но если в A1 дата 15.05.2023, результат будет выглядеть как число (например, 45047руб.) — это внутренний формат хранения дат в Excel.
3. Функция ТЕКСТСЦЕПИТЬ (TEXTJOIN) — для сложных разделителей
В Excel 2019 и Excel 365 появилась революционная функция ТЕКСТСЦЕПИТЬ (TEXTJOIN), которая решает две ключевые проблемы предыдущих методов:
- Автоматически игнорирует пустые ячейки
- Позволяет указать разделитель, который будет вставляться между всеми склеиваемыми значениями
Синтаксис:
=ТЕКСТСЦЕПИТЬ(разделитель; игнорировать_пустые; текст1; [текст2]; ...)
Где:
разделитель— символ или текст, который будет вставлен между значениями (например,","или" - ")игнорировать_пустые—ИСТИНА(игнорировать пустые ячейки) илиЛОЖЬ(включать их как пустые строки)
Пример: склеим фамилию, имя и отчество из ячеек A1, B1 и C1 с пробелами, даже если отчество пустое:
=ТЕКСТСЦЕПИТЬ(" "; ИСТИНА; A1:C1)
Если в C1 нет данных, результат будет "Иванов Пётр" (без лишнего пробела).
| Функция | Поддержка пустых ячеек | Макс. аргументов | Разделитель | Доступна с версии |
|---|---|---|---|---|
СЦЕПИТЬ |
Нет | 255 | Ручной | Excel 2003 |
& |
Нет | Неограничено | Ручной | Excel 2000 |
ТЕКСТСЦЕПИТЬ |
Да | Неограничено | Автоматический | Excel 2019 |
4. Объединение с условиями: функция ЕСЛИ + склеивание
Часто требуется склеивать ячейки только при выполнении определённых условий. Например, добавлять слово "г." к названию города, только если ячейка не пустая, или формировать email из имени и фамилии, но только для активных клиентов.
Для этого комбинируют ЕСЛИ (IF) с оператором & или функциями склеивания. Рассмотрим два примера:
Пример 1. Добавить "г." к названию города (ячейка A1), если он не пустой:
=ЕСЛИ(A1<>""; A1 & " г."; "")
Пример 2. Сформировать email из имени (A1) и фамилии (B1), но только если есть домен в ячейке C1:
=ЕСЛИ(C1<>""; СТРОЧН(A1) & "." & СТРОЧН(B1) & "@" & C1; "")
Здесь СТРОЧН (LOWER) преобразует текст в нижний регистр для корректного email.
⚠️ Внимание: При склеивании текста с числами Excel может автоматически округлять значения. Например, если в ячейкеA1число12.3456, а вы используете=A1 & " кг", результат будет "12.3456 кг". Но если ячейка отформатирована как "числовой формат с 2 знаками после запятой", формула вернёт "12.35 кг" — это особенность отображения, а не ошибка.
5. Power Query: объединение столбцов без формул
Если вам нужно склеить тысячи строк или регулярно обновлять данные, Power Query (вкладка Данные → Получить данные) станет спасением. Этот инструмент позволяет:
- 🔄 Объединять столбцы с автоматическим обновлением
- 📌 Добавлять любые разделители
- 🧹 Очищать данные перед склеиванием (удалять пробелы, исправлять регистр)
Пошаговая инструкция:
- Выделите исходную таблицу и нажмите
Данные → Из таблицы/диапазона(в Excel 2016+). - В открывшемся редакторе Power Query выделите столбцы, которые нужно объединить.
- На вкладке
Преобразование(илиTransform) выберитеОбъединить столбцы. - Укажите разделитель (например, пробел) и подтвердите.
- Нажмите
Закрыть и загрузить— данные склеятся в новом столбце.
Главное преимущество Power Query — динамическая связь с источником. Если исходные данные изменятся, достаточно обновить запрос (Данные → Обновить все), и склеенный столбец пересчитается автоматически.
Удалить лишние пробелы (функция TRIM)|Привести текст к нижнему/верхнему регистру|Заменить ошибки (#Н/Д, #ЗНАЧ!) на пустые значения|Проверить формат дат и чисел-->
6. VBA-макрос: автоматическое склеивание для больших файлов
Когда нужно обработать десятки тысяч строк или выполнять склеивание по сложным правилам, VBA-макросы становятся незаменимы. Например, такой код объединит значения из столбцов A и B в столбец C с разделителем " - ":
Sub MergeCells()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Set ws = ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 1 To lastRow
ws.Range("C" & i).Value = ws.Range("A" & i).Value & " - " & ws.Range("B" & i).Value
Next i
End Sub
Чтобы запустить макрос:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Закройте редактор и запустите макрос через
Вид → Макросы(илиAlt + F8).
⚠️ Внимание: Перед запуском макроса сохраните файл в формате.xlsm(с поддержкой макросов), иначе код не выполнится. Также отключите защиту от макросов вФайл → Параметры → Центр управления безопасностью, если Excel блокирует выполнение.
Для продвинутых задач макрос можно модифицировать:
- Добавить проверку на пустые ячейки
- Обрабатывать ошибки (#Н/Д, #ЗНАЧ!)
- Склеивать данные из нескольких листов
Как склеить ячейки с переносом строки?
Чтобы вставить перенос строки между склеиваемыми значениями, используйте функцию СИМВОЛ(10) (символ перевода строки) и не забудьте включить перенос текста в ячейке (Главная → Перенос текста). Пример:
=A1 & СИМВОЛ(10) & B1
FAQ: Ответы на частые вопросы
Можно ли склеить ячейки без потери данных в исходных?
Да, все описанные методы (кроме Power Query в режиме замены) создают новый столбец с объединёнными данными, не затрагивая исходные ячейки. Если вам нужно заменить данные в исходных ячейках, используйте Копировать → Специальная вставка → Значения после склеивания.
Почему после склеивания даты отображаются как числа?
Excel хранит даты как числа (количество дней с 1 января 1900 года). Чтобы склеивать даты корректно, преобразуйте их в текст функцией ТЕКСТ:
=ТЕКСТ(A1; "дд.мм.гггг") & " " & B1
Как объединить ячейки с сохранением форматирования?
Склеивание через формулы или Power Query не сохраняет форматирование (жирный текст, цвет и т.д.). Единственный способ — использовать VBA с обработкой формата каждой ячейки. Пример кода:
Dim rng1 As Range, rng2 As Range Set rng1 = Range("A1") Set rng2 = Range("B1") rng1.Characters(Start:=Len(rng1.Value) + 1).Insert " " & rng2.Value rng2.Font.Bold = rng1.Characters(Start:=Len(rng1.Value) - Len(rng2.Value), Length:=Len(rng2.Value)).Font.Bold End SubКод VBA для склеивания с форматированием
Sub MergeWithFormatting()
Чем отличается СЦЕПИТЬ от ОБЪЕДИНИТЬ?
Функция ОБЪЕДИНИТЬ (CONCAT) появилась в Excel 2016 и, в отличие от СЦЕПИТЬ, автоматически игнорирует пустые ячейки. Например, =ОБЪЕДИНИТЬ(A1:B1) вернёт только непустые значения из диапазона, тогда как СЦЕПИТЬ добавит пустую строку.
Можно ли склеить ячейки в Google Таблицах?
Да, в Google Таблицах работают те же принципы:
- Оператор
&:=A1 & " " & B1 - Функция
СЦЕПИТЬ(CONCATENATE) - Функция
ТЕКСТСЦЕПИТЬ(TEXTJOIN)
Отличие только в синтаксисе: вместо точек с запятой (;) используются запятые (,).