Объединение ячеек в Excel: сохраняем все данные

Иван Корнев·03.05.2026·4 мин

Чтобы объединить ячейки в Excel без потери данных, нельзя использовать стандартную кнопку «Объединить и поместить в центре», так как она оставляет текст только из левой верхней ячейки. Вместо этого используйте функцию СЦЕП (или ОБЪЕДИНИТЬ в новых версиях) для склейки текста в одной ячейке, либо примените форматирование «Выравнивание по центру выделения» для визуального эффекта без изменения структуры данных.

Ниже приведены подробные инструкции для разных сценариев.

Оглавление

  1. Почему стандартное объединение удаляет данные
  2. Способ 1: Формулы для склейки текста (без потери данных)
  3. Способ 2: Визуальное центрирование (для заголовков)
  4. Способ 3: Макрос для объединения с переносом строк
  5. Частые ошибки
  6. FAQ

Почему стандартное объединение удаляет данные

Стандартная функция «Объединить и поместить в центре» (вкладка Главная → группа Выравнивание) работает агрессивно: при объединении диапазона, например, A1:C1, Excel сохраняет значение только ячейки A1. Данные из B1 и C1 удаляются безвозвратно (если не отменить действие сразу).

Это подходит для заголовков таблиц, но категорически не рекомендуется для данных, которые нужно анализировать, сортировать или фильтровать в дальнейшем.

Способ 1: Формулы для склейки текста (без потери данных)

Если ваша цель — собрать текст из нескольких ячеек в одну (например, «Имя» + «Фамилия» или адрес из нескольких строк), используйте формулы. Исходные данные остаются нетронутыми, а результат появляется в новой ячейке.

Вариант А: Функция ОБЪЕДИНИТЬ (TEXTJOIN) — Рекомендуется

Доступна в Excel 2019, 2021 и Microsoft 365. Это лучший инструмент, так как он позволяет задать разделитель и игнорировать пустые ячейки.

Синтаксис: =ОБЪЕДИНИТЬ(разделитель; игнорировать_пустые; диапазон)

Пример: Допустим, в ячейках A2, B2 и C2 находятся части адреса.

  1. Встаньте в ячейку D2.
  2. Введите формулу:
   =ОБЪЕДИНИТЬ(", "; ИСТИНА; A2:C2)
  1. Нажмите Enter. Результат: ул. Ленина, д. 10, кв. 5.

Аргумент ИСТИНА (или TRUE) автоматически пропускает пустые ячейки, чтобы не получать лишние разделители (например, двойные запятые).

Вариант Б: Функция СЦЕП (CONCAT) или знак амперсанда (&)

Подходит для старых версий Excel или простой склейки двух-трех ячеек.

Пример с амперсандом:

=A2 & " " & B2

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

Как заменить формулу на статический текст

После применения формулы у вас есть «живая» ссылка на исходные ячейки. Если нужно удалить исходные столбцы:

  1. Выделите ячейки с результатами формул.
  2. Скопируйте их (Ctrl+C).
  3. Нажмите правой кнопкой мыши → Специальная вставкаЗначения (иконка с цифрами «123»).
  4. Теперь текст закреплен, и исходные ячейки можно удалять или скрывать.

Способ 2: Визуальное центрирование (для заголовков)

Если вам нужно, чтобы заголовок таблицы располагался по центру над несколькими столбцами, но вы не хотите нарушать структуру таблицы (что важно для сортировки и фильтров), используйте «Выравнивание по центру выделения».

  1. Выделите ячейки, над которыми должен быть центр заголовка (например, A1:E1).
  2. Нажмите правой кнопкой мыши → Формат ячеек (или Ctrl+1).
  3. Перейдите на вкладку Выравнивание.
  4. В выпадающем списке по горизонтали выберите по центру выделения.
  5. Нажмите ОК.

Результат: Текст в ячейке A1 визуально отображается по центру диапазона A1:E1, но физически находится только в A1. Ячейки B1:E1 остаются свободными и доступными для ввода данных.

Способ 3: Макрос для объединения с переносом строк

Если вам часто нужно именно физически объединять ячейки, сохраняя весь текст через перенос строки (как это делает стандартное объединение, но без потери данных), можно использовать простой VBA-скрипт.

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. В меню выберите InsertModule.
  3. Вставьте код:
Sub MergeKeepData()
    Dim cell As Range
    Dim result As String
    Dim separator As String
    
    separator = Chr(10) ' Символ переноса строки
    
    If Selection.Cells.Count = 1 Then Exit Sub
    
    Application.DisplayAlerts = False
    
    For Each cell In Selection
        If cell.Value <> "" Then
            result = result & cell.Value & separator
        End If
    Next cell
    
    ' Убираем последний лишний перенос
    If Len(result) > 0 Then
        result = Left(result, Len(result) - Len(separator))
    End If
    
    With Selection
        .Merge
        .Value = result
        .WrapText = True ' Включаем перенос текста
    End With
    
    Application.DisplayAlerts = True
End Sub
  1. Закройте редактор.
  2. Выделите нужные ячейки, нажмите Alt + F8, выберите MergeKeepData и нажмите Выполнить.

Файл с макросом необходимо сохранять в формате .xlsm (Книга Excel с поддержкой макросов).

Частые ошибки

ОшибкаПочему возникаетКак исправить
Потеря данных при нажатии кнопки «Объединить»Стандартная функция оставляет только верхнее левое значение.Используйте формулы ОБЪЕДИНИТЬ или СЦЕП перед объединением.
Невозможность сортировки таблицыОбъединенные ячейки ломают структуру диапазона данных.Используйте «Выравнивание по центру выделения» вместо физического объединения.
Лишние пробелы или разделителиИспользование & с пустыми ячейками.Используйте функцию ОБЪЕДИНИТЬ с аргументом игнорирования пустых ячеек.
Текст обрезается в объединенной ячейкеНе включен перенос текста.На вкладке Главная нажмите кнопку Перенос текста.

FAQ

Можно ли объединить ячейки в умной таблице (Таблица Excel)? Нет, стандартные умные таблицы (созданные через Ctrl+T) не поддерживают объединение ячеек. Вам придется преобразовать таблицу в диапазон (КонструкторПреобразовать в диапазон), чтобы использовать объединение.

Как разъединить ячейки и вернуть данные? Если вы объединили ячейки стандартным способом и потеряли данные, их можно вернуть только через отмену действия (Ctrl+Z). Если файл уже сохранен и закрыт, восстановить удаленные данные невозможно. Поэтому всегда используйте формулы для склейки.

В чем разница между СЦЕП и ОБЪЕДИНИТЬ? СЦЕП (или CONCATENATE в старых версиях) просто соединяет текст. ОБЪЕДИНИТЬ (TEXTJOIN) позволяет задать общий разделитель для всего диапазона и игнорировать пустые ячейки, что делает её более удобной для списков и адресов.

Как сделать перенос строки внутри формулы? Используйте символ СИМВОЛ(10) в качестве разделителя. Пример: =ОБЪЕДИНИТЬ(СИМВОЛ(10); ИСТИНА; A1:A3). Не забудьте включить «Перенос текста» для ячейки с результатом.