Объединение нескольких столбцов в один — одна из самых востребованных операций в Microsoft Excel и Google Таблицах. Эта задача возникает при подготовке отчётов, очистке данных перед анализом или импортом в другие системы. Казалось бы, что может быть проще? Но на практике пользователи сталкиваются с массой нюансов: как сохранить форматирование, избежать потери данных, автоматизировать процесс для тысяч строк или объединить ячейки с разными типами данных (текст, числа, даты).
В этой статье мы разберём 5 основных способов объединения столбцов — от элементарных (для новичков) до продвинутых (для работы с большими массивами данных). Вы узнаете, когда лучше использовать CONCATENATE или &, как применять Power Query для динамического объединения, и почему иногда проще написать макрос на VBA, чем тратить часы на ручную правку. А ещё — уникальный лайфхак с функцией TEXTJOIN, который спасает при работе с ячейками, содержащими пробелы или ошибки.
1. Базовое объединение с помощью символа «&» или функции CONCATENATE
Начнём с самого простого метода, который работает во всех версиях Excel — от Excel 2003 до Microsoft 365. Для объединения двух или более ячеек в одну достаточно использовать оператор & (амперсанд) или функцию CONCATENATE.
Пример формулы с оператором &:
=A2 & " " & B2 & " " & C2
Здесь мы объединяем содержимое ячеек A2, B2 и C2, добавляя между ними пробел. Если пробелы не нужны, просто убираем " " из формулы.
- ✅ Плюсы: работает в любой версии Excel, не требует дополнительных надстроек.
- ❌ Минусы: не игнорирует пустые ячейки (в результате могут появиться лишние пробелы).
- ⚠️ Нюанс: если в ячейках содержатся числа, их нужно преобразовать в текст с помощью функции
TEXT, иначе Excel проигнорирует форматирование (например, даты отобразятся как числа).
Альтернатива — функция CONCATENATE:
=CONCATENATE(A2, " ", B2, " ", C2)
В Excel 2016 и новее эту функцию заменили на CONCAT, но старая версия всё ещё поддерживается для совместимости.
2. Функция TEXTJOIN: объединение с игнорированием пустых ячеек
Функция TEXTJOIN появилась в Excel 2019 и Microsoft 365 и стала настоящим спасением для работы с неструктурированными данными. Её главное преимущество — возможность пропускать пустые ячейки и задавать разделитель между значениями.
Синтаксис функции:
=TEXTJOIN(разделитель; игнорировать_пустые; диапазон1; [диапазон2]; ...)
Пример:
=TEXTJOIN(" "; ИСТИНА; A2:C2)
Эта формула объединит содержимое ячеек A2, B2 и C2, разделяя их пробелом, и проигнорирует пустые ячейки. Если во второй аргумент передать ЛОЖЬ, пустые ячейки будут учитываться как пустые строки.
| Формула | Результат для ячеек: A2="Иван", B2="", C2="Петров" |
|---|---|
=A2 & " " & B2 & " " & C2 |
Иван Петров |
=CONCATENATE(A2, " ", B2, " ", C2) |
Иван Петров |
=TEXTJOIN(" "; ИСТИНА; A2:C2) |
Иван Петров |
TEXTJOIN также поддерживает объединение целых диапазонов (например, A2:A100), что удобно для обработки больших таблиц. Однако не рекомендуется использовать её для диапазонов с более чем 10 000 строк — это может замедлить работу файла.
3. Объединение столбцов через Power Query (для больших данных)
Если вам нужно объединить столбцы в таблице с тысячами строк, обычные формулы могут тормозить файл. В этом случае на помощь придёт Power Query — инструмент для преобразования данных, доступный в Excel 2016 и новее (в Excel 2010-2013 требуется надстройка).
Алгоритм действий:
- Выделите исходную таблицу и перейдите на вкладку
Данные → Из таблицы/диапазона(илиGet & Transform → Из таблицыв Excel 2016). - В открывшемся редакторе Power Query выделите столбцы, которые нужно объединить.
- На вкладке
Преобразование(илиTransform) выберитеОбъединить столбцы. - Укажите разделитель (например, пробел или запятую) и подтвердите.
- Нажмите
Закрыть и загрузить, чтобы вернуть данные в Excel.
Преимущества Power Query:
- 🔹 Обрабатывает миллионы строк без замедления.
- 🔹 Позволяет объединять данные с предварительной очисткой (например, удалять лишние пробелы).
- 🔹 Сохраняет связь с исходными данными: при их изменении достаточно обновить запрос.
⚠️ Внимание: Если в исходных столбцах есть ячейки с ошибками (например,#Н/Д), Power Query может прервать загрузку. Перед объединением очистите данные с помощью функцииIFERRORили фильтра.
Удалить пустые строки|Заменить ошибки (#Н/Д, #ЗНАЧ!) на пустые ячейки|Привести текст к единому регистру (если нужно)|Проверить формат дат и чисел-->
4. Макросы VBA: автоматизация для повторяющихся задач
Если вам регулярно приходится объединять столбцы по одному и тому же шаблону, имеет смысл записать макрос на VBA. Это сэкономит время и исключит ошибки при ручном вводе формул.
Пример макроса для объединения трёх столбцов (A, B, C) в столбец D с разделителем-пробелом:
Sub ОбъединитьСтолбцы()
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 = 2 To lastRow 'Пропускаем заголовок
ws.Cells(i, 4).Value = ws.Cells(i, 1).Value & " " & ws.Cells(i, 2).Value & " " & ws.Cells(i, 3).Value
Next i
End Sub
Как использовать этот код:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Закройте редактор и запустите макрос через
Вид → Макросы(или нажмитеAlt + F8).
Для более гибкого решения можно модифицировать макрос, чтобы он:
- 📌 Запрашивал у пользователя диапазоны для объединения.
- 📌 Игнорировал пустые ячейки (как
TEXTJOIN). - 📌 Сохранял результат в новом листе.
⚠️ Внимание: Перед запуском макроса сохраните файл в формате.xlsm(с поддержкой макросов), иначе код не будет работать. Также убедитесь, что в настройках безопасности разрешены макросы (Файл → Параметры → Центр управления безопасностью).
5. Объединение с сохранением форматирования (текст + числа + даты)
Одна из самых сложных задач — объединить ячейки с разными типами данных, сохранив их форматирование. Например, если в одном столбце текст, в другом — дата, а в третьем — число с двумя знаками после запятой.
Решение: использовать функцию TEXT для явного указания формата каждого элемента. Пример:
=A2 & " " & TEXT(B2; "дд.мм.гггг") & " " & TEXT(C2; "# ##0.00")
Здесь:
A2— текст (форматирование сохраняется автоматически).TEXT(B2; "дд.мм.гггг")— дата в формате01.01.2023.TEXT(C2; "# ##0.00")— число с разделителем тысяч и двумя знаками после запятой (например,1 234.56).
Если нужно объединить данные с условным форматированием (например, ячейки с цветом), придётся использовать VBA или копировать значения вручную через Специальная вставка → Значения, а затем применять форматирование заново.
Как объединить ячейки с сохранением переносов строк?
Если в исходных ячейках есть переносы строк (сделанные через Alt+Enter), используйте функцию SUBSTITUTE с символом CHAR(10):
=SUBSTITUTE(A2 & CHAR(10) & B2; " "; " ")
Здесь CHAR(10) — это символ переноса строки. Двойные пробелы заменяются на одинарные для чистоты результата.
6. Альтернативные методы: надстройка «Объединить и разделить», Google Таблицы
Если стандартные способы вас не устраивают, можно воспользоваться сторонними решениями:
- 📊 Надстройка «Ablebits Merge Tables»: плагин для Excel, который позволяет объединять столбцы с гибкими настройками (разделители, игнорирование пустых ячеек, сохранение форматирования). Подходит для пользователей, которые часто работают с большими массивами данных.
- 🔗 Google Таблицы: здесь также доступны функции
CONCATENATEи&, но вместоTEXTJOINиспользуетсяJOIN(менее гибкая, но простая в использовании). Пример:=JOIN(" "; A2:C2) - 📎 Экспорт в CSV и обработка в Notepad++: если данных очень много, можно экспортировать таблицу в
.csv, открыть в текстовом редакторе и заменить разделители столбцов (запятые) на пробелы с помощью функции замены.
Для корпоративных пользователей, работающих с Power BI или SQL, объединение столбцов можно выполнить на этапе загрузки данных в эти системы, используя операторы CONCAT (SQL) или Merge Columns (Power BI).
FAQ: Частые вопросы об объединении столбцов в Excel
Можно ли объединить столбцы без потери данных в исходных ячейках?
Да, все описанные методы (формулы, Power Query, макросы) создают новый столбец с объединёнными данными, не затрагивая исходные. Однако если вы используете операцию Объединить и поместить в центре на вкладке Главная, данные в исходных ячейках будут удалены (останется только результат в первой ячейке).
Как объединить столбцы с сохранением формул, а не значений?
Если в исходных ячейках есть формулы, и вы хотите, чтобы в объединённом столбце они продолжали работать, используйте формулы объединения (например, =A2 & " " & B2). Если же вам нужны статичные значения, скопируйте результат и вставьте его через Специальная вставка → Значения.
Почему после объединения даты отображаются как числа?
Excel хранит даты в виде чисел (количество дней с 1900 года). Чтобы дата отобразилась корректно, используйте функцию TEXT:
=TEXT(A2; "дд.мм.гггг") & " " & B2
Или примените формат даты к результирующей ячейке после объединения.
Как объединить столбцы в Excel Online?
В веб-версии Excel доступны те же функции, что и в десктопной: &, CONCATENATE, TEXTJOIN (в Excel Online с подпиской Microsoft 365). Однако Power Query и макросы VBA в браузерной версии недоступны.
Можно ли автоматически обновлять объединённые данные при изменении исходных?
Да, если вы используете формулы (=A2 & B2) или Power Query. В первом случае результат обновится автоматически, во втором — нужно нажать Обновить на вкладке Данные. Макросы обновляются только при повторном запуске.