Как в excel несколько нескольких листов объединить в один

Excel для Microsoft 365 для Mac Excel 2021 для Mac Excel 2019 для Mac Excel 2016 для Mac Excel для Mac 2011 Еще…Меньше

Если данные, которые требуется проанализировать, представлены на нескольких листах или в нескольких книгах, их можно объединить на одном листе с помощью команды «Консолидация». Например, если есть отдельный лист расходов для каждого регионального представительства, с помощью консолидации можно создать на базе этих данных корпоративный лист расходов. Такой лист может содержать итоговые и средние данные по продажам, текущим уровням запасов и наиболее популярным продуктам в рамках всей организации.

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

Консолидация по расположению

Для консолидации по расположению диапазон данных на каждом из исходных листов должен иметь формат списка без пустых строк и столбцов.

  1. Откройте каждый из исходных листов и убедитесь в том, что данные на них расположены одинаково.

  2. На конечном листе щелкните верхнюю левую ячейку области, в которой требуется разместить консолидированные данные.

    Примечание: Убедитесь, что справа и снизу достаточно свободных ячеек для консолидированных данных.

  3. На вкладке Данные в группе Работа с данными нажмите кнопку Консолидация.

    Кнопка "Консолидация" на вкладке "Данные"

  4. Выберите в раскрывающемся списке функцию, которую требуется использовать для консолидации данных.

  5. Выделите на каждом листе нужные данные.

    Путь к файлу вводится в поле Все ссылки.

  6. После добавления данных из всех исходных листов и книг нажмите кнопку ОК.

Консолидация по категории

Для консолидации по категории диапазон данных на каждом из исходных листов должен иметь формат списка без пустых строк и столбцов. Кроме того, категории должны быть названы одинаково. Например, если один из столбцов называется Сред. , а другой — Среднее, консолидация не просуммирует эти столбцы.

  1. Откройте каждый из исходных листов.

  2. На конечном листе щелкните верхнюю левую ячейку области, в которой требуется разместить консолидированные данные.

    Примечание: Убедитесь, что справа и снизу достаточно свободных ячеек для консолидированных данных.

  3. На вкладке Данные в группе Работа с данными нажмите кнопку Консолидация.

    Кнопка "Консолидация" на вкладке "Данные"

  4. Выберите в раскрывающемся списке функцию, которую требуется использовать для консолидации данных.

  5. Установите флажки в группе Использовать в качестве имен, указывающие, где в исходных диапазонах находятся названия: подписи верхней строки, значения левого столбца либо оба флажка одновременно.

  6. Выделите на каждом листе нужные данные. Не забудьте включить в них ранее выбранные данные из верхней строки или левого столбца.

    Путь к файлу вводится в поле Все ссылки.

  7. После добавления данных из всех исходных листов и книг нажмите кнопку ОК.

    Примечание: Любые названия, не совпадающие с названиями в других исходных областях, могут привести к появлению в консолидированных данных отдельных строк или столбцов.

Консолидация по расположению

Для консолидации по расположению диапазон данных на каждом из исходных листов должен иметь формат списка без пустых строк и столбцов.

  1. Откройте каждый из исходных листов и убедитесь в том, что данные на них расположены одинаково.

  2. На конечном листе щелкните верхнюю левую ячейку области, в которой требуется разместить консолидированные данные.

    Примечание: Убедитесь, что справа и снизу достаточно свободных ячеек для консолидированных данных.

  3. На вкладке Данные в разделе Сервис нажмите кнопку Консолидация.

    Вкладка "Данные", группа "Сервис"

  4. Выберите в раскрывающемся списке функцию, которую требуется использовать для консолидации данных.

  5. Выделите на каждом листе нужные данные и нажмите кнопку Добавить.

    Путь к файлу вводится в поле Все ссылки.

  6. После добавления данных из всех исходных листов и книг нажмите кнопку ОК.

Консолидация по категории

Для консолидации по категории диапазон данных на каждом из исходных листов должен иметь формат списка без пустых строк и столбцов. Кроме того, категории должны быть названы одинаково. Например, если один из столбцов называется Сред. , а другой — Среднее, консолидация не просуммирует эти столбцы.

  1. Откройте каждый из исходных листов.

  2. На конечном листе щелкните верхнюю левую ячейку области, в которой требуется разместить консолидированные данные.

    Примечание: Убедитесь, что справа и снизу достаточно свободных ячеек для консолидированных данных.

  3. На вкладке Данные в разделе Сервис нажмите кнопку Консолидация.

    Вкладка "Данные", группа "Сервис"

  4. Выберите в раскрывающемся списке функцию, которую требуется использовать для консолидации данных.

  5. Установите флажки в группе Использовать в качестве имен, указывающие, где в исходных диапазонах находятся названия: подписи верхней строки, значения левого столбца либо оба флажка одновременно.

  6. Выделите на каждом листе нужные данные. Убедитесь, что вы выбрали верхнюю строку или левый столбец, а затем нажмите кнопку Добавить.

    Путь к файлу вводится в поле Все ссылки.

  7. После добавления данных из всех исходных листов и книг нажмите кнопку ОК.

    Примечание: Любые названия, не совпадающие с названиями в других исходных областях, могут привести к появлению в консолидированных данных отдельных строк или столбцов.

Нужна дополнительная помощь?

Skip to content

6 примеров — как консолидировать данные и объединить листы Excel в один

В статье рассматриваются различные способы объединения листов в Excel в зависимости от того, какой результат вы хотите получить:

  • объединить все данные с выбранных листов,
  • объединить несколько листов с различным порядком столбцов,
  • объединить определённые столбцы с нескольких листов,
  • объединить две таблицы Excel в одну по ключевым столбцам.

Сегодня мы займемся проблемой, с которой ежедневно сталкиваются многие пользователи Excel, — как объединить листы Excel в один без использования операций копирования и вставки. Рассмотрим два наиболее распространенных сценария: объединение числовых данных (сумма, количество, среднее и т. д.) и объединение листов ( то есть копирование данных из нескольких листов в один).

Вот что мы рассмотрим в этой статье:

  • Объединение при помощи стандартного инструмента консолидации.
  • Как копировать несколько листов Excel в один.
  • Как объединить листы с различным порядком столбцов.
  • Объединение только определённых столбцов из нескольких листов
  • Слияние листов в Excel с использованием VBA
  • Как объединить два листа в один по ключевым столбцам

Консолидация данных из нескольких листов на одном.

Самый быстрый способ консолидировать данные в Excel (в одной или нескольких книгах) — использовать встроенную функцию Excel Консолидация.

Рассмотрим следующий пример. Предположим, у вас есть несколько отчетов из региональных офисов вашей компании, и вы хотите объединить эти цифры в основной рабочий лист, чтобы у вас был один сводный отчет с итогами продаж по всем товарам.

Как вы видите на скриншоте ниже, четыре объединяемых листа имеют схожую структуру данных, но разное количество строк и столбцов:

Чтобы объединить всю эту информацию на одном листе, выполните следующие действия:

  1. Правильно расположите исходные данные. Чтобы функция консолидации Excel работала правильно, убедитесь, что:
    • Каждый диапазон (набор данных), который вы хотите объединить, находится на отдельном листе. Не помещайте данные на лист, куда вы планируете выводить консолидированные данные.
    • Каждый лист имеет одинаковый макет, и каждый столбец имеет заголовок и содержит похожие данные.
    • Ни в одном списке нет пустых строк или столбцов.
  2. Запустите инструмент «Консолидация». На новом листе, где вы планируете поместить результаты, щелкните верхнюю левую ячейку, начиная с которой должны отображаться консолидированные данные, затем на ленте перейдите на вкладку «Данные» и нажмите кнопку «Консолидация».

Совет. Желательно объединить данные в пустой лист. Если на вашем основном листе уже есть данные, убедитесь, что имеется достаточно места (пустые строки и столбцы) для записи результатов.

  1. Настройте параметры консолидации. Появляется диалоговое окно «Консолидация», и вы делаете следующее:
    • В поле «Функция» выберите одну из функций, которую вы хотите использовать для консолидации данных (количество, среднее, максимальное, минимальное и т. д.). В этом примере мы выбираем Сумма.
    • В справочном окне, нажав в поле Ссылка на значок  , выберите диапазон на первом листе. Затем нажмите кнопку «Добавить», чтобы присоединить его к списку диапазонов. Повторите этот шаг для всех листов, которые вы хотите объединить.

Если один или несколько листов находятся в другой книге, используйте кнопку «Обзор», чтобы найти эту книгу и использовать ее.

  1. Настройте параметры обновления. В том же диалоговом окне Консолидация выберите любой из следующих параметров:
    • Установите флажки «Подписи верхней строки» и / или «Значения левого столбца» в разделе «Использовать в качестве имён», если вы хотите, чтобы заголовки строк и / или столбцов исходных диапазонов были также скопированы.
    • Установите флажок «Создать связи с исходными данными», если нужно, чтобы консолидированные данные обновлялись автоматически при изменении исходных таблиц. В этом случае Excel создаст ссылки на ваши исходные листы, а также схему, как на следующем скриншоте:

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

Как видите, функция консолидации Excel очень полезна для сбора данных. Однако у нее есть несколько ограничений. В частности, он работает только для числовых значений и всегда обрабатывает эти числа тем или иным образом (сумма, количество, среднее и т. д.). Исходные цифры вы здесь не увидите.

Если вы хотите объединить листы в Excel, просто скопировав и объединив их содержимое, вариант консолидации не подходит. Чтобы объединить всего парочку из них, создав как бы единый массив данных, то вам из стандартных возможностей Excel не подойдёт ничего, кроме старого доброго копирования / вставки. 

Но если вам предстоит таким образом обработать десятки листов, ошибки при этом будут практически неизбежны. Да и затраты времени весьма значительны.

Поэтому для подобных задач рекомендую использовать один из перечисленных далее нестандартных методов для автоматизации слияния.

Как скопировать несколько листов Excel в один.

Как мы уже убедились, встроенная функция консолидации умеет суммировать данные из разных листов, но не может объединять их путем копирования данных на какой-то итоговый лист. Для этого вы можете использовать один из инструментов слияния и комбинирования, включенных в надстройку Ultimate Suite для Excel.

Для начала давайте будем исходить из следующих условий:

  • Структура таблиц и порядок столбцов на всех листах одинаковы.
  • Количество строк везде разное.
  • Листы могут в будущем добавляться или удаляться.

Итак, у вас есть несколько таблиц, содержащих информацию о различных товарах, и теперь вам нужно объединить эти таблицы в одну итоговую, например так, как на рисунке ниже:

Три простых шага — это все, что нужно, чтобы объединить выбранные листы в один.

1.       Запустите мастер копирования листов.

На ленте перейдите на вкладку AblebitsData, нажмите «Копировать листы (Copy Sheets)» и выберите один из следующих вариантов:

  1. Скопировать листы из каждой книги на один лист и поместить полученные листы в одну книгу.
  2. Объединить листы с одинаковыми названиями в один.
  3. Скопировать выбранные в одну книгу.
  4. Объединить данные из выбранных листов на один лист.

Поскольку мы хотим объединить несколько листов путем копирования их данных, то выбираем последний вариант:

1.       Выберите листы и, при необходимости, диапазоны для объединения.

Мастер копирования листов отображает список всех имеющихся листов во всех открытых книгах. Выберите те из них, которые хотите объединить, и нажмите « Далее».

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

В этом примере мы объединяем первые три листа нашей книги:

Совет. Если рабочие листы, которые вы хотите объединить, находятся в другой книге, которая в данный момент закрыта, нажмите кнопку «Добавить файлы …» , чтобы найти и открыть эту книгу.

2.       Выберите, каким образом произвести объединение.

На этом этапе вы должны настроить дополнительные параметры, чтобы ваша информация была объединена именно так, как вы хотите.

Как вставить :

  1. Вставить все – скопировать все данные (значения и формулы). В большинстве случаев это правильный выбор.
  2. Вставлять только значения – если вы не хотите, чтобы переносились формулы, выберите этот параметр.
  3. Создать ссылки на исходные данные – это добавит формулы, связывающие итоговые ячейки с исходными. Выберите этот параметр, если вы хотите, чтобы результат объединения обновлялся автоматически при изменении исходных файлов. Это работает аналогично параметру «Создать ссылки на исходные данные» в стандартном инструменте консолидации в Excel.

Как расположить :

  1. Разместите скопированные диапазоны один под другим – то есть вертикально.
  2. Расположить скопированные диапазоны рядом – то есть по горизонтали.

Как скопировать :

  • Сохранить форматирование – понятно и очень удобно.
    • Разделить скопированные диапазоны пустой строкой – выберите этот вариант, если вы хотите добавить пустую строку между сведениями, скопированными из разных листов. Так вы сможете отделить их друг от друга, если это необходимо.
    • Скопировать таблицы вместе с их заголовками. Установите этот флажок, если хотите, чтобы заголовки исходных таблиц были включены в итоговый лист.

На скриншоте ниже показаны настройки по умолчанию, которые нам подходят:

Нажмите кнопку «Копировать (Copy)», и у вас будет содержимое трех разных листов, объединенное в один итоговый, как показано в начале этого примера.

Быть может, вы скажете, что подобную операцию можно произвести путем обычного копирования и вставки. Но если у вас будет десяток или более листов и хотя бы несколько сотен строк на каждом из них, то это будет весьма трудоемкой операцией, которая займет довольно много времени. Да и ошибки вполне вероятны. Использование надстройки сэкономит вам много времени и избавит от проблем.

Как объединить листы Excel с различным порядком столбцов.

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

Используем инструмент объединения листов Combine Sheets.

Запускаем надстройку через меню Ablebits Data – Combine Sheets.

Выбираем и отмечаем галочками те листы, данные с которых мы хотим объединить. Затем программа анализирует их и предлагает нам список найденных столбцов с указанием того, сколько раз столбец с подобным названием был обнаружен.

Вы должны указать те столбцы, данные из которых вы хотели бы объединить. Можете выбрать их все, можете – только самые важные.

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

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

И данные будут идеально скомпонованы по заголовкам столбцов:

Мы получили своего рода сводную таблицу с необходимой информацией.

Объединение определенных столбцов из нескольких листов.

А вот, как мне кажется, наиболее часто встречающаяся ситуация:

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

Запустите мастер объединения листов, как мы это делали в предыдущем примере, укажите нужные, а затем выберите соответствующие столбцы. Да, это так просто!

Все дальнейшие шаги мы уже описывали выше. В результате в итоговую таблицу попадают только данные из выбранных вами столбцов:

Эти примеры продемонстрировали только несколько инструментов слияния данных, но это еще не все! Немного поэкспериментировав, вы увидите, насколько полезны и удобны все функции, включенные в пакет. 

Полнофункциональная ознакомительная версия Ultimate Suite доступна для загрузки в по этой ссылке.

Слияние листов в Excel с помощью кода VBA

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

Для этого на вкладке Разработчик (Developer) нажмите кнопку Visual Basic или воспользуйтесь сочетанием клавиш Alt+F11. В открывшемся окне добавьте новый модуль через меню Insert — Module и скопируйте туда текст вот такого макроса:

Sub CopyDataWithHeaders()
    Dim sh As Worksheet
    Dim DestSh As Worksheet
    Dim Last As Long
    Dim shLast As Long
    Dim CopyRng As Range
    Dim StartRow As Long

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    'Delete the sheet "RDBMergeSheet" if it exist
    Application.DisplayAlerts = False
    On Error Resume Next
    ActiveWorkbook.Worksheets("RDBMergeSheet").Delete
    On Error GoTo 0
    Application.DisplayAlerts = True

    'Add a worksheet with the name "RDBMergeSheet"
    Set DestSh = ActiveWorkbook.Worksheets.Add
    DestSh.Name = "RDBMergeSheet"

    'Fill in the start row
    StartRow = 2

    'loop through all worksheets and copy the data to the DestSh
    For Each sh In ActiveWorkbook.Worksheets
        If sh.Name <> DestSh.Name Then

'Copy header row, change the range if you use more columns
If WorksheetFunction.CountA(DestSh.UsedRange) = 0 Then
  sh.Range("A1:Z1").Copy DestSh.Range("A1")
End If

            'Find the last row with data on the DestSh and sh
            Last = LastRow(DestSh)
            shLast = LastRow(sh)

            'If sh is not empty and if the last row >= StartRow copy the CopyRng
            If shLast > 0 And shLast >= StartRow Then

                'Set the range that you want to copy
                Set CopyRng = sh.Range(sh.Rows(StartRow), sh.Rows(shLast))

                'Test if there enough rows in the DestSh to copy all the data
                If Last + CopyRng.Rows.Count > DestSh.Rows.Count Then
                    MsgBox "There are not enough rows in the Destsh"
                    GoTo ExitTheSub
                End If

                'This example copies values/formats, if you only want to copy the
                'values or want to copy everything look below example 1 on this page
                CopyRng.Copy
                With DestSh.Cells(Last + 1, "A")
                    .PasteSpecial xlPasteValues
                    .PasteSpecial xlPasteFormats
                    Application.CutCopyMode = False
                End With

            End If

        End If
    Next

ExitTheSub:

    Application.Goto DestSh.Cells(1)

    'AutoFit the column width in the DestSh sheet
    DestSh.Columns.AutoFit

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub

Function LastRow(sh As Worksheet)
    On Error Resume Next
    LastRow = sh.Cells.Find(What:="*", _
                            After:=sh.Range("A1"), _
                            Lookat:=xlPart, _
                            LookIn:=xlFormulas, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlPrevious, _
                            MatchCase:=False).Row
    On Error GoTo 0
End Function


Function LastCol(sh As Worksheet)
    On Error Resume Next
    LastCol = sh.Cells.Find(What:="*", _
                            After:=sh.Range("A1"), _
                            Lookat:=xlPart, _
                            LookIn:=xlFormulas, _
                            SearchOrder:=xlByColumns, _
                            SearchDirection:=xlPrevious, _
                            MatchCase:=False).Column
    On Error GoTo 0
End Function

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

В этой функции выполняется копирование данных со всех листов начиная со строки 2 и до последней строки с данными. Если шапка в ваших таблицах занимает две или более строки, то измените этот код, поставив вместо 2 цифры 3, 4 и т.д.:

    'Fill in the start row
    StartRow = 2

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

Ещё несколько интересных примеров кода VBA для объединения листов вашей рабочей книги вы можете найти по этой ссылке.

Как объединить два листа Excel в один по ключевому столбцу

Если вы ищете быстрый способ сопоставить и объединить данные из двух листов, вы можете либо использовать функцию Excel ВПР, либо воспользоваться мастером объединения таблиц Merge Two Tables. 

Последний представляет собой удобный визуальный инструмент, который позволяет сравнивать две таблицы Excel по общему столбцу (столбцам) и извлекать совпадающие данные из справочной таблицы. На скриншоте ниже показан один из возможных результатов.

Более подробно его работа рассмотрена в этой статье.

Мастер объединения двух таблиц также включен в Ultimate Suite for Excel, как и множество других полезных функций.

Вот как вы можете объединить листы в Excel. Я надеюсь, что вы найдете информацию в этом коротком руководстве полезной. Если у вас есть вопросы, не стесняйтесь оставлять их в комментариях.

Быстрое удаление пустых столбцов в Excel В этом руководстве вы узнаете, как можно легко удалить пустые столбцы в Excel с помощью макроса, формулы и даже простым нажатием кнопки. Как бы банально это ни звучало, удаление пустых…
Как быстро объединить несколько файлов Excel Мы рассмотрим три способа объединения файлов Excel в один: путем копирования листов, запуска макроса VBA и использования инструмента «Копировать рабочие листы» из надстройки Ultimate Suite. Намного проще обрабатывать данные в…
Как работать с мастером формул даты и времени Работа со значениями, связанными со временем, требует глубокого понимания того, как функции ДАТА, РАЗНДАТ и ВРЕМЯ работают в Excel. Эта надстройка позволяет быстро выполнять вычисления даты и времени и без особых…
Как найти и выделить уникальные значения в столбце В статье описаны наиболее эффективные способы поиска, фильтрации и выделения уникальных значений в Excel. Ранее мы рассмотрели различные способы подсчета уникальных значений в Excel. Но иногда вам может понадобиться только просмотреть уникальные…
Как получить список уникальных значений В статье описано, как получить список уникальных значений в столбце с помощью формулы и как настроить эту формулу для различных наборов данных. Вы также узнаете, как быстро получить отдельный список с…
6 способов быстро транспонировать таблицу В этой статье показано, как столбец можно превратить в строку в Excel с помощью функции ТРАНСП, специальной вставки, кода VBA или же специального инструмента. Иначе говоря, мы научимся транспонировать таблицу.…
Как объединить две или несколько таблиц в Excel В этом руководстве вы найдете некоторые приемы объединения таблиц Excel путем сопоставления данных в одном или нескольких столбцах. Как часто при анализе в Excel вся необходимая информация собирается на одном…

Как объединить листы документа в Excel Online

Формат Excel позволяет легко объединять много листов в одну новую рабочую книгу. Иногда возникает необходимость соединить листы Excel в один, поскольку переключаться между множеством книг или постоянно копирование строки занимает довольно много сил и времени.

как объединить листы эксель онлайн

Содержание

  • 1 Как работает объединение листов в Эксель Онлайн
  • 2 Как объединить все листы в одну книгу
  • 3 Объединение данных в один лист

Как работает объединение листов в Эксель Онлайн

Иногда данные документов Excel находятся на разных листах или даже в разных файлах. Для удобства работы возникает потребность, как собрать всю информацию в одном месте, на одном листе. Конечно, вы можете соединять информацию, поочередно копируя ее, но это довольно энергозатратно и долго. Рассмотрим способы, которые позволят выполнить эту задачу гораздо проще.

Чтобы объединить много листов выполните следующие действия:

  1. Откройте нужные листы Excel и зайдите в меню Главная;
  2. Нажмите кнопку Формат и выберите пункт Переместить или скопировать текст;
  3. В появившемся окне укажите Новая книга и нажмите ОК.

как объединить листы эксель

Как объединить все листы в одну книгу

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

Для объединения листов Excel в одну книгу выполните следующие действия:

  1. Откройте нужные для объединения листы;
  2. Зайдите в меню Главная на вкладку Формат;
  3. Выберите пункт Переместить или скопировать текст;
  4. В появившемся меню выберите Новая книга, чтобы указать сводную таблицу для совмещения всех листов;
  5. Продублируйте все действия с остальными листами, которые нужно объединить. Сохраните готовый файл.

как объединить данные эксель в один лист

Объединение данных в один лист

Иногда возникает необходимость несколько наборов данных объединить в сводный лист. Для этого заранее отформатируйте эти данные и приступите в объединению.

Чтобы объединить информацию в один лист выполните следующие действия:

  1. Создайте новый рабочий документ Excel;
  2. Зайдите в меню Данные и нажмите кнопку Закреплять;
  3. В появившемся окне кликните Сумма;
  4. Нажмите пункт Рекомендации, чтобы открыть таблицу для выбора данных.

Примечание: Выполните эту процедуру для информации, которую нужно объединить. При необходимости, извлеките ее из иных книг нажатием кнопки Просматривать.

объединить таблицы эксель

  1. Укажите Создать ссылки на исходные данные, если нужно продолжить обновление данных на остальных листах, и лист должен это отражать;
  2. Кликните Ок и сохраните всю информацию.

Объединение информации на один лист – это выбор и перенос данных из разных листов на другой отдельный лист. Вся информация копируется полностью, перенесенные диапазоны добавляются последовательно, первый под последней строкой предыдущего диапазона. Объединение разных данных оказывается довольно трудоемким занятием, особенно если вам необходимо объединять большие объемы данных.

Нужно подходить к этому процессу с осторожностью, поскольку все равно рискуете потерять и перезаписывать какую-то важную информацию. Самым безопасным является создание резервной копии всех документов, работайте только с копиями.

Объединение данных с нескольких листов

​Смотрите также​​ пожалуйста на этом​ и низ затем​Использовать в качестве имен​ файлах, то суммирование​Если не трудно​For Each ws​ Then MsgBox «Не​Между этими двумя формулами​ строки уникальных заказа.​Дата продажи​ Таблица приводит к​Примечание:​ эта статья была​ названы одинаково. Например,​ нужные данные. Не​ требуется разместить консолидированные​Примечание:​ примере (файл прикрепил)​ на 2 строки​(Use labels)​ при помощи обычных​

​ конечно. Мне нужно,​ In Worksheets​ выбрано ни одного​ есть только одно​ Чтобы сделать это,​Код продукта​ увеличению размера, чтобы​ После группировки листов в​ вам полезна. Просим​ если один из​ забудьте включить в​ данные.​Мы стараемся как​ как сделать чтоб​ выше​. Флаг​ формул придется делать​ чтобы листы собирались​If Not ws.Name​ файла!» Exit Sub​ различие: первая получает​ давайте вставьте заголовки​

​20050​ включить новые строки.​ названии книги отобразится​ вас уделить пару​ столбцов называется​ них ранее выбранные​Примечание:​ можно оперативнее обеспечивать​ содержимое бралось только​l = rr.Rows.Count​Создавать связи с исходными​ для каждой ячейки​ не со второй​ = «Svod» Then​ End If ‘проходим​ значения из столбца 2​ таблицы Код продажи​02.02.2014​

​ Если строк в​ надпись​ секунд и сообщить,​

Консолидация по расположению

​Сред.​ данные из верхней​ Убедитесь, что справа и​ вас актуальными справочными​ определенного диапазона.​With Sheets(«Лист2»)​ данными​

  1. ​ персонально, что ужасно​ строки а с​l = .Cells.Find(«*»,​ по всем выбранным​ таблицы «Оранжевая», а​

  2. ​ «и» Регион в​C6077B​ обеих таблицах совпадают,​[Группа]​ помогла ли она​

    ​, а другой —​​ строки или левого​ снизу достаточно свободных​ материалами на вашем​Спасибо.​

  3. ​rr.Copy .Range(«B» &​​(Create links to source​​ трудоемко. Лучше воспользоваться​​ первой.​​ [a1], xlFormulas, 1,​​ файлам x =​​ вторая — из столбца​

    Кнопка

  4. ​ ячеек справа от​​20050​​ можно объединить столбцы​.​

  5. ​ вам, с помощью​Среднее​

    ​ столбца.​ ячеек для консолидированных​​ языке. Эта страница​​AdwordsDirect​

  6. ​ .Rows.Count).End(IIf(Len(.Range(«B» & .Rows.Count)),​ data)​ принципиально другим инструментом.​_Boroda_​​ 1, 2).Row +​​ 1 While x​

Консолидация по категории

​ 3.​ синего таблицы и​02.02.2014​ из одной таблицы​К началу страницы​ кнопок внизу страницы.​, консолидация не просуммирует​Путь к файлу вводится​ данных.​ переведена автоматически, поэтому​: Вот пожалуйста.​​ xlDown, xlUp)).Offset(1)​​позволит в будущем​​Рассмотрим следующий пример. Имеем​​: .Offset(1) сотрите​ 1​

  1. ​После этого можно вернуться​Теперь все ячейки новых​

  2. ​ формулы ВПР правильные​C9250LB​ с другой —​Совет:​ Для удобства также​

    ​ эти столбцы.​​ в поле​На вкладке​ ее текст может​Создаём лист «Общий»​

  3. ​.Range(«A» & .Rows.Count).End(IIf(Len(.Range(«A»​​ (при изменении данных​​ три разных файла​​Aliya​​ws.UsedRange.Offset(1).Copy .Range(«a» &​​ в Excel и​​ столбцов в таблице​

    Кнопка

  4. ​ значения с помощью​​20051​​ путем вставки их​ Клиентам нравятся советы. Если​

  5. ​ приводим ссылку на​​Откройте каждый из исходных​​Все ссылки​Данные​ содержать неточности и​​Вставляем макрос и​​ & .Rows.Count)), xlDown,​​ в исходных файлах)​​ (​: Здр-те​

  6. ​ l)​ запустить созданный макрос​ «Синяя» заполнены значениями.​ код продажи и​02.02.2014​ в первой пустой​ вы можете поделиться​

    ​ оригинал (на английском​ листов.​​.​​в группе​

  7. ​ грамматические ошибки. Для​ активируем его.​ xlUp)).Offset(1).Resize(l) = sh.Name​ производить пересчет консолидированного​​Иван.xlsx​​Aliya​

    ​End If​​ через меню​ В них содержатся​ область столбцов в​M115A​ ячейки справа от​ хорошим советом, добавьте​ языке) .​

Консолидация по расположению

​На конечном листе щелкните​После добавления данных из​Работа с данными​ нас важно, чтобы​Sub m()​End With​ отчета автоматически.​

  1. ​,​: у меня вопрос.​Next​Сервис — Макрос -​ формулы ВПР, но​

  2. ​ таблице оранжевый.​20052​ таблицы. В этом​ его.​You can quickly perform​

    ​ верхнюю левую ячейку​​ всех исходных листов​нажмите кнопку​ эта статья была​For i =​

  3. ​End If​​После нажатия на​​Рита.xlsx​​ Мне понравился очень​​End With​​ Макросы (Tools -​​ отображаются значения. Возможно,​

    Вкладка

  4. ​Вот как это сделать:​​03.02.2014​​ случае также таблицы​Если вы больше не​

  5. ​ tasks on multiple​ области, в которой​ и книг нажмите​​Консолидация​​ вам полезна. Просим​

    ​ 1 To Sheets.Count​Next​​ОК​​и​

  6. ​ ваш макрос. У​End Sub​ Macro — Macros)​ вы захотите заменить​​Скопируйте заголовки «код продажи»​​A760G​

Консолидация по категории

​ приводит к увеличению​ хотите выполнять задания​ worksheets at the​ требуется разместить консолидированные​ кнопку​.​ вас уделить пару​If Sheets(i).Name <>​End Sub​видим результат нашей​Федор​​ меня имеется файл​​migo​​или нажав​​ формулы ВПР в​ и «Регион в​

  1. ​20052​ учетом новых столбцов.​

  2. ​ на нескольких листах​ same time by​ данные.​ОК​Выберите в раскрывающемся списке​

    ​ секунд и сообщить,​​ «Общий» Then​maxzeev​ работы:​.xlsx​

  3. ​ с несколькими страницами.​​: Да, то что​​ALT+F8​​ этих ячейках фактическими​​ таблице оранжевый (только​​03.02.2014​​Объединение строк – довольно​

    Вкладка

  4. ​ одновременно, отмените группировку.​​ grouping worksheets together.​​Примечание:​.​

  5. ​функцию​​ помогла ли она​​myR_Total = Sheets(«Общий»).Range(«A»​: Вопрос снят, оказалось​Наши файлы просуммировались по​​) с тремя таблицами:​​ В каждом листе​​ надо! я именно​​. Отобразится диалоговое окно​ значениями.​

  6. ​ эти две ячейки).​E3331​ простой процесс, но​Удерживая клавишу CTRL, щелкните​ If you group​ Убедитесь, что справа и​Примечание:​, которую требуется использовать​​ вам, с помощью​​ & Sheets(«Общий»).Rows.Count).End(xlUp).Row​

    ​ все очень просто​ совпадениям названий из​​Хорошо заметно, что таблицы​​ примерно 5000 строк.​

  7. ​ так и хотел​ открытия файла, где​Выделите все ячейки значений​Вставьте их в ячейку​​20052​​ Объединение столбцов может​

    ​ листы, которые хотите​​ a set of​ снизу достаточно свободных​ Любые названия, не совпадающие​ для консолидации данных.​ кнопок внизу страницы.​myR_i = Sheets(i).Range(«A»​ и красиво, с​

support.office.com

Группировка листов

​ крайнего левого столбца​​ не одинаковы -​ И когда я​спасибо!!​ необходимо указать один​ в столбце «Код​ справа от заголовка​03.02.2014​ быть сложнее, если​ убрать из группы.​ worksheets, any changes​ ячеек для консолидированных​ с названиями в​Выделите на каждом листе​ Для удобства также​ & Sheets(i).Rows.Count).End(xlUp).Row​ помощью панели PLEX!​ и верхней строки​ у них различные​ применяю ваш макрос,​Я правильно понял,​ или несколько (удерживая​

​ продажи» и нажмите​ код товара синий​SP1447​ не соответствуют строки​К началу страницы​ you make on​ данных.​ других исходных областях,​ нужные данные.​ приводим ссылку на​Sheets(i).Rows(«1:» & myR_i).Copy​ Спасибо всем огромное!​ выделенных областей в​ размеры и смысловая​ то он очень​ чтоб сделать такой​ CTRL или SHIFT)​ клавиши CTRL+C, чтобы​ таблицы.​20053​ одной таблицы со​Вы можете легко сгруппировать​ one worksheet are​На вкладке​ могут привести к​Путь к файлу вводится​ оригинал (на английском​ Destination:=Sheets(«Общий»).Range(«A» & myR_Total​

​nerv​

  • ​ каждом файле. Причем,​

  • ​ начинка. Тем не​

  • ​ долго думает. Вопрос:​

  • ​ же макрос в​

Группировка выделенных листов

​ файлов, листы из​ скопировать их.​Теперь таблица «Синяя» содержит​03.02.2014​ строками в другой​ все листы книги.​ made in all​Данные​

Пример листа

​ появлению в консолидированных​ в поле​ языке) .​

  1. ​ + 1)​: Я так понял,​ если развернуть группы​ менее их можно​

    Выделены ярлыки

    ​ Почему так. Может​​ моем файле, состоящем​ которых надо добавить​На вкладке​ пять столбцов, включая​L88M​ таблице. С помощью​

  2. ​Щелкните правой кнопкой мыши​ the other worksheets​в разделе​ данных отдельных строк​Все ссылки​Если данные, которые требуется​End If​ что там еще​ (значками плюс слева​ собрать в единый​ быть я неправильно​ из 9 страниц,​ к текущей книге.​Главная​

    Формула на листе Формула также есть на листе

    ​ новые — «Код продажи»​​20054​ функции ВПР, можно​ ярлычок любого листа.​​ in the group​​Сервис​

    ​ или столбцов.​

​.​​ проанализировать, представлены на​Next​ помимо копирования суммировать​ от таблицы), то​

Отмена группировки выделенных листов

​ отчет меньше, чем​ применяю макрос или​ я должен изменить​migo​

  1. ​щелкните стрелку под​ и «Регион».​04.02.2014​

​ избежать проблем выравнивания.​

Группировка всех листов

​Выберите команду​ in the exact​

  1. ​нажмите кнопку​Для консолидации по расположению​

  2. ​После добавления данных из​​ нескольких листах или​​End Sub​

    В контекстном меню выбран элемент Выбраны все листы.

    ​ надо​​ можно увидеть из​ за минуту. Единственным​ это зависит от​ только эту строку?​: Здравствуйте!​ кнопкой​В таблице «Синяя», в​S1018MM​В приведенном ниже примере,​

    В контекстном меню выбран элемент

​Выделить все листы​

Отмена группировки всех листов

​ same location on​Консолидация​ диапазон данных на​

  1. ​ всех исходных листов​ в нескольких книгах,​

  2. ​Yoooo​​maxzeev​​ какого именно файла​

    ​ условием успешного объединения​​ количества данных в​l = .Cells.Find(«*»,​Прошу Вашей помощи​Вставить​

​ первой ячейке столбца​

support.office.com

Объединение двух или нескольких таблиц

​20055​​ вы увидите двух​.​ the worksheets. If​.​ каждом из исходных​ и книг нажмите​ их можно объединить​: Нужно объединить таблицы​: Нет суммировать не​ какие данные попали​ (консолидации) таблиц в​ файле. Помогите пож.​ , xlFormulas, 1,​ в решении следующей​.​ «Код продажи» начните​05.02.2014​ таблиц, которые ранее​Примечание:​ you want to​Выберите в раскрывающемся списке​

​ листов должен иметь​ кнопку​ на одном листе​ со всех листов​ нужно. Нужно было​ в отчет и​ подобном случае является​Читаем Правила форума,​ 1, 2, 3,​ задачи:​В коллекции параметров вставки​ вводить такую формулу:​C6077B​ были имена других​ Если сгруппировать все листы,​ create, for example,​функцию​ формат списка без​ОК​ с помощью команды​ в одну.​

​ выделить все листы,​ ссылки на исходные​ совпадение заголовков столбцов​ создаём свою тему,​ 4, 5, 6,​есть книга эксель​ нажмите кнопку​=ВПР(​20056​ новыми именами: «Синий»​

Объединение двух таблиц с помощью функции ВПР

​ а затем открыть​ standard tables or​, которую требуется использовать​ пустых строк и​.​ «Консолидация». Например, если​Проблема в том,​ далее выделить данные​ файлы:​ и строк. Именно​ прикладываем файл с​ 7, 8, 9).Row​ состоящая из 12​Значения​В таблице «Синяя» выберите​06.02.2014​ и «Оранжевая». В​ любой из них,​ calculations on a​ для консолидации данных.​ столбцов.​Для консолидации по категории​ есть отдельный лист​ что порядок показателей​ на всех листах​

Объединение двух столбцов с другой таблицей

​maxzeev​ по первой строке​ примером. Эта тема​ + 1​ листов.​.​ первую ячейку столбца​E3331​ таблице синий каждая​ группировка будет отменена.​ large number of​Установите флажки в группе​Откройте каждый из исходных​ диапазон данных на​ расходов для каждого​ в первой колонке​ (Ctrl+А), при этом​: Подскажите пожалуйста, как​ и левому столбцу​

​ закрыта​или еще что-то?​на каждом из​Выделите все ячейки значений​ «Номер заказа» — 20050.​20056​ строка представляет собой​ Однако если выделены​ worksheets, grouping can​Использовать в качестве имен​

​ листов и убедитесь​

​ каждом из исходных​

​ регионального представительства, с​

​ разный для каждой​

​ выделятся только данные​

​ объединить таблицы на​

​ каждой таблицы Excel​

​Имеем несколько однотипных таблиц​

​Poltava​

​ этих листов находится​

​ в столбце «Регион»,​

​Частично введенная формула выглядит​

​06.02.2014​

​ элемент строки для​

​ не все листы​

​ save you a​

​, указывающие, где в​

​ в том, что​

​ листов должен иметь​

​ помощью консолидации можно​

​ таблицы + иногда​

​ на всех листах​

​ 800 листах (имя​

​ будет искать совпадения​

​ на разных листах​

​: Неправильно поняли! ничего​

​ данные, которые надо​

​ скопируйте их и​

​ следующим образом:​

​D534X​

​ заказа. Итак, код​

​ книги, между ними​

​ lot of time.​

​ исходных диапазонах находятся​

​ данные на них​

​ формат списка без​

​ создать на базе​ встречаются показатели, которых​ без пустых строк.​ листов — даты)​ и суммировать наши​ одной книги. Например,​ менять не надо!​ совместить на отдельном​ повторите шаги 10​Выражение [@[Номер заказа]] означает,​

​Ниже приведены данные для​

​ заказа 20050 состоит​

​ можно свободно переключаться,​

​ This works best​

​ названия:​

​ расположены одинаково.​

​ пустых строк и​

​ этих данных корпоративный​

​ нет в остальных​

​ Затем в панели​

​ на один лист,​

​ данные.​

​ вот такие:​

​ макрос сам перебирает​

​ листе этой же​

​ и 11.​

​ что нужно взять​

​ оранжевой таблицы. Скопируйте​

​ из двух элементов,​

​ не нарушая группировки.​

​ if the worksheets​

​подписи верхней строки​

​На конечном листе щелкните​

​ столбцов. Кроме того,​

​ лист расходов. Такой​

​ таблицах.​

​ FLEX выбрать объединить​

​ чтобы таблицы либо​

​Для того, чтобы выполнить​

​Необходимо объединить их все​

​ все листы в​ книги. В идеале​Теперь формулы ВПР в​ значение в этой​ его в том​ код заказа 20051​К началу страницы​ already have identical​,​ верхнюю левую ячейку​ категории должны быть​ лист может содержать​TimSha​ данные на разных​ располагались одна под​ такую консолидацию:​ в одну общую​

​ книге будь их​

  1. ​ — чтоб при​ двух столбцах заменены​ же строке из​ же листе. После​

  2. ​ имеет один элемент,​После внесения всех нужных​ data structures.​значения левого столбца​

    ​ области, в которой​ названы одинаково. Например,​ итоговые и средние​: Для чего -​

  3. ​ листах в одном​ другой, либо в​Заранее откройте исходные файлы​ таблицу, просуммировав совпадающие​

    ​ там 3, 5​

  4. ​ появлении в одном​ значениями.​ столбца «Номер заказа».​

    ​ его вставки в​ имеет номер заказа​Частично введенная формула ВПР

    ​ изменений вы можете​В этой статье​либо оба флажка​ требуется разместить консолидированные​ если один из​

    ​ данные по продажам,​ цель главная какая?!​ листе, переключаем кнопку​ одну общую таблицу?​Создайте новую пустую книгу​ значения по кварталам​

  5. ​ или 10​ из листов новых​Как добавить или удалить​Введите точку с запятой​ лист, нажмите клавиши​ 20052 три элемента​

  6. ​ отменить группировку листов.​Группировка выделенных листов​ одновременно.​

    Законченная формула ВПР

    ​ данные.​ столбцов называется​ текущим уровням запасов​Как пытались сделать,​ на выделенные данные​ Таблицы на листах​ (Ctrl + N)​ и наименованиям.​KuklP​ данных, лист со​ строку или столбец​

    ​ и выделите всю​ Ctrl + T​ и т. д.​Щелкните ярлычок любого листа​

  7. ​Отмена группировки выделенных листов​Выделите на каждом листе​Примечание:​Сред.​ и наиболее популярным​ что конкретно не​

  8. ​ на каждом листе.​ идентичные.​Установите в нее активную​Самый простой способ решения​

    Законченная формула ВПР

    ​: Все верно​ сводной информацией мог​ в таблице​ таблицу «Оранжевая» с​ можно преобразовать в​ Мы будем рады​ группы.​

    ​Группировка всех листов​ нужные данные. Не​ Убедитесь, что справа и​, а другой —​ продуктам в рамках​ получается?​ ВСЕ! Как бонус​Hugo​ ячейку и выберите​ задачи «в лоб»​

  9. ​migo​ обновляться.​Использование структурированных ссылок в​ помощью мыши. В​ таблицу, а затем​

  10. ​ слияние код продажи​​Выберите команду​​Отмена группировки всех листов​ забудьте включить в​​ снизу достаточно свободных​​Среднее​

    Стрелка под кнопкой

  11. ​ всей организации.​OLEGOFF​​ я еще получил​​: Такие вопросы без​

    Кнопка

  12. ​ на вкладке (в​ — ввести в​: Все сработало, спасибо​Количество столбцов и​ формулах таблиц Excel​

    ​ формулу будет добавлен​ переименовать таблицу оранжевый.​ «и» Регион столбцов​

Дополнительные сведения о таблицах и функции ВПР

  • ​Разгруппировать листы​Ниже описан пример, когда​ них ранее выбранные​

  • ​ ячеек для консолидированных​, консолидация не просуммирует​

  • ​Тип консолидации следует выбирать​:​

support.office.com

Сборка листов из разных книг в одну

​ автоматическое проставления дат,​ примера данных в​ меню)​ ячейку чистого листа​ еще раз!!​ их наименования в​Использование функции ВПР (учебный​ аргумент Оранжевая[#Все].​

​Номер заказа​ в таблице, синий,​.​ в книге есть​ данные из верхней​​ данных.​​ эти столбцы.​ с учетом того,​​Yoooo​​ поскольку листы у​ файле не решаются​Данные — Консолидация​

​ формулу вида​Матрёна​ каждом листе совпадает,​ курс)​Введите точку с запятой,​Код продажи​ с учетом соответствующих​Совет:​ несколько листов, каждый​ строки или левого​На вкладке​Откройте каждый из исходных​ как выглядят объединяемые​, макросом в VBA​ меня имели название​ :)​(Data — Consolidate)​=’2001 год’!B3+’2002 год’!B3+’2003 год’!B3​: migo!​ а кол-во строк​

​Предположим, имеется куча книг​ число 2, еще​Регион​ значений в столбцах​​ Для разгруппирования также можно​ из которых соответствует​ столбца. Затем нажмите​​Данные​​ листов.​​ листы. Если данные​ можно так.​ дат, так что​Не надо 800,​. Откроется соответствующее окно:​которая просуммирует содержимое ячеек​См. вариант.​ всегда отличается.​

planetaexcel.ru

объединение данных с нескольких листов книги на один (Макросы Sub)

​ Excel, все листы​​ раз точку с​
​20050​ код заказа оранжевой​ щелкнуть ярлычок любого​
​ отдельному городу. Структура​ кнопку​в разделе​
​На конечном листе щелкните​ на листах расположены​Doktor1962​ не пришлось даже​ хватит 3-х.​Установите курсор в строку​ B2 с каждого​Я — не​Заранее благодарю!​ из которых надо​ запятой, а потом​447​
​ таблицы.​ листа, не входящего​ всех листов одинакова​Добавить​Сервис​
​ верхнюю левую ячейку​

​ единообразно (названия строк​​: А надстройка консолидация​

​ редактировать таблицу.​​Алгоритм примерно такой​Ссылка​ из указанных листов,​ программист и с​KuklP​
​ объединить в один​ 0, вот так:​Запад​В таблице синий повторите​
​ в группу.​ и отражает продажи​.​нажмите кнопку​ области, в которой​ и столбцов могут​
​ данных не подходит?​Может эта информация​ — цикл по​(Reference)​ и затем скопировать​

​ законами программирования в​​: ?​
​ файл. Копировать руками​
​ ;2;0​20051​
​ значения код заказа,​
​К началу страницы​
​ кофе.​Путь к файлу вводится​
​Консолидация​ требуется разместить консолидированные​
​ при этом различаться),​AleksSid​ окажется для кого​ всем листам, определяем​
​и, переключившись в​ ее на остальные​
​ объектно-ориентированных средах не​
​migo​
​ долго и мучительно,​
​Нажмите клавишу ВВОД, и​

​398​​ но код заказа​Примечание:​Чтобы выполнить одинаковые задачи​thumb​ в поле​
​.​ данные.​ воспользуйтесь консолидацией по​: В файле 2​ то полезной.​ что копировать, определем​ файл Иван.xlsx, выделите​
​ ячейки вниз и​ знакома, поэтому мой​: Спасибо, не знал​ поэтому имеет смысл​ законченная формула примет​Юг​
​ значения в таблице​

​Мы стараемся как​​ на определенных листах,​Все ссылки​Выберите в раскрывающемся списке​Примечание:​ расположению. Если же​ варианта, первый консолидацией,​Hugo​

​ куда копировать, копируем.​​ таблицу с данными​smile

​ вправо.​​ алгоритм тривиален и​ про эту функцию.​

​ использовать несложный макрос.​​ такой вид:​
​20052​
​ оранжевой должны быть​ можно оперативнее обеспечивать​ сделайте следующее.​.​функцию​ Убедитесь, что справа и​ на листах для​ второй формулами, но​: В общем код​Остальное без данных​ (вместе с шапкой).​Если листов очень много,​
​ в нем есть​ Но к сожалению​Открываем книгу, куда хотим​Выражение Оранжевая[#Все] означает, что​

​1006​​ уникальными. Если мы​​ вас актуальными справочными​​Удерживая клавишу CTRL, щелкните​После добавления данных из​

​, которую требуется использовать​​ снизу достаточно свободных​

​ соответствующих категорий используются​​ если у вас​​ выше делает примерно​​ не сделать -​ Затем нажмите кнопку​ то проще будет​ элемент «ущербности» -​ это, похоже, не​
​ собрать листы из​ нужно просматривать все​Север​ была чтобы просто​ материалами на вашем​ ярлычки листов, которые​

​ всех исходных листов​​ для консолидации данных.​

​ ячеек для консолидированных​​ одинаковые названия строк​

​ по факту листов​​ тоже самое, но​ как определять, как​Добавить​ разложить их все​ для подсчета строк​ то что нужно.​ других файлов, входим​ ячейки в таблице​20053​ копирование и вставка​ языке. Эта страница​ хотите объединить в​ и книг нажмите​Выделите на каждом листе​ данных.​ и столбцов (данные​ в несколько раз​
​ на автомате.​ копировать — это​(Add)​ подряд и использовать​ на листах он​

excelworld.ru

Консолидация (объединение) данных из нескольких таблиц в одну

Способ 1. С помощью формул 

​Если строить сводную​ в редактор Visual​ «Оранжевая». Число 2​447​

Excel как несколько листов объединить в один

​ данных в таблице​ переведена автоматически, поэтому​ группу.​ кнопку​ нужные данные и​

​На вкладке​ при этом могут​ больше чем в​Если с данными​ сейчас сказать нельзя.​

​в окне консолидации,​

​ немного другую формулу:​ требует наличия столба​ таблицу таким образом,​ Basic (​ означает, что нужно​Запад​ «оранжевая» код продажи​

​ ее текст может​Совет:​ОК​ нажмите кнопку​Данные​

​ быть расположены по-разному),​

​ примере,то формулами не​ конечно повезло по​Hugo​ чтобы добавить выделенный​=СУММ(‘2001 год:2003 год’!B3)​ «без дыр».​ то она получается​ALT+F11​ взять значение из​20054​ «и» Регион значения​ содержать неточности и​ Если вы хотите сгруппировать​.​

Способ 2. Если таблицы неодинаковые или в разных файлах

​Добавить​в группе​ используйте консолидацию по​ вариант, читайте тогда​ расположению и вообще…​: А то вот​ диапазон в список​Фактически — это суммирование​В Вашем примере​ вертикально — ориентированной.​), добавляем новый пустой​ второго столбца, а​885​

​ для элемента второй​ грамматические ошибки. Для​ листы, расположенные подряд,​​Примечание:​​.​​Работа с данными​​ категории.​​ про консолидацию, это​​DavletshinaY​​ такой код -​

Excel как несколько листов объединить в один

​ объединяемых диапазонов.​ всех ячеек B3​ я добавила столб​В «списке полей​ модуль (в меню​ 0 — что возвращать​Восток​ строки заказа 20050​ нас важно, чтобы​ щелкните ярлычок первого​ Любые названия, не совпадающие​Путь к файлу вводится​нажмите кнопку​Более новые версии​ средство Excel идеально​: Здравствуйте,​ подойдёт? :)​Повторите эти же действия​ на листах с​ А в таблицах​

​ для добавления в​Insert — Module​

  1. ​ значение следует только​
  2. ​20055​ бы отключение на​
  3. ​ эта статья была​ листа диапазона, а​ с названиями в​ в поле​​Консолидация​ ​ Office 2011 г.​​ подходит под вашу​
    Excel как несколько листов объединить в один
  4. ​неужели кроме как​​Option Explicit​ ​ для файлов Риты​​ 2001 по 2003,​ на всех листах.​ отчет» сводной таблицы​) и копируем туда​ в случае точного​​398​ ​ одну строку, в​​ вам полезна. Просим​ затем, удерживая клавишу​ других исходных областях,​Все ссылки​
  5. ​.​ ​ структуру таблиц и​ с помощью макроса​Sub tt()​ и Федора. В​
    Excel как несколько листов объединить в один

​ т.е. количество листов,​florenus​ нет возможности выбрать​ текст вот такого​ совпадения.​Юг​ которой будет изменить​ вас уделить пару​ SHIFT — последнего.​ могут привести к​.​Выберите в раскрывающемся списке​​Для консолидации по расположению​​ задачу. В файле​​ нельзя решить задачу​​Dim sh As​ итоге в списке​ ​ по сути, может​:​​ отдельные столбцы исходного​ макроса:​Обратите внимание: Excel заполняет​20056​ значения в новых​

​ секунд и сообщить,​​Теперь добавим одну формулу​​ появлению в консолидированных​После добавления данных из​

Excel как несколько листов объединить в один

​функцию​ диапазон данных на​ в , создан​ объединения листов в​ Worksheet, rr As​ должны оказаться все​ быть любым. Также​KuklP​ диапазона данных.​Sub CombineWorkbooks() Dim​ ячейки вниз по​644​ столбцов в таблице​ помогла ли она​ в ячейку B7​

Excel как несколько листов объединить в один

planetaexcel.ru

Объединение данных с разных листов на один лист.

​ данных отдельных строк​​ всех исходных листов​, которую требуется использовать​ каждом из исходных​ с помощью консолидации.​ один?​ Range, l As​ три диапазона:​ в будущем возможно​, не могли бы​А мне нужна​ FilesToOpen Dim x​

​ этому столбцу, используя​​Восток​ синий.​ вам, с помощью​ на листах «Париж»​
​ или столбцов.​ и книг нажмите​
​ для консолидации данных.​ листов должен иметь​Doktor1962​Спасибо.​ Long​
​Обратите внимание, что в​ поместить между стартовым​ Вы расшифровать макрос?​ возможность в поле​ As Integer Application.ScreenUpdating​

​ формулу ВПР.​​20057​Ниже приведены данные для​ кнопок внизу страницы.​

​ и «Лондон». Если​

​Примечание:​
​ кнопку​Установите флажки в группе​ формат списка без​: Ув. AleksSid раз​
​AdwordsDirect​For Each sh​
​ данном случае Excel​ и финальным листами​

​KuklP​ «название строк» указывать​
​ = False ‘отключаем​Вернитесь к шагу 3, но​1270​ синего таблицы можно​ Для удобства также​ два листа сгруппированы,​Мы стараемся как​ОК​
​Использовать в качестве имен​
​ пустых строк и​
​ уж вам нравится​: Здравствуйте,​ In Worksheets​
​ запоминает, фактически, положение​ дополнительные листы с​: Он не зашифрован.​
​ несколько названий столбцов​

​ обновление экрана для​
​ в этот раз​
​Восток​

​ скопировать в пустой​​ приводим ссылку на​ изменения, внесенные на​ можно оперативнее обеспечивать​.​, указывающие, где в​

​ столбцов.​​ расшифровывать мои ответы​подскажите пожалуйста как​If sh.Name <>​ файла на диске,​

​ данными, которые также​​florenus​ исходной таблицы.​ скорости ‘вызываем диалог​ начните вводить такую​20058​ лист. После его​ оригинал (на английском​ одном из них,​ вас актуальными справочными​Для консолидации по категории​ исходных диапазонах находятся​Откройте каждый из исходных​ (он над вашим,​ объединить несколько листов​ «Лист2» Then​ прописывая для каждого​ станут автоматически учитываться​:​KuklP​ выбора файлов для​ же формулу в​885​ вставки в лист,​ языке) .​

​ автоматически выполнятся на​ материалами на вашем​ диапазон данных на​

​ названия:​​ листов и убедитесь​ если заметите сообщением),​ воедино, чтоб когда​Set rr =​
​ из них полный​ при суммировании.​KuklP​

​: Может так(жмем кнопку)?​​ импорта FilesToOpen =​
​ первой ячейке столбца​Восток​ нажмите Ctrl +​Можно объединить строк (объединение)​ другом. Например, изменение​

​ языке. Эта страница​

planetaexcel.ru

Как объединить несколько листов в 1? (Формулы/Formulas)

​ каждом из исходных​​подписи верхней строки​
​ в том, что​ могу кроме приведенного​ заканчивалось содержимое 1-го​ sh.[a1].CurrentRegion​ путь (диск-папка-файл-лист-адреса ячеек).​Если исходные таблицы не​, извините не правильно​
​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub www()​ Application.GetOpenFilename _ (FileFilter:=»All​ «Регион».​Нужно ли обеспечить правильность​ T можно преобразовать​ из одной таблицы​ формулы на листе​
​ переведена автоматически, поэтому​

​ листов должен иметь​​,​
​ данные на них​
​ вами способа формулами​ листа, после него​
​Set rr =​
​ Чтобы суммирование происходило​ абсолютно идентичны, т.е.​
​ выразился. Вы не​Dim ws As​
​ files (*.*), *.*",​На шаге 6 вместо 2​
​ код продажи "и"​ в таблицу и​
​ в другую путем​ "Париж" в этом​ ее текст может​
​ формат списка без​
​значения левого столбца​
​ расположены одинаково.​

excelworld.ru

Объединение таблицы со всех листов в одну

​ посоветовать Вам посчитать​​ сразу шло содержимое​ rr.Offset(2, 0).Resize(rr.Rows.Count -​ с учетом заголовков​
​ имеют разное количество​ могли бы расписать​ Worksheet, l&​ _ MultiSelect:=True, Title:=»Files​ введите число 3,​ Регион значения для​ выберите Переименовать таблицу​ вставки данных в​

​ случае также будет​​ содержать неточности и​ пустых строк и​
​либо оба флажка​На конечном листе щелкните​ на пальцах. А​

​ 2-го листа.​​ 2, rr.Columns.Count) ‘сдвиг​​ столбцов и строк​​ строк, столбцов или​ какая команда что​

​With Sheets(«Svod»)​​ to Merge») If​ и законченная формула​

​ каждого заказа выравнивания​​ синий.​ первой пустой ячейки​ учтено на листе​ грамматические ошибки. Для​ столбцов. Кроме того,​ одновременно.​ верхнюю левую ячейку​ расшифровывать написанное другими​И если не​ выбора таблицы на​ необходимо включить оба​ повторяющиеся данные или​ выполняет.​.UsedRange.Offset(1).ClearContents​ TypeName(FilesToOpen) = «Boolean»​ примет такой вид:​

​ с каждым элементом​​Номер заказа​ под целевой таблицы.​ «Лондон».​ нас важно, чтобы​ категории должны быть​Выделите на каждом листе​ области, в которой​ некрасиво​ затруднит, покажите сразу​ 2 строки ниже​ флажка​

CyberForum.ru

​ находятся в разных​

На чтение 5 мин Опубликовано 07.01.2021

Часто при работе в табличном редакторе происходит так, что необходимая информация располагается на отдельных рабочих листах или же файлах. Перед пользователями встает задача объединения нескольких листов и файлов в единое целое. Можно, конечно, путем копирования ячеек из одного документа и вставки их в другой файл реализовать процедуру объединения, но это неудобно и неэффективно. В статье мы детально рассмотрим несколько эффективных методов, позволяющих реализовать объединение табличных документов в один.

Содержание

  1. Объединение рабочих листов в один в табличном редакторе
  2. Объединение информации в один файл
  3. Объединение файлов при помощи VBA
  4. Заключение

Объединение рабочих листов в один в табличном редакторе

Первоначально рассмотрим такую процедуру, как объединение рабочих листов в один документ. Подробная инструкция выглядит так:

  1. Производим открытие рабочих листов, которые мы планируем объединить в один файл.
  2. Передвигаемся в подраздел, имеющий наименование «Главная». Здесь в блоке команд «Формат» находим элемент под наименованием «Переместить или скопировать лист» и жмем по нему левой клавишей мышки.
  3. В раскрывшемся перечне жмем левой клавишей мышки на кнопку «(новая книга)».
  4. После реализации всех действий жмем на «ОК».
  5. Аналогичные операции необходимо произвести с остальными листами табличного документа.

Объединение информации в один файл

Часто возникают такие ситуации, когда необходимо произвести объединение некоторых фрагментов информации в единый файл. Эта процедура выполняется достаточно легко при помощи инструментов табличного редактора. Самое главное – информация, расположенная в табличках, должна быть заранее отформатирована, чтобы в дальнейшем не тратить огромное количество времени на приведение общей таблички к нормальному внешнему виду. Подробная инструкция выглядит так:

  1. К примеру, у нас есть следующие данные, которые необходимо перенести в один файл. Процесс объединения будет правильно работать только при соблюдении нескольких определенных моментов. Рабочие листики, которые будут проходить процедуру консолидации, должны быть приведены к единому форматированию с идентичными заголовками и форматами информации. Ко всему прочему, объединяемая информация не должна содержать в себе незаполненных строчек и колонок.

kak-obedinit-fajly-excel-v-odin

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

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

  1. На следующем этапе мы передвигаемся в раздел, имеющий наименование «Данные». Найти его можно сверху, в основном меню табличного редактора. Здесь мы находим элемент, имеющий название «Консолидация», и жмем по нему левой клавишей мышки.

kak-obedinit-fajly-excel-v-odin

2
  1. В отобразившемся перечне жмем левой клавишей мышки по элементы «Сумма». Далее вводим координаты ячеек, которые мы планируем объединить.

kak-obedinit-fajly-excel-v-odin

3
  1. Аналогичные действия мы производим и с другой информацией, которую мы планируем объединить в один файл.
  2. После проведения всех необходимых действий жмем на «ОК», чтобы подтвердить внесенные изменения.

kak-obedinit-fajly-excel-v-odin

4

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

Объединение файлов при помощи VBA

Макросы, прописываемые в VBA, превосходно подходят для реализации процедуры объединения нескольких табличных документов в единый файл. Процедура не такая сложная, как кажется на первый взгляд. Главное – следовать пунктам подробной инструкции:

  1. Первоначально необходимо убедиться в том, что все необходимые табличные документы располагаются в одном месте персонального компьютера.
  2. На следующем этапе необходимо зайти в табличный редактор Эксель и создать в нем новую книгу, которая будет служить инструментом объединения остальных табличных документов.
  3. При помощи специальной комбинации горячих клавиш «Alt+F11» перемещаемся в «Visual Basic».

kak-obedinit-fajly-excel-v-odin

5
  1. Сначала нажимаем на «Вставить», а затем в появившемся перечне жмем левой клавишей мышки на элемент, имеющий наименование «Модуль».
  2. Теперь сюда необходимо написать следующий небольшой код:

 Sub GetSheets()

Path = «ваш путь»

Filename = Dir(Path & «*.xls»)

Do While Filename  «»

Workbooks.Open Filename:=Path & Filename, ReadOnly:=True

For Each Sheet In ActiveWorkbook.Sheets

Sheet.Copy After:=ThisWorkbook.Sheets(1)

Next Sheet

Workbooks(Filename).Close

Filename = Dir()

Loop

End Sub

  1. В переменную Path необходимо написать путь к тому месту персонального компьютера, в котором располагаются табличные документы для объединения.
  2. Производим сохранение табличного документа в формате «XLSM», чтобы активировать созданные макросы.
  3. Производим запуск макроса.
  4. Готово! Мы объединили все файлы, находящиеся в папке, в один табличный документ.

Заключение

Мы выяснили, что существует множество способов, позволяющих реализовать объединение нескольких файлов в один табличный документ. Использовать функцию под названием «Консолидация» целесообразно только в том случае, если в файлах содержится только числовая информация, так как функция не способна корректно работать с данными текстового формата. Самый эффективный способ, позволяющий качественно объединить табличный документы в один файл без потери информации, – это использование интегрированного языка программирования «Visual Basic» и активация специальных макросов. Однако каждый пользователь сможет сам подобрать более удобный для себя способ объединения табличных документов.

Оцените качество статьи. Нам важно ваше мнение:

Добавить это приложение в закладки

Нажмите Ctrl + D, чтобы добавить эту страницу в избранное, или Esc, чтобы отменить действие.

Отправьте ссылку для скачивания на

Отправьте нам свой отзыв

Ой! Произошла ошибка.

Недопустимый файл. Убедитесь, что загружается правильный файл.

Ошибка успешно зарегистрирована.


Вы успешно сообщили об ошибке. Вы получите уведомление по электронной почте, когда ошибка будет исправлена.

Нажмите эту ссылку, чтобы посетить форумы.

Немедленно удалите загруженные и обработанные файлы.

Вы уверены, что хотите удалить файлы?

Введите адрес

Используйте раскрывающийся список, чтобы выбрать (новая книга) . Это будет служить основной электронной таблицей. где мы отправляем все наши отдельные листы. Вы можете использовать поле « До листа:», чтобы указать порядок размещения листов.

Повторите этот процесс с остальными листами, которые вы хотите объединить. Затем сохраните новый мастер-документ.

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

Вот данные, которые я собираюсь использовать. Есть две вещи, которые очень важны, если этот процесс работает правильно; на консолидируемых листах необходимо использовать точно такой же макет. , с теми же заголовками и типами данных, и не может быть пустых строк или столбцов.

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

На этом новом листе перейдите на вкладку « Данные » и нажмите « Консолидировать» .

консолидировать данные Excel

Выберите « Сумма» в раскрывающемся списке, а затем используйте кнопку в поле « Ссылки» для доступа к электронной таблице, чтобы вы могли выбрать нужные данные.

консолидировать данные Excel

Сделайте это для всех наборов данных, которые вы хотите объединить. Вы даже можете рисовать из других книг, используя кнопку « Обзор» , также известную как « Выбрать» в версии Excel для Mac.

консолидировать данные Excel

Установите флажок Создать ссылки на исходные данные, если вы собираетесь продолжать обновлять данные на других листах и ​​хотите, чтобы этот лист отражал это. Вы также можете выбрать, какие ярлыки переносятся с помощью флажков, показанных выше. Я выбрал галочку в обоих полях, потому что хотел оба набора меток.

Наконец, нажмите ОК .

консолидировать данные Excel

Вы должны получить что-то вроде скриншота выше. К сожалению, этот процесс не подходит, если вы хотите объединить ячейки с текстом в них — он работает только с числовыми данными. В этой ситуации вам нужно будет использовать VBA

Объединение рабочих тетрадей с VBA

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

Во-первых, убедитесь, что все книги, которые вы хотите объединить, находятся в одной папке на вашем компьютере. Затем создайте новую электронную таблицу Excel, которая объединит их все.

Перейдите на вкладку Разработчик и нажмите Visual Basic .

объединить файлы Excel

Нажмите Вставить> Модуль и скопируйте и вставьте следующий код, взятый из руководства ExtendOffice :

Sub GetSheets() Path = "C:UsersBrad\MergingSheets" Filename = Dir(Path & "*.xls") Do While Filename <> "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub 

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

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

Смотри, прежде чем прыгать

Объединение листов и файлов в Excel довольно сложное и грязное. Этот факт должен осветить один из самых важных уроков о Microsoft Excel: всегда хорошо планировать заранее.

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

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

У вас есть совет для объединения различных наборов данных? Или вы ищете помощь с методами в этом руководстве? В любом случае, почему бы не присоединиться к беседе в разделе комментариев ниже?

Сборка данных со всех листов книги в одну таблицу

Постановка задачи

Допустим, что у нас есть книга с большим количеством листов, где на каждом листе находится таблица с данными по сделкам в этом городе:

Исходный файл

Давайте будем исходить из следующих соображений:

  • Структура и столбцов на всех листах одинаковая.
  • Количество строк на всех листах разное.
  • Листы могут в будущем добавляться или удаляться.

Наша задача — собрать все данные со всех листов в одну таблицу, чтобы потом с ней работать (фильтровать, сортировать, построить сводную и т.д.) Сделать это можно разными способами, но самыми удобными будут, пожалуй, Power Query и макросы.

Способ 1. Сборка данных с листов с помощью Power Query

Если вы ещё не сталкивались в своей работе с Power Query, то очень советую копнуть в этом направлении. Использование этой бесплатной и уже встроенной по умолчанию в Excel надстройки, способно полностью перевернуть весь ваш процесс сбора и анализа данных, упростив всё в разы. С задачей сбора данных с листов Power Query справляется весьма успешно.

Шаг 1. Подключаемся к файлу

Для начала, создадим новый пустой файл в Excel, куда и будут собираться данные.

Если у вас Excel 2010-2013 и вы установили Power Query как отдельную надстройку, то откройте вкладку Power Query, если у вас Excel 2016 или новее, то вкладку Данные (Data). Нажмите кнопку Получить данные / Создать запрос — Из файла — Книга Excel (Get Data / New Query — From file — From Excel) и укажите наш файл с исходными листами:

Указываем файл

В появившемся окне Навигатора (Navigator) выберите слева любой лист и нажмите в правом нижнем углу кнопку Преобразовать данные (Transform Data) или Изменить (Edit):

Выбираем любой лист

Должно появиться окно редактора запросов Power Query, где отобразятся данные с выбранного листа. Поскольку нам нужен, на самом деле, не один лист, а все, то удалим в правой панели все шаги, кроме первого шага Источник (Source) используя крестик слева от названия шага:

Удаляем лишние шаги

То, что останется после удаления шагов — это список всех объектов, которые Power Query «видит» во внешних файлах, а это:

  • листы (Sheet)
  • «умные таблицы» (Table)
  • именованные диапазоны (Defined Name)
  • области печати (Print Area), которые, по сути, являются одним из видов именованного диапазона

Шаг 2. Отбираем нужные листы

В исходном файле может быть много всего лишнего, что нам не требуется собирать: случайные ненужные листы, служебные именованные диапазоны, побочные умные таблицы и т.п. Очень важно отфильтровать этот «информационный мусор», т.к. в будущем из-за любого подобного объекта наш запорс будет, скорее всего, вылетать с ошибкой или некорректно собирать данные. Для решения этой задачи можно использовать несколько подходов.

Во-первых, легко можно отфильтровать нужные объекты по типу по столбцу Kind. Например, если вам нужны только листы:

Фильтруем листы

Во-вторых, если нам нужны только видимые листы, то дополнительно можно отфильтровать ещё по столбцу Hidden.

В-третьих, если вы точно знаете размер таблиц, которые вам нужны, то можно легко добавить к нашему списку вычисляемый столбец с формулой, выводящей количество столбцов или строк и использовать потом эти числа для отбора. Для этого выберем на вкладке Добавление столбца — Настраиваемый столбец (Add Column — Custom Column) и введём в открывшееся окно следующую формулу (с учётом регистра):

Подсчет числа столбцов

Для подсчёта количества строк можно использовать аналогичную функцию Table.RowCount. Получившийся столбец затем можно использовать для фильтрации «мусорных» таблиц.

В-четвёртых, можно извлечь с каждого листа содержимое любой ячейки (например, А1) и использовать его для отбора. Например, если там нет слова «Товар«, то это не наш лист. Для извлечения нужно будет также добавить вычисляемый столбец с такой конструкцией:

=[Data][Column1]{0}

Здесь:

  • [Data] — имя столбца, где в каждой ячейке лежат таблицы с содержимым каждого листа (убийственная формулировка для рядового пользователя Excel, да, я знаю)
  • [Column1] — имя столбца на листе, из которого мы хотим извлечь данные
  • {0} — номер строки (считая с нуля), откуда мы хотим взять данные

Извлекаем содержимое А1 с каждого листа

После фильтрации «мусора» все добавленные вспомогательные столбцы можно, конечно же, спокойно удалить, оставив только колонки Name и Data.

Шаг 3. Разворачиваем таблицы

Теперь развернём содержимое таблиц в одно целое, используя кнопку с двойными стрелками в заголовке столбца Data, отключив флажок Использовать исходное имя столбца как префикс (Use original column name as prefix):

Разворачиваем вложенные таблицы

После нажатия на ОК Power Query соберёт для нас все данные в одну мегатаблицу со всех отобранных листов нашего файла:

Собранные данные

Останется лишь «навести блеск», а именно:

  1. Поднять первую строку в шапку таблицы кнопкой Использовать первую строку в качестве заголовков (Use first row as headers) на вкладке Главная (Home).
  2. Переименовать первый столбец в Город двойным щелчком на заголовку.
  3. Удалить повторяющиеся шапки таблиц, попавшие в одну кучу вместе с данными, используя фильтр по столбцу Товар.

Всё. Осталось только дать нашему запросу подходящее имя (например, Сборка) в панели справа и выгрузить затем собранные данные обратно в Excel кнопкой Закрыть и загрузить на вкладке Главная (Home — Close & Load):

Собранные данные

В будущем, при любых изменениях в исходном файле достаточно будет лишь обновить наш запрос, щелкнув по собранной таблице правой кнопкой мыши и выбрав команду Обновить (Refresh) или такой же кнопкой на вкладке Данные (Data) или сочетанием клавиш Ctrl+Alt+F5.

Плюсы такого подхода:

  • Не нужно уметь программировать, всё делается быстро и почти без использования клавиатуры.
  • Последовательность столбцов на разных листах может быть различной — это не играет роли, столбцы правильно встанут друг под друга в итоговой сборке.
  • Можно быстро обновлять запрос при изменении исходных данных.

Минусы этого способа:

  • Собираются только значения, т.е. формулы с исходных листов не сохраняются.
  • Названия столбцов должны на всех листах совпадать с точностью до регистра.
  • Нельзя выбрать какой именно диапазон берётся с каждого листа — это определяется автоматически (берётся всё, что есть).
  • Для обновления нужен Excel 2016 или новее или установленная надстройка Power Query.

Способ 2. Сборка данных с листов макросом на VBA

Похожего результата можно добиться и с помощью более «классического» подохода — макросом на VBA. Для этого на вкладке Разработчик (Developer) нажмите кнпоку Visual Basic или воспользуйтесь сочетанием клавиш Alt+F11. В открывшемся окне добавьте новый модуль через меню Insert — Module и скопируйте туда текст вот такого макроса:

Sub CollectDataFromAllSheets()
    Dim ws As Worksheet
    
    Set wbCurrent = ActiveWorkbook
    Workbooks.Add
    Set wbReport = ActiveWorkbook
    
    'копируем на итоговый лист шапку таблицы из первого листа
    wbCurrent.Worksheets(1).Range("A1:D1").Copy Destination:=wbReport.Worksheets(1).Range("A1")
    
    'проходим в цикле по всем листам исходного файла
    For Each ws In wbCurrent.Worksheets
    
        'определяем номер последней строки на текущем листе и на листе сборки
        n = wbReport.Worksheets(1).Range("A1").CurrentRegion.Rows.Count
        
        'задаем исходный диапазон, который надо скопировать с каждого листа - любой вариант на выбор:
        Set rngData = ws.Range("A1:D5")            'фиксированный диапазон или
        Set rngData = ws.UsedRange                 'всё, что есть на листе или
        Set rngData = ws.Range("F5").CurrentRegion    'область, начиная от ячейки F5 или
        Set rngData = ws.Range("A2", ws.Range("A2").SpecialCells(xlCellTypeLastCell))    'от А2 и до конца листа
        
        'копируем исходный диапазон и вставляем в итоговую книгу со следующей строки
        rngData.Copy Destination:=wbReport.Worksheets(1).Cells(n + 1, 1)
        
    Next ws
End Sub

Запустить созданный макрос можно на вкладке Разработчик кнопкой Макросы (Developer — Macros) или с помощью сочетания клавиш Alt+F8. Макрос автоматически создаст новую книгу и скопирует туда нужные вам данные.

Плюсы такого подхода:

  • Формулы с исходных листов сохраняются в сборке.
  • Имена столбцов не играют роли.
  • Макрос будет работать в любой версии Excel.
  • Можно выбирать, что именно брать с каждого листа (конкретный фиксированный диапазон или весь лист).

Минусы этого способа:

  • Последовательность столбцов на всех листах должна быть одинаковой, т.к. происходит, по сути, тупое копирование таблиц друг-под-друга.
  • Защита от макросов должна быть отключена.
  • Быстрого обновления, как это было с Power Query, здесь, к сожалению, не будет. При изменении исходных данных придётся запустить макрос повторно.

Способ 3. Готовый макрос из надстройки PLEX

Если лень возиться с макросами или Power Query, то можно пойти по пути наименьшего сопротивления — использовать готовый макрос (кнопка Собрать) из моей надстройки PLEX для Excel. Это, может, и не спортивно, но зато эффективно:

Сборка данных с листов через PLEX

В общем, выбирайте любой удобный вам вариант и действуйте. Выбор — это всегда хорошо.

Ссылки по теме

  • Что такое Power Query и с чем его едят.
  • Как создавать свои макросы, использовать чужие и запускать их в своих файлах.
  • Сборка данных из нескольких файлов с помощью Power Query.

Объединение данных с нескольких листов

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке) .

Если данные, которые требуется проанализировать, представлены на нескольких листах или в нескольких книгах, их можно объединить на одном листе с помощью команды «Консолидация». Например, если есть отдельный лист расходов для каждого регионального представительства, с помощью консолидации можно создать на базе этих данных корпоративный лист расходов. Такой лист может содержать итоговые и средние данные по продажам, текущим уровням запасов и наиболее популярным продуктам в рамках всей организации.

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

Консолидация по расположению

Для консолидации по расположению диапазон данных на каждом из исходных листов должен иметь формат списка без пустых строк и столбцов.

Откройте каждый из исходных листов и убедитесь в том, что данные на них расположены одинаково.

На конечном листе щелкните верхнюю левую ячейку области, в которой требуется разместить консолидированные данные.

Примечание: Убедитесь, что справа и снизу достаточно свободных ячеек для консолидированных данных.

На вкладке Данные в группе Работа с данными нажмите кнопку Консолидация.

Выберите в раскрывающемся списке функцию, которую требуется использовать для консолидации данных.

Выделите на каждом листе нужные данные.

Путь к файлу вводится в поле Все ссылки.

После добавления данных из всех исходных листов и книг нажмите кнопку ОК.

Консолидация по категории

Для консолидации по категории диапазон данных на каждом из исходных листов должен иметь формат списка без пустых строк и столбцов. Кроме того, категории должны быть названы одинаково. Например, если один из столбцов называется Сред., а другой — Среднее, консолидация не просуммирует эти столбцы.

Откройте каждый из исходных листов.

На конечном листе щелкните верхнюю левую ячейку области, в которой требуется разместить консолидированные данные.

Примечание: Убедитесь, что справа и снизу достаточно свободных ячеек для консолидированных данных.

На вкладке Данные в группе Работа с данными нажмите кнопку Консолидация.

Выберите в раскрывающемся списке функцию, которую требуется использовать для консолидации данных.

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

Выделите на каждом листе нужные данные. Не забудьте включить в них ранее выбранные данные из верхней строки или левого столбца.

Путь к файлу вводится в поле Все ссылки.

После добавления данных из всех исходных листов и книг нажмите кнопку ОК.

Примечание: Любые названия, не совпадающие с названиями в других исходных областях, могут привести к появлению в консолидированных данных отдельных строк или столбцов.

Консолидация по расположению

Для консолидации по расположению диапазон данных на каждом из исходных листов должен иметь формат списка без пустых строк и столбцов.

Откройте каждый из исходных листов и убедитесь в том, что данные на них расположены одинаково.

На конечном листе щелкните верхнюю левую ячейку области, в которой требуется разместить консолидированные данные.

Примечание: Убедитесь, что справа и снизу достаточно свободных ячеек для консолидированных данных.

На вкладке Данные в разделе Сервис нажмите кнопку Консолидация.

Выберите в раскрывающемся списке функцию, которую требуется использовать для консолидации данных.

Выделите на каждом листе нужные данные и нажмите кнопку Добавить.

Путь к файлу вводится в поле Все ссылки.

После добавления данных из всех исходных листов и книг нажмите кнопку ОК.

Консолидация по категории

Для консолидации по категории диапазон данных на каждом из исходных листов должен иметь формат списка без пустых строк и столбцов. Кроме того, категории должны быть названы одинаково. Например, если один из столбцов называется Сред., а другой — Среднее, консолидация не просуммирует эти столбцы.

Откройте каждый из исходных листов.

На конечном листе щелкните верхнюю левую ячейку области, в которой требуется разместить консолидированные данные.

Примечание: Убедитесь, что справа и снизу достаточно свободных ячеек для консолидированных данных.

На вкладке Данные в разделе Сервис нажмите кнопку Консолидация.

Выберите в раскрывающемся списке функцию, которую требуется использовать для консолидации данных.

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

Выделите на каждом листе нужные данные. Не забудьте включить в них ранее выбранные данные из верхней строки или левого столбца. Затем нажмите кнопку Добавить.

Путь к файлу вводится в поле Все ссылки.

После добавления данных из всех исходных листов и книг нажмите кнопку ОК.

Примечание: Любые названия, не совпадающие с названиями в других исходных областях, могут привести к появлению в консолидированных данных отдельных строк или столбцов.

Объединить листы: собрать данные с нескольких листов на один сводный лист в секунды

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

С надстройкой «Объединить листы», вы сможете собрать данные на один сводный лист в считанные секунды:

  • Собрать данные листов из разных книг на одном листе
  • Собрать данные листов с одинаковым именем и объединить по имени вкладки
  • Объединить данные листов с идентичной структурой под одним заголовком
  • Сохранить форматирование в сводном листе результата

Добавить «Объединить листы» в Excel 2019, 2016, 2013, 2010

Подходит для: Microsoft Excel 2019 – 2010, desktop Office 365 (32-бит и 64-бит).

Как работать с надстройкой:

Как объединить данные из нескольких листов в один в один за 3 шага

С надстройкой «Объединить листы» вы можете собрать и объединить данные нескольких листов — и из разных книг — в один главный лист всего за 3 шага:

1. Нажмите кнопку «Объединить листы» на панели XLTools > Выберите тип операции:

2. Отметьте листы, которые нудно объединить. Дерево данных отображает все листы во всех открытых книгах.

3. Нажмите кнопку «Объединить» > Готово! Все данные скопированы на один главный сводный лист.

Как объединить данные нескольких листов на одном сводном листе

Предположим, у вас есть ряд листов, и каждый из них содержит отчёт о продажах по конкретной категории продуктов. Надстройка поможет вам скопировать все эти отдельные отчёты и объединить данные в один сводный лист.

  1. Нажмите кнопку «Объединить листы» > Выберите «Объединить данные нескольких листов на одном листе».
  2. Отметьте флажком «Таблицы с заголовками», если это так.
    Совет: так, данные будут объединены под единым заголовком. Это удобно, если структура листов, которые вы объединяете, единообразна, напр., если отчёты созданы по одному шаблону. Если заголовки не совпадают, каждый диапазон данных будет добавлен со своим заголовком.
  3. Выберите листы для объединения, установив соответствующие флажки в дереве данных.
  4. Нажмите кнопку «Объединить» > Готово, все данные из выбранных листов собраны на одном главном листе в новой книге.

Внимание: не забудьте сохранить эту сводную книгу на свой компьютер.

Как объединить данные из листов c одинаковым именем на одном сводном листе

Предположим, у вас есть ряд книг, и каждая из них содержит отчёт о региональных продажах. Каждый отчёт разбит на листы с данными по конкретным продуктам — таким образом, вкладки в региональных отчётах имеют одинаковые названия. Надстройка поможет вам скопировать данные по всем отчётам в один сводный лист.

  1. Нажмите кнопку «Объединить листы» > Выберите «Объединить данные листов с одинаковым именем на одном листе».
  2. Отметьте флажком «Таблицы с заголовками», если это так.
    Совет: так, данные будут объединены под единым заголовком. Это удобно, если структура листов, которые вы объединяете, единообразна, напр., если отчёты созданы по одному шаблону. Если заголовки не совпадают, каждый диапазон данных будет добавлен со своим заголовком.
  3. Выберите листы для объединения, установив соответствующие флажки в дереве данных.
    Совет: вместо поочерёдного объединения листов с одинаковым называнием по группам (одна именная группа за другой), вы можете выбрать их все сразу. Надстройка автоматически соберет данные по одинаковым названиям вкладок и вынесет их на соответствующие отдельные листы сводной книги.
  4. Нажмите кнопку «Объединить» > Готово, все данные выбранных листов с одинаковым именем собраны в новой сводной книге.

Внимание: не забудьте сохранить эту сводную книгу на свой компьютер.

Каким образом данные копируются на сводный лист

Объединение данных по сути означает извлечение и копирование данных из нескольких исходных листов на новый лист.

  • Данные копируются полностью — весь диапазон до последней использованной ячейки на исходном листе.
  • Скопированные диапазоны добавляются последовательно, один диапазон под последней строкой предыдущего диапазона.
  • Надстройка XLTools «Объединить листы» сохраняет форматирование ячеек и таблиц, ссылки на ячейки, функции и формулы, объединённые ячейки, т.д.
  • Исходные данные не подвергаются изменениям.

Как объединить несколько листов в одну книгу

Вы можете объединить несколько листов в одну книгу с помощью надстройки XLTools Органайзер книг. Она помогает копировать и управлять множеством листов одновременно.

Появились вопросы или предложения? Оставьте комментарий ниже.

8 Комментариев к Объединить листы: собрать данные с нескольких листов на один сводный лист в секунды

Нужно было объединить таким образом несколько больших файлов из регионов. Каждый во что горазд — был единый образец — но всем нужно обязательно что-то от себя добавить, например у нескольких файлов пустые столбцы уходили до XYZ. Данная функция объединяла листы целиком — вместе с пустыми ячейками — в итоге комп начинал громко пыхтеть и тужиться а потом надолго зависал. Вручныю скопировать вставить быстрее бы получилось (

Руслан, добрый день! Спасибо, что написали. Надстройка сейчас хорошо объединяет однотипные листы. Но идеально подготовленные данные встречаются не часто, особенно, если участвует много людей. Так что мы думаем, как улучшить надстройку. Для вашего случая, думаю, нужно предварительное удаление пустых строк-столбцов. Мы поставим это в план на следующие релизы. Спасибо!

Здравствуйте, как производить объединение двух и более листов, если в каждой таблицы совпадение по наименованию идет по одному. Например у меня есть лист «Стран» и есть лист «Города» у них сопадение идет только по полю «ID страна», аналогично по товарам: в одном листе данные «категории товаров», а в другом где «продукты» у них объединение нужно сделать именно по «ID категория»

Карашаш, добрый день!
Надстройка «Объединение листов» сейчас больше рассчитана на объединение отнотипных по структуре листов. В Вашем случае лучше подойдет надстройка «SQL запросы». Она поможет объединить таблицы по ключевому полю.

При объединении нескольких листов в один удаляются ли дубликаты данных (при их наличии)?

Дмитрий, добрый день! При объединении листов создается новая сводная книга, куда копируются данные каждого листа (все строки первого, ниже все строки второго, т.д.). Поэтому нет, дубликаты не удаляются и в исходные данные изменений не вносится.

Спасибо! Отличная надстройка. Сколько стоит после пробного периода?

Евгения, спасибо! Надстройка «Объединить листы» входит в любой из трех пакетов лицензий — Базовая, PRO и GURU. Выбирайте, какой пакет вам больше подойдет.

Обьединение нескольких листов данных в один макросом

Здравствуйте, подскажите пожалуйста.
У меня есть 30 листов с данными
Мне нужно объединить их в один лист. Как мне записать макрос?
Я копирую данные из первого листа выделяю до последней ячейки с данными, вставляю в общий лист, далее перехожу на новый лист, так же копирую данные, выделяю до последней ячейки. Но у меня кол-во ячеек в каждом листе может меняться, как правильно прописать код?

Создание файлов Word на основе шаблона и обьединение их в один файл макросом из Excel
Макрос в Excel-е создает множество файлов Word на основе шаблона (больше 100), которые в дальнейшем.

Сборка данных с нескольких листов в один, копируя только значения
Добрый день! Помогите пожалуйста с макросом: Необходимо собрать данные с нескольких листов.

Собрать в один лист содержимое конкретной строки из нескольких листов одной книги
Добрый вечер Всем! Уважаемые господа, подскажите пожалуйста . Что и На Что нужно поменять в.

Объединение данных с нескольких листов по ключу
Добрый день. Имею 2 таблицы в книге excel, в которых столбцы с ключами не повторяются. И имеют вид.

Выборка данных из нескольких листов в отдельный файл
Здравствуйте, прошу помочь со следующим макросом: есть довольно большая база данных о предприятиях.

Как объединить файлы Excel? Объединение листов в одну книгу

На одной из страниц этого сайта публиковалась небольшая статья о том, как сохранить листы активной рабочей книги Excel в отдельные файлы. Настало время рассмотреть обратный вопрос о том, как собрать информацию из разных файлов вообще и как объединить несколько файлов в одну книгу в частности. Сделать это можно легко и быстро, но об этом чуть позже.

Одновременная работа пользователей в одной книге

В ряде случаев приходится заниматься сбором либо обработкой информации одновременно нескольким пользователям. Существуют разные методы позволяющие не передавать электронную таблицу последовательно по цепочке от одного пользователя другому, а вести работу в ней одновременно, либо параллельно. Одним из таких методов является предоставление общего доступа к документу, когда пользователи могут вести одновременную работу с данными этого документа.

Еще одним способом ускорить процесс сбора или обработки данных является разделение рабочей книги на отдельные листы с последующим их объединением после пользовательской обработки. О том как можно разделить рабочую книгу на отдельные листы и сохранить эти листы отдельными файлами мы уже рассказывали. Сейчас остановимся подробнее на том, как объединить их обратно.

Объединение листов разных рабочих книг в одну

Объединение разных файлов в один либо определенных листов в одну книгу имеет разнообразные решения. Это и стандартный вариант с копированием и вставкой листов в нужную книгу, и использование макросов, и установка дополнительных программ, специализирующихся на объединении файлов, таких например, как MergeExcel. У каждого из этих способов есть свои плюсы и свои минусы. Со своей стороны хочу предложить еще один способ решения задачи по объединению листов из разных книг в одну. Не разбираясь с программным кодом макросов и не устанавливая дополнительных программ, можно быстро расширить Excel новыми возможностями, используя дополнение, называемое надстройкой.

Надстройка по объединению различных файлов в один создана на основе макроса VBA, но выгодно отличается от него удобством в использовании. Надстройка легко подключается и запускается одним нажатием кнопки, выведенной прямо в главное меню, после чего появляется диалоговое окно. Далее все интуитивно понятно, выбираются файлы, выбираются листы этих файлов, выбираются дополнительные параметры объединения и нажимается кнопка «Пуск».

1. Одним кликом мыши вызывать диалоговое окно макроса прямо из панели инструментов Excel;

2. выбирать файлы для объединения, а также редактировать список выбранных файлов;

3. объединять все листы выбранных файлов в одну рабочую книгу;

4. объединять в рабочую книгу только непустые листы выбранных файлов;

5. собирать в итоговую книгу листы с заданным именем (можно использовать маску при помощи спец. символов совпадения);

6. собирать в одну книгу листы выбранных файлов с определенным номером (индексом), либо диапазоном номеров;

7. собирать листы с определенным значением в заданном диапазоне ячеек;

8. задавать дополнительные параметры для объединения, такие как:

а) присвоение листам имен объединяемых файлов;

б) удаление из книги, в которой происходит объединение данных, собственных листов, которые были в этой книге изначально;

в) замена формул значениями (результатами вычислений).

При необходимости имена листов сформированной рабочей книги можно быстро изменить при помощи надстройки для автоматического переименования листов.

Объединение диапазонов значений из разных листов разных рабочих книг на отдельном листе

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

Как собрать данные с нескольких листов или книг?

Очень часто бывает необходимо собрать данные с нескольких листов одной книги или даже с листов нескольких книг. Например, каждую неделю мы получаем некие отчеты от отделов, которые необходимо собрать в одну общую таблицу для построения сводной таблицы. Или это могут быть некие книги прайсов по товарам от разных поставщиком, который опять же надо сначала объединить, а потом уже анализировать. Вручную делать это довольно муторно. И то, муторно это только для первых 20-ти листов/файлов, потом становится просто тошно. Поэтому решил поделиться решением, которое поможет собрать данные со всех листов книги, со всех листов всех указанных книг или только с указанных листов:

‘————————————————————————————— ‘ Module : mConsolidated ‘ DateTime : 02.02.2010 17:06 ‘ Author : The_Prist(Щербаков Дмитрий) ‘ Purpose : http://www.excel-vba.ru/chto-umeet-excel/kak-sobrat-dannye-s-neskolkix-listov-ili-knig/ ‘ Процедура сбора данных с нескольки листов/книг ‘————————————————————————————— Option Explicit Sub Consolidated_Range_of_Books_and_Sheets() Dim iBeginRange As Range, rCopy As Range, lCalc As Long, lCol As Long Dim oAwb As String, sCopyAddress As String, sSheetName As String Dim lLastrow As Long, lLastRowMyBook As Long, li As Long, iLastColumn As Integer Dim wsSh As Worksheet, wsDataSheet As Worksheet, bPolyBooks As Boolean, avFiles Dim wbAct As Workbook Dim bPasteValues As Boolean On Error Resume Next ‘Выбираем диапазон выборки с книг Set iBeginRange = Application.InputBox(«Выберите диапазон сбора данных.» & vbCrLf & _ «1. При выборе только одной ячейки данные будут собраны со всех листов начиная с этой ячейки. » & _ vbCrLf & «2. При выделении нескольких ячеек данные будут собраны только с указанного диапазона всех листов.», Type:=8) ‘для указания диапазона без диалогового окна: ‘Set iBeginRange = Range(«A1:A10») ‘диапазон указывается нужный ‘Если диапазон не выбран — завершаем процедуру If iBeginRange Is Nothing Then Exit Sub ‘Указываем имя листа ‘Допустимо указывать в имени листа символы подставки ? и *. ‘Если указать только * то данные будут собираться со всех листов sSheetName = InputBox(«Введите имя листа, с которого собирать данные(если не указан, то данные собираются со всех листов)», «Параметр») ‘Если имя листа не указано — данные будут собраны со вех листов If sSheetName = «» Then sSheetName = «*» On Error GoTo 0 ‘Запрос — вставлять на результирующий лист все данные ‘или только значения ячеек (без формул и форматов) bPasteValues = (MsgBox(«Вставлять только значения?», vbQuestion + vbYesNo, «Excel-VBA») = vbYes) ‘Запрос сбора данных с книг(если Нет — то сбор идет с активной книги) If MsgBox(«Собрать данные с нескольких книг?», vbInformation + vbYesNo, «Excel-VBA») = vbYes Then avFiles = Application.GetOpenFilename(«Excel files(*.xls*),*.xls*», , «Выбор файлов», , True) If VarType(avFiles) = vbBoolean Then Exit Sub bPolyBooks = True lCol = 1 Else avFiles = Array(ThisWorkbook.FullName) End If ‘отключаем обновление экрана, автопересчет формул и отслеживание событий ‘для скорости выполнения кода и для избежания ошибок, если в книгах есть иные коды With Application lCalc = .Calculation .ScreenUpdating = False: .EnableEvents = False: .Calculation = xlManual End With ‘создаем новый лист в книге для сбора Set wsDataSheet = ActiveWorkbook.Sheets.Add(After:=Sheets(Sheets.Count)) ‘если нужно сделать сбор данных на новый лист книги с кодом ‘Set wsDataSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) ‘цикл по книгам For li = LBound(avFiles) To UBound(avFiles) If bPolyBooks Then Set wbAct = Workbooks.Open(Filename:=avFiles(li)) Else Set wbAct = ThisWorkbook End If oAwb = wbAct.Name ‘цикл по листам For Each wsSh In wbAct.Worksheets If wsSh.Name Like sSheetName Then ‘Если имя листа совпадает с именем листа, в который собираем данные ‘и сбор идет только с активной книги — то переходим к следующему листу If wsSh.Name = wsDataSheet.Name And bPolyBooks = False Then GoTo NEXT_ With wsSh Select Case iBeginRange.Count Case 1 ‘собираем данные начиная с указанной ячейки и до конца данных lLastrow = .Cells(1, 1).SpecialCells(xlLastCell).Row iLastColumn = .Cells.SpecialCells(xlLastCell).Column sCopyAddress = .Range(.Cells(iBeginRange.Row, iBeginRange.Column), .Cells(lLastrow, iLastColumn)).Address Case Else ‘собираем данные с фиксированного диапазона sCopyAddress = iBeginRange.Address End Select lLastRowMyBook = wsDataSheet.Cells.SpecialCells(xlLastCell).Row + 1 ‘определяем для копирования диапазон только заполненных данных на листе Set rCopy = Intersect(.Range(sCopyAddress).Parent.UsedRange, .Range(sCopyAddress)) ‘вставляем имя книги, с которой собраны данные If lCol Then wsDataSheet.Cells(lLastRowMyBook, 1).Resize(rCopy.Rows.Count).Value = oAwb ‘если вставляем только значения и форматы ячеек If bPasteValues Then rCopy.Copy wsDataSheet.Cells(lLastRowMyBook, 1).Offset(, lCol).PasteSpecial xlPasteValues wsDataSheet.Cells(lLastRowMyBook, 1).Offset(, lCol).PasteSpecial xlPasteFormats Else ‘если вставляем все данные ячеек(значения, формулы, форматы и т.д.) rCopy.Copy wsDataSheet.Cells(lLastRowMyBook, 1).Offset(, lCol) End If End With End If NEXT_: Next wsSh If bPolyBooks Then wbAct.Close False Next li With Application .ScreenUpdating = True: .EnableEvents = True: .Calculation = lCalc End With End Sub

Приведенный выше код необходимо вставить в стандартный модуль(Что такое модуль? Какие бывают модули?). Выполнить его можно будет из этой книги нажатием клавиш Alt+F8. В появившемся окне выбрать Consolidated_Range_of_Books_and_Sheets и нажать Выполнить. Так же можно создать на листе кнопку и назначить ей данный макрос. Так же, если впервые работаете с макросами настоятельно рекомендую прочитать статью: Что такое макрос и где его искать?, а так же Почему не работает макрос?

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

  • Диапазон сбора данных — Если в окне выбора диапазона выбрать только одну ячейку, то данные будут собраны со всех листов книги/книг, начиная с этой ячейки и до последней ячейки листа.
    Если выбрать несколько ячеек, данные будут собраны только с указанного диапазона всех листов книги/книг. Допускается указать несвязанный(рваный) диапазон(например, только три столбца: A:A , D:D , F:F ). Сделать это можно, выделив нужный диапазон с зажатой клавишей Ctrl
  • Имя листа — Необязателен для указания. Если не указан — данные будут собраны со всех листов. Указать можно как точное соответствие имени листа, так и с частичным соответствием. Например, если в книгах для сбора данных необходимо собрать данные только с листа «Январь», то следует так и указать — «Январь». Если требуется собрать данные только с листов, начинающихся с «Продажи»(«Продажи ЮГ», «Продажи НН», «Продажи Запад» и т.д.), то следует применить символ подстановки звездочку — «Продажи*». Если надо собрать с листов, содержащих в имени «продажи»(«Итоговые продажи ЮГ», «Продажи НН», «Сезонные продажи» и т.д.), то указываем «*продажи*». Если надо собрать только с листа «Сезонные продажи», но известно, что вместо пробела может быть нижнее подчеркивание или тире(«Сезонные продажи», «Сезонные_продажи», «Сезонные-продажи») или иной символ, то можно также применить звездочку — «Сезонные*продажи». Но если среди листов могут встречаться и такие как «Сезонные разовые продажи», «Сезонные корпоративные продажи» и т.п., но информацию с них собирать не надо, то можно применить вопросительный знак — «Сезонные?продажи». Вопросительный знак заменяет любой один символ, звездочка — любое количество любых символов.
  • Далее появится запрос: Вставлять только значения? — если выбрать Да, то в результирующий лист с листов будут вставлены исключительно значения ячеек (без формул), но при этом сохранятся их форматы(формат чисел, цвет заливки, цвет шрифта, границы и т.п.). Может пригодится, если на листах для сбора записаны формулы, ссылающиеся на другие листы, книги, диапазоны. При обычном копировании может случиться так, что формула выдаст ошибку, т.к. в книге для вставки нет таких листов и диапазонов или данные расположены иначе. Если выбрать Нет, то все ячейки с листов на результирующий будут копироваться в точности как в исходных листах.
  • И последний запрос: Собрать данные с нескольких книг? — если выбрать Да, то появится диалоговое окно выбора файлов. Надо указать все файлы, данные с которых необходимо собрать. Если выбрать Нет, то данные будут собираться с листов только активной книги.

Данные будут собраны на новый лист книги с макросом. Если данные собирались с нескольких книг, то в первый столбец будут занесены имена книг, с которых собраны данные.

Если после сбора данных обнаружили, что после каждого файла/листа много пустых строк, то следует найти в коде строку:

lLastrow = .Cells(1, 1).SpecialCells(xlLastCell).Row

Понравилась статья? Поделить с друзьями:
  • Как в excel неизменной ячейку формулу
  • Как в excel неизвестное число
  • Как в excel недостаточно ресурсов для вывода на экран
  • Как в excel не учитывать ячейку в формуле
  • Как в excel не убирать нули