Короткий ответ: Если в одной книге десятки одинаково устроенных листов, копировать их вручную не нужно. Для стабильной структуры подходит Power Query, а для простой локальной книги — короткий VBA-макрос.
Что получится
На листе Свод будут собраны строки со всех рабочих листов, а в отдельном столбце будет имя исходного листа.

Исходные данные
Листы Январь, Февраль, Март имеют одинаковые столбцы:
| Дата | Заказ | Сумма |
|---|---|---|
| 05.01.2026 | A-001 | 1200 |
| 06.01.2026 | A-002 | 900 |

Способ 1
Если данные на каждом листе оформлены как Excel-таблицы, загрузите их в Power Query и выполните Добавление запросов. Это удобно, когда данные обновляются часто.
Способ 2
Для одинаковых листов можно использовать VBA:
Option Explicit
Sub MergeSheets()
Dim ws As Worksheet, dst As Worksheet
Dim lastRow As Long, dstRow As Long, lastCol As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
On Error GoTo ErrHandler
Set dst = ThisWorkbook.Worksheets("Свод")
dst.Cells.Clear
dstRow = 1
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> dst.Name Then
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
If lastRow >= 2 Then
If dstRow = 1 Then
ws.Range(ws.Cells(1, 1), ws.Cells(1, lastCol)).Copy dst.Cells(1, 1)
dst.Cells(1, lastCol + 1).Value = "Источник"
dstRow = 2
End If
ws.Range(ws.Cells(2, 1), ws.Cells(lastRow, lastCol)).Copy dst.Cells(dstRow, 1)
dst.Range(dst.Cells(dstRow, lastCol + 1), _
dst.Cells(dstRow + lastRow - 2, lastCol + 1)).Value = ws.Name
dstRow = dstRow + lastRow - 1
End If
End If
Next ws
CleanExit:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox "Ошибка: " & Err.Description, vbExclamation
Resume CleanExit
End Sub
Автоматизация
Для 2–3 листов ручное копирование иногда быстрее. Макрос или Power Query оправданы, когда листов много или сборку нужно повторять.

Типичные ошибки
- На листах разные заголовки.
- Есть пустые строки внутри данных.
- Макрос захватывает служебные листы.
- Лист
Сводотсутствует. - Используются объединённые ячейки и многострочные шапки.
Скачать пример
example.xlsm с листами Январь, Февраль, Март, Свод и макросом MergeSheets.
Когда лучше автоматизировать
Автоматизация нужна, когда новые листы появляются каждый период и свод приходится пересобирать.
Если у вас такая же задача, но таблица отличается, файлов много или процесс приходится повторять регулярно — можно автоматизировать под ваш файл.
Похожие материалы
- Как собрать данные из нескольких Excel-файлов в один
- Как объединить две таблицы Excel в одну по совпадающему значению
- Как сравнить две таблицы Excel и найти различия
- Как создать десятки договоров, актов или писем Word из Excel