Как склеить два столбца в Excel: все способы от простого к сложному

Почему стандартное объединение ячеек — худший вариант

Вы когда-нибудь пытались объединить два столбца в Microsoft Excel, нажимали кнопку "Объединить и поместить в центре" — и теряли половину данных? Это классическая ошибка новичков. Стандартная функция объединения (Home → Merge & Center) сохраняет только значение из левой верхней ячейки, стирая всё остальное. Поэтому для склеивания данных нужны другие инструменты.

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

Прежде чем приступать, проверьте:

  • 📊 Версию вашего ExcelExcel 365 есть функции, которых нет в Excel 2010).
  • 🔢 Формат данных в столбцах (текст, числа, даты — это влияет на выбор метода).
  • 📎 Нужно ли сохранить исходные столбцы или их можно удалить после склеивания.

📊 Какую версию Excel вы используете?
Excel 365/2021
Excel 2019
Excel 2016
Excel 2010 или старше
Не знаю

Способ 1: Формула CONCATENATE (для Excel 2016 и старше)

Функция =CONCATENATE() — самый простой способ склеить текст из двух ячеек. Она работает во всех версиях Excel, включая Excel 2007, и не требует дополнительных надстроек. Синтаксис:

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

Пример: если в ячейке A1 у вас фамилия (Иванов), а в B1 — имя (Иван), формула будет такой:

=CONCATENATE(A1; " "; B1)

Результат: Иванов Иван.

Обратите внимание на кавычки с пробелом (" ") — без них фамилия и имя сольются в ИвановИван. Если нужно добавить запятую, тире или другой разделитель, замените пробел на нужный символ.

  • ✅ Плюсы: работает везде, не требует макросов, можно склеить до 255 ячеек.
  • ❌ Минусы: если изменить исходные данные, результат не обновится автоматически (нужно копировать формулу как значение).

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

Если CONCATENATE кажется громоздкой, используйте оператор &. Он делает то же самое, но короче:

=A1 & " " & B1

Преимущества этого способа:

  • 🔹 Короткий синтаксис — удобно для сложных формул.
  • 🔹 Работает во всех версиях Excel, включая Google Sheets.
  • 🔹 Можно комбинировать с другими функциями, например =UPPER(A1) & " " & LOWER(B1) для преобразования регистра.

Пример с разделителем-запятой:

=A1 & ", " & B1  →  Иванов, Иван

Критическая особенность: если в одной из ячеек есть число (например, 123 в A1 и руб. в B1), Excel автоматически преобразует его в текст. Но если ячейка содержит дату, результат может быть неожиданным (например, 44197 вместо 01.01.2021).

Что делать, если вместо даты отображается число?

Если в ячейке дата (например, 01.01.2021), но при склеивании выводится 44197, используйте функцию TEXT():

=TEXT(A1; "дд.мм.гггг") & " " & B1

Это принудительно преобразует дату в текстовый формат.

Способ 3: Функция TEXTJOIN (Excel 2019 и новее)

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

  1. Автоматически добавляет разделитель между значениями.
  2. Игнорирует пустые ячейки (не оставляет лишних пробелов).

Синтаксис:

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

Примеры:

  • 📌 Склеить с пробелом, игнорируя пустые ячейки: =TEXTJOIN(" "; ИСТИНА; A1:B1).
  • 📌 Склеить с запятой и пробелом: =TEXTJOIN(", "; ИСТИНА; A1; B1; C1).
  • 📌 Склеить без разделителя: =TEXTJOIN(""; ИСТИНА; A1:B1).

Исходные данные (A1:B3) Формула Результат
A1="Иванов", B1="Иван" =TEXTJOIN(" ";1;A1:B1) Иванов Иван
A2="Петров", B2="" =TEXTJOIN(";";1;A2:B2) Петров
A3="", B3="Сидоров" =TEXTJOIN("-";1;A3:B3) Сидоров

Важно: если у вас Excel 2016 или старше, TEXTJOIN не будет работать. В этом случае используйте комбинацию CONCATENATE + IF для проверки пустых ячеек.

Способ 4: Power Query — для больших таблиц

Если вам нужно склеить тысячи строк или делать это регулярно, ручные формулы неэффективны. Здесь поможет Power Query — инструмент для преобразования данных, встроенный в Excel 2016+ и Excel 365.

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

  1. Выделите исходную таблицу и нажмите Данные → Из таблицы/диапазона (или Data → Get Data → From Table/Range).
  2. В открывшемся редакторе Power Query выберите столбцы, которые нужно склеить (зажмите Ctrl для множественного выбора).
  3. Нажмите Преобразовать → Объединить столбцы (Transform → Merge Columns).
  4. Укажите разделитель (пробел, запятая и т. д.) и название нового столбца.
  5. Нажмите Закрыть и загрузить (Close & Load).

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

  • 🔹 Обрабатывает миллионы строк без тормозов.
  • 🔹 Сохраняет шаги преобразования — при обновлении исходных данных результат пересчитывается автоматически.
  • 🔹 Можно объединять данные из разных источников (например, склеить столбцы из Excel и CSV).

Убедитесь, что исходные столбцы не содержат объединённых ячеек|

Проверьте формат данных (текст/числа/даты)|

Создайте заголовки для столбцов (если их нет)|

Сохраните файл перед началом работы|

-->

⚠️ Внимание: если в столбцах есть объединённые ячейки, Power Query может выдать ошибку. Перед началом работы разъедините их через Главная → Объединить и поместить в центре (выделите ячейки и нажмите ещё раз).

Способ 5: Макрос VBA — для автоматизации

Если вы часто склеиваете столбцы по одному шаблону, имеет смысл написать макрос на VBA. Это сэкономит время, особенно при работе с десятками файлов.

Пример кода для склеивания столбцов A и B с пробелом в столбец C:

Sub MergeColumns()

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.Cells(i, 3).Value = ws.Cells(i, 1).Value & " " & ws.Cells(i, 2).Value

Next i

End Sub

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

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

⚠️ Внимание: перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов), иначе Excel заблокирует выполнение кода. Также отключите защиту листа, если она включена.

Макрос можно модифицировать:

  • 🔹 Изменить разделитель (замените " " на "," или "-").
  • 🔹 Добавить проверку на пустые ячейки (If ws.Cells(i, 1).Value <> "" Then).
  • 🔹 Склеивать данные в новый лист (Set ws = Sheets("Результат")).

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

Даже опытные пользователи Excel сталкиваются с проблемами при склеивании столбцов. Вот самые распространённые:

  1. Лишние пробелы: если в исходных ячейках есть пробелы до или после текста, результат будет выглядеть неряшливо ( Иванов Иван ). Решение: используйте =TRIM() для очистки:
    =TRIM(A1) & " " & TRIM(B1)
  2. Числа преобразуются в даты: если склеиваете число 1-12 с текстом, Excel может воспринять это как 1 декабря. Решение: принудительно преобразуйте число в текст с помощью TEXT().
  3. Ошибка #VALUE!: возникает, если пытаетесь склеить ячейки с разными форматами (например, текст + ошибка). Решение: проверьте данные на наличие ошибок функцией =IFERROR().

Ещё одна частая проблема — потеря данных при копировании. Если вы скопировали формулу и вставили её как значение (Правка → Специальная вставка → Значения), а потом изменили исходные данные, результат не обновится. Чтобы этого избежать:

  • 🔹 Либо оставляйте формулы.
  • 🔹 Либо создайте резервную копию исходных данных перед вставкой значений.
Как склеить столбцы с переносом строки?

Если нужно, чтобы данные из второго столбца начинались с новой строки (например, для адресов), используйте функцию CHAR(10) — символ перевода строки. Пример:

=A1 & CHAR(10) & B1

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

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

Можно ли склеить столбцы без формул?

Да, есть три способа:

  1. Через Power Query (см. Способ 4).
  2. Через Найти и заменить: скопируйте данные в Блокнот, замените табуляцию на пробел, затем вставьте обратно.
  3. Через VBA-макрос (см. Способ 5).

Как склеить столбцы с разными разделителями (например, фамилию с инициалами через пробел, а город с улицей через запятую)?

Используйте вложенные функции CONCATENATE или & с разными разделителями:

=CONCATENATE(A1; " "; B1; ", "; C1; ", "; D1)

Пример результата: Иванов И. И., Москва, ул. Ленина.

Почему после склеивания в результате появляются знаки ######?

Это означает, что ширина столбца недостаточна для отображения данных. Растяните столбец вручную или используйте автоподбор ширины (Главная → Формат → Автоподбор ширины столбца). Также проверьте, нет ли в ячейках скрытых символов (например, непечатаемых пробелов).

Как склеить столбцы в Google Sheets?

В Google Таблицах работают те же принципы, но есть нюансы:

  • Функция CONCATENATE заменена на =CONCAT() (но & работает так же).
  • Функция TEXTJOIN доступна, но синтаксис немного отличается (разделители в кавычках обязательны).
  • Нет Power Query, но есть Apps Script (аналог VBA).

Пример для Google Sheets:

=ARRAYFORMULA(A1:A10 & " " & B1:B10)

Можно ли отменить склеивание и вернуть исходные данные?

Если вы использовали формулы — да, просто удалите столбец с результатом. Если вставили значения (Специальная вставка → Значения), исходные данные восстановить нельзя, если не было резервной копии. Поэтому всегда сохраняйте оригинальные столбцы или создавайте копию файла перед массовыми изменениями.