Как объединить несколько файлов Excel в один: полное руководство 2026

Работа с десятками Excel-файлов, которые нужно свести в одну таблицу? Знакомая головная боль для аналитиков, бухгалтеров и менеджеров. Ручное копирование данных занимает часы, а ошибки при переносе обходятся дорого. К счастью, в Excel есть как минимум 7 способов автоматизировать это — от простых встроенных инструментов до продвинутых скриптов.

Но какой метод выбрать? Всё зависит от объёма данных, структуры таблиц и вашего уровня владения программой. В этой статье разберём каждый вариант — от элементарного копирования листов до сложных сценариев с Power Query и VBA. А ещё покажем, как избежать типичных ошибок при слиянии, когда данные "съезжают" или формулы ломаются.

Если вам нужно просто склеить два файла с одинаковой структурой — хватит и стандартных функций Excel. А вот для слияния сотен таблиц с разными столбцами потребуются более мощные инструменты. Мы протестировали все методы на реальных данных и выделили их плюсы/минусы в сравнительной таблице ниже.

Важно: перед объединением всегда делайте резервные копии исходных файлов. Особенно если работаете с макросами или Power Query — эти инструменты могут неожиданно изменить форматирование или удалить скрытые данные.

1. Самый простой способ: копирование листов вручную

Когда файлов мало (2-3) и они имеют одинаковую структуру, быстрее всего воспользоваться стандартным копированием. Этот метод не требует знаний формул или программирования, но подходит только для небольших объёмов данных.

Как это работает:

  • 📋 Откройте целевой файл (куда будете вставлять данные) и исходный (откуда копируете)
  • 🖱️ Зажмите Ctrl и выделите нужные листы в исходном файле (их названия появятся вверху)
  • 📄 Правой кнопкой по выделенным листам → Переместить/скопировать
  • 🔄 В появившемся окне выберите целевой файл и поставьте галочку Создать копию

Преимущество метода: сохраняется всё форматирование, включая условное оформление и диаграммы. Но есть и подводные камни:

⚠️ Внимание: Если в целевом файле уже есть листы с такими же именами, Excel автоматически добавит к ним цифры (например, "Лист1 (2)"). Это может запутать при дальнейшей работе.

Для массового копирования (10+ листов) этот способ неэффективен — придётся повторять действия для каждого файла. В таких случаях лучше использовать Power Query или VBA.

📊 Как часто вам приходится объединять Excel-файлы?
Ежедневно
Несколько раз в неделю
Редко, по необходимости
Никогда

2. Объединение через Power Query (рекомендуемый метод)

Power Query (или Get & Transform в новых версиях Excel) — это полуавтоматический инструмент для импорта и преобразования данных. Он идеально подходит для слияния десятков файлов с разной структурой.

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

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

Главное преимущество Power Query — гибкость. Вы можете:

  • 🔍 Фильтровать файлы по имени (например, брать только те, что начинаются с "Отчёт_")
  • 🔄 Объединять столбцы с разными названиями (если в одном файле "Дата", а в другом "Date")
  • 📊 Автоматически обновлять данные при добавлении новых файлов в папку

Убедитесь, что все файлы имеют одинаковую структуру заголовков|Проверьте кодировку (особенно если файлы приходят из 1С)|Удалите пустые строки/столбцы|Сохраните все файлы в одной папке-->

Единственный минус — Power Query доступен только в Excel 2016 и новее. Для старых версий придётся использовать надстройки или VBA.

3. Слияние с помощью формул (для опытных пользователей)

Если файлы имеют одинаковую структуру и расположены в одной папке, можно автоматизировать процесс с помощью формул. Этот метод требует знаний функций INDIRECT и работы с динамическими диапазонами.

Пример для слияния данных из нескольких листов:

=QUERY({

Лист1!A2:Z1000;

Лист2!A2:Z1000;

Лист3!A2:Z1000

}, "SELECT * WHERE Col1 IS NOT NULL", 1)

Где:

  • Лист1!A2:Z1000 — диапазон данных на первом листе (начиная со строки 2, чтобы пропустить заголовки)
  • SELECT * WHERE Col1 IS NOT NULL — условие, что в первом столбце должны быть данные (чтобы исключить пустые строки)
  • 1 — указание, что первая строка содержит заголовки

Для работы с внешними файлами потребуется более сложная конструкция с INDIRECT и указанием полных путей. Однако этот метод имеет ограничения:

⚠️ Внимание: Формулы не обновляют данные автоматически при изменении исходных файлов. Придётся вручную нажимать F9 для пересчёта или писать макрос для автообновления.

Также формульный подход может сильно тормозить Excel при работе с большими объёмами данных (10 000+ строк).

Как объединить файлы с разными заголовками?

Если столбцы в файлах называются по-разному, но содержат одинаковые данные (например, "ФИО" и "Full Name"), в Power Query можно:

1. Переименовать столбцы перед объединением (правый клик по заголовку → Переименовать)

2. Использовать параметр "Объединить как новые столбцы" и потом вручную сопоставить данные

3. Написать пользовательскую функцию на языке M для автоматического сопоставления по шаблонам

4. Автоматизация через VBA (для продвинутых)

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

Пример кода для слияния всех файлов из папки:

Sub MergeExcelFiles()

Dim FolderPath As String, FileName As String

Dim wbDest As Workbook, wbSrc As Workbook

Dim wsDest As Worksheet, wsSrc As Worksheet

Dim LastRow As Long, i As Integer

' Укажите путь к папке с файлами

FolderPath = "C:\Папкасфайлами\"

FileName = Dir(FolderPath & ".xls")

' Создаём новый файл для результата

Set wbDest = Workbooks.Add

Set wsDest = wbDest.Sheets(1)

' Копируем данные из каждого файла

Do While FileName <> ""

Set wbSrc = Workbooks.Open(FolderPath & FileName)

Set wsSrc = wbSrc.Sheets(1)

' Находим последнюю строку в целевом файле

LastRow = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Row + 1

' Копируем данные (начиная со 2 строки, чтобы пропустить заголовки)

wsSrc.Range("A2:Z" & wsSrc.Cells(wsSrc.Rows.Count, "A").End(xlUp).Row).Copy _

Destination:=wsDest.Range("A" & LastRow)

wbSrc.Close False

FileName = Dir()

Loop

' Сохраняем результат

wbDest.SaveAs FolderPath & "Объединённый_файл.xlsx"

MsgBox "Готово! Файл сохранён как " & FolderPath & "Объединённый_файл.xlsx", vbInformation

End Sub

Что можно кастомизировать в этом коде:

  • 📁 Путь к папке (FolderPath) — укажите свою
  • 📄 Имя результирующего файла (Объединённый_файл.xlsx)
  • 🔠 Диапазон копирования (A2:Z — можно изменить на нужные столбцы)
  • 📂 Номер листа (Sheets(1) — если данные на другом листе, поменяйте цифру)

Для запуска макроса:

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

5. Объединение через внешние данные (для связки с базой)

Если ваши Excel-файлы — это экспорт из базы данных (например, или SQL), удобнее использовать инструмент Внешние данные. Он позволяет подключиться к папке с файлами и обновлять данные по расписанию.

Как настроить:

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

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

  • 🔄 Автоматическое обновление при изменении исходных файлов (нажмите ДанныеОбновить все)
  • 📊 Возможность создать сводную таблицу на основе объединённых данных
  • 🔍 Фильтрация файлов по дате создания, имени или размеру

Минус — если структура файлов изменится (например, добавятся новые столбцы), придётся перенастраивать запрос.

6. Онлайн-сервисы для слияния Excel (для тех, кто не хочет возиться)

Если у вас нет времени разбираться в Power Query или VBA, можно воспользоваться онлайн-инструментами. Они подходят для разовых задач, но не рекомендуются для конфиденциальных данных.

Популярные сервисы:

Сервис Макс. размер файла Поддерживаемые форматы Особенности
Ablebits Merge Tables 50 МБ XLSX, XLS, CSV Сохраняет форматирование, плагин для Excel
Merge-Excel 10 МБ XLSX, CSV Бесплатно, но ограничение на количество строк
Aspose.Cells 100 МБ XLSX, XLS, ODS, CSV Поддерживает облачные хранилища (Google Drive, Dropbox)
ILovePDF 20 МБ XLSX, XLS Простой интерфейс, но удаляет формулы

Как работать с онлайн-сервисами:

  1. Загрузите файлы на сайт (обычно поддерживается drag-and-drop)
  2. Выберите параметры слияния (объединить по строкам/столбцам, сохранить заголовки и т.д.)
  3. Нажмите Merge или Объединить
  4. Скачайте результирующий файл
⚠️ Внимание: Онлайн-сервисы могут сохранять загруженные файлы на своих серверах. Не используйте их для работы с персональными данными (паспорта, медицинские записи) или коммерческой тайной.

7. Специализированные программы для работы с Excel

Если вам регулярно приходится обрабатывать большие объёмы данных, имеет смысл рассмотреть десктопные программы. Они работают быстрее онлайн-сервисов и поддерживают сложные сценарии объединения.

Топ-3 программы:

  • 💻 Excel Merge (от $29) — поддерживает слияние по ключевым столбцам, сохраняет формулы и условное форматирование
  • 📊 Kutools for Excel (от $39 в год) — более 300 инструментов, включая продвинутое объединение таблиц
  • 🔧 Ablebits Ultimate Suite (от $59) — автоматическое сопоставление столбцов с разными названиями

Преимущества десктопных программ:

  • 🚀 Работают в 5-10 раз быстрее, чем онлайн-сервисы
  • 🔒 Данные не покидают ваш компьютер
  • 🛠️ Поддержка сложных сценариев (объединение по частичному совпадению, обработка ошибок)

Из минусов — платная лицензия и необходимость установки. Однако для компаний, которые ежедневно работают с сотнями Excel-файлов, такие программы окупаются за месяц.

Сравнение методов объединения Excel-файлов

Чтобы выбрать оптимальный способ, сравним все методы по ключевым критериям:

Метод Сложность Макс. кол-во файлов Сохранение формул Автообновление Подходит для
Ручное копирование 2-5 Разовые задачи, маленькие файлы
Power Query ⭐⭐ 100+ Регулярное объединение, разная структура
Формулы ⭐⭐⭐ 10-20 ❌ (требуется F9) Опытные пользователи, простые структуры
VBA ⭐⭐⭐⭐ 1000+ ✅ (с дополнительным кодом) Автоматизация, сложные сценарии
Внешние данные ⭐⭐ 50+ Связь с базами данных, регулярные обновления
Онлайн-сервисы 5-10 ❌ (обычно) Разовые задачи, небольшие файлы
Спец. программы ⭐⭐ 1000+ Корпоративное использование, большие объёмы

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

Частые ошибки и как их избежать

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

  • 🔢 Смещение данных: Если после объединения строки "съехали" относительно заголовков, проверьте:
    • Одинаковое ли количество столбцов в исходных файлах
    • Нет ли скрытых символов (пробелов, переносов строк) в ячейках
    • Совпадают ли форматы ячеек (текст vs число)
  • 📉 Потеря формул: Большинство методов (кроме VBA и Power Query) преобразуют формулы в значения. Чтобы сохранить вычисления:
    • Используйте Специальная вставка → Формулы при ручном копировании
    • В Power Query отметьте опцию Загрузить в модель данных
  • 🔍 Дублирование заголовков: При объединении нескольких файлов заголовки столбцов могут повторяться. Решения:
    • В Power Query: удалите первую строку после объединения
    • В VBA: пропустите первую строку при копировании (wsSrc.Range("A2:Z..."))
  • 🔒 Защищённые файлы: Если файлы защищены паролем, большинству методов они будут недоступны. Используйте:
    • VBA с разблокировкой (Workbooks.Open Password:="yourpassword")
    • Специализированные программы вроде Excel Password Remover

Ещё одна распространённая проблема — разная кодировка в файлах (особенно если они экспортированы из 1С или других систем). В таком случае в объединённом файле вместо кириллицы могут появиться "кракозябры". Решение:

В Power Query:

1. Выделите проблемный столбец

2. На вкладке "Преобразование" выберите "Кодировка"

3. Попробуйте варианты: Windows-1251, UTF-8, DOS-866

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

Можно ли объединить файлы с разной структурой (разные столбцы)?

Да, но потребуется дополнительная настройка. В Power Query вы можете:

  1. Объединить файлы "как новые столбцы"
  2. Вручную сопоставить похожие столбцы (например, "ФИО" и "Full Name")
  3. Добавить пустые столбцы для отсутствующих данных

В VBA придётся писать код для сопоставления столбцов по ключевым словам.

Как объединить файлы, если они находятся в разных папках?

Есть три варианта:

  • 📁 Power Query: Сначала объедините файлы из каждой папки отдельно, затем сливайте результаты
  • 🖥️ VBA: Модифицируйте код, чтобы он рекурсивно обходил подпапки (Dir с параметром vbDirectory)
  • 🔄 Предварительная подготовка: Скопируйте все файлы в одну папку (можно через Total Commander или Far Manager)
Почему после объединения некоторые ячейки пустые?

Это происходит по трём причинам:

  1. Разная длина столбцов: В одном файле 10 столбцов, в другом — 12. Решение: добавьте недостающие столбцы вручную или через Power Query
  2. Скрытые символы: Пробелы или неразрывные пробелы (CHAR(160)) мешают сопоставлению. Используйте =TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160)," "))) для очистки
  3. Фильтры: В исходных файлах могли быть применены фильтры, скрывающие данные. Перед объединением снимите все фильтры (Данные → Фильтр → Очистить)
Как автоматизировать объединение по расписанию?

Для автоматического слияния по расписанию (например, каждый понедельник в 9:00) используйте:

  • 🕒 Планировщик задач Windows: Создайте задачу, которая открывает Excel-файл с макросом и запускает его
  • ⚙️ Power Automate (Microsoft Flow): Настройте поток, который:
    • Собирает файлы из папки (OneDrive, SharePoint)
    • Запускает Power Query или VBA
    • Отправляет результат на email
  • 🤖 Python-скрипт: С помощью библиотек pandas и openpyxl можно написать скрипт для слияния, а затем запускать его через cron (Linux/macOS) или Планировщик (Windows)

Пример кода на Python для автоматического слияния:

import pandas as pd

import os

Папка с файлами

folder_path = "C:/FilesToMerge/"

Результирующий файл

output_file = "C:/MergedResult.xlsx"

Получаем список всех файлов Excel в папке

files = [f for f in os.listdir(folder_path) if f.endswith(('.xlsx', '.xls'))]

Объединяем все файлы

df_combined = pd.concat(

[pd.read_excel(os.path.join(folder_path, f), skiprows=1) for f in files],

ignore_index=True

)

Сохраняем результат

df_combined.to_excel(output_file, index=False)

Можно ли объединить Excel и CSV файлы?

Да, но есть нюансы:

  • 📑 Power Query: Поддерживает оба формата. При импорте CSV укажите правильный разделитель (запятая, точка с запятой)
  • 🐍 Python: Библиотека pandas легко читает оба формата (pd.read_excel и pd.read_csv)
  • ⚠️ Проблемы:
    • В CSV нет типов данных — все импортируется как текст. Придётся вручную преобразовывать даты/числа
    • Кодировка CSV часто ломает кириллицу. Используйте параметр encoding='utf-8' или 'cp1251'

Пример импорта CSV в Power Query с правильной кодировкой:

let

Источник = Folder.Files("C:\ПапкаСФайлами"),

#"Фильтр CSV" = Table.SelectRows(Источник, each Text.EndsWith([Name], ".csv")),

#"Импорт CSV" = Table.AddColumn(#"Фильтр CSV", "Data", each Csv.Document(File.Contents([Content]),[Delimiter=",", Encoding=1251, QuoteStyle=QuoteStyle.None])),

#"Развернуть данные" = Table.ExpandTableColumn(#"Импорт CSV", "Data", {"Column1", "Column2"}, {"Column1", "Column2"})

in

#"Развернуть данные"