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

Использование нескольких таблиц для создания сводной таблицы

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

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

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

Ниже приведены три основных шага для добавления нескольких таблиц в список полей сводной таблицы.

Шаг 1. Импорт связанных таблиц из базы данных

Импортируйте их из реляционной базы данных, например Microsoft SQL Server, Oracle или Access. Вы можете импортировать несколько таблиц одновременно:

  • Подключение к базе SQL Server данных 

  • Подключение к базе данных Oracle 

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

    Примечание     Не поддерживается в Excel для Mac.

Шаг 2. Добавление полей в сводную таблицу

Обратите внимание: список полей содержит несколько таблиц.

Список полей сводной таблицы

Это все таблицы, выбранные вами во время импорта. Каждую таблицу можно развернуть и свернуть для просмотра ее полей. Так как таблицы связаны, вы можете создать сводную таблицу, перетянув поля из любой таблицы в область ЗНАЧЕНИЯ, СТРОКИ или СТОЛБЦЫ. Вы можете:

  • Перетащите числовые поля в область ЗНАЧЕНИЯ. Например, если используется образец базы данных Adventure Works, вы можете перетащить поле «ОбъемПродаж» из таблицы «ФактПродажиЧерезИнтернет».

  • Перетащите поля даты или территории в область СТРОКИ или СТОЛБЦЫ, чтобы проанализировать объем продаж по дате или территории сбыта.

Шаг 3. Создание связей при необходимости

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

Кнопка "Создать", отображаемая при необходимости создать связь

Примечание    Модели данных не поддерживаются в Excel для Mac.

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

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

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

  1. Щелкните любую ячейку на листе.

  2. Выберите Вставка и щелкните стрелку вниз элемента Сводная таблица.

    Раскрывающийся список вставки сводной таблицы с параметром "Из Power BI".

  3. Выберите Из внешнего источника данных.

    Сводная таблица из внешнего источника

  4. Нажмите Выбрать подключение.

  5. На вкладке Таблицы в разделе Модель данных этой книги выберите Таблицы в модели данных книги.

    Таблицы в модели данных

  6. Нажмите кнопку Открыть, а затем — ОК, чтобы отобразить список полей, содержащий все таблицы в модели.

См. также

  • Создание модели данных в Excel

  • Получение данных с помощью надстройки Power Pivot

  • Упорядочение полей сводной таблицы с помощью списка полей

  • Создание сводной таблицы для анализа данных на листе

  • Создание сводной таблицы для анализа внешних данных

  • Создание сводной таблицы, подключенной к наборам данных Power BI

  • Изменение диапазона исходных данных для сводной таблицы

  • Обновление данных в сводной таблице

  • Удаление сводной таблицы

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

Если вы ещё не знакомы со сводными таблицами, то начните с этой статьи.

Проблема

Бывает так, что анализируемые данные попадают к нам в виде отдельных таблиц, которые, тем не менее, нужно связать. Это легко может сделать MS Access, а в Excel для этого приходилось всегда использовать формулы типа ВПР (VLOOKUP). Однако, начиная с Excel 2013, у нас появилась возможность при построении сводной таблицы в качестве источника использовать несколько таблиц, связанных между собой по ключевым полям.

Пример

В нашем примере мы располагаем 4-мя таблицами: Заказы, Строки заказов, Товары, Клиенты.

Таблица заказов:

Таблица Строк заказов:

Таблица Товаров

Таблица Клиентов

Исходные таблицы оформлены в виде умных таблиц: Orders, OrderLines, Goods и Clients.

Вполне очевидно, что таблицы Orders и OrderLines могут быть связаны по полю ID_Заказа, таблицы Orders и Clients — по полю ID_клиента, таблицы OrderLines и Goods — по полю ID_товара.

Скачать пример

Создание модели данных

Создадим сводную таблицу на основе любой из имеющихся таблиц.

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

  2. В появившейся панеле Поля сводной таблицы вы видите надпись ДРУГИЕ ТАБЛИЦЫ…

  3. Нажмём её. Появится такой вопрос:

  4. Отвечаем Да и видим, что в список полей добавились все наши таблицы:

  5. Если вы начнёте выбирать поля, то через некоторое время в списке полей появится кнопка СОЗДАТЬ…

  6. Нажмём её и создадим связи между нашими таблицами. Так создаётся связь между таблицей Orders и OrderLines. Обратите внимание, что Excel умеет создавать связь типа «один к одному» или «один ко многим«. Причём первой надо указывать таблицу, где «много», в противном случае Excel ругается и предлагает поменять их местами.

  7. Аналогично создаём другие связи.


  8. В диалоговое окно Управление связями можно попасть через ленту АНАЛИЗ команда Отношения

  9. Чтобы видеть больше полей на панеле Поля сводной таблицы, можно через кнопку Сервис (в виде шестерёнки) выбрать это представление:

  10. Результат будет таким:

  11. В результате все наши таблицы теперь связаны и вы можете сформировать, к примеру, такой отчёт:

Просто и удобно!

Читайте также:

  • Введение в сводные таблицы

  • Автоматизация форматирования сводных таблиц

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

Можно сформировать новые итоги по исходным параметрам, поменяв строки и столбцы местами. Можно произвести фильтрацию данных, показав разные элементы. А также наглядно детализировать область.

Сводная таблица в Excel

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

Отчет о продажах по филиалам.

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

Самое рациональное решение – это создание сводной таблицы в Excel:

  1. Выделяем ячейку А1, чтобы Excel знал, с какой информацией придется работать.
  2. В меню «Вставка» выбираем «Сводная таблица».
  3. Опция сводная таблица.

  4. Откроется меню «Создание сводной таблицы», где выбираем диапазон и указываем место. Так как мы установили курсор в ячейку с данными, поле диапазона заполнится автоматически. Если курсор стоит в пустой ячейке, необходимо прописать диапазон вручную. Сводную таблицу можно сделать на этом же листе или на другом. Если мы хотим, чтобы сводные данные были на существующей странице, не забывайте указывать для них место. На странице появляется следующая форма:
  5. Ссылка на диапазон листа.
    Форма сводной таблицы.

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

Просто, быстро и качественно.

Важные нюансы:

  • Первая строка заданного для сведения данных диапазона должна быть заполнена.
  • В базовой табличке каждый столбец должен иметь свой заголовок – проще настроить сводный отчет.
  • В Excel в качестве источника информации можно использовать таблицы Access, SQL Server и др.



Как сделать сводную таблицу из нескольких таблиц

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

Порядок создания сводной таблицы из нескольких листов такой же.

Создадим отчет с помощью мастера сводных таблиц:

Пример отчета.

  1. Вызываем меню «Мастер сводных таблиц и диаграмм». Для этого щелкаем кнопку настройки панели быстрого доступа и нажимаем «Другие команды». Здесь на вкладке «Настройка» находим «Мастер сводных таблиц». Добавляем инструмент в панель быстрого доступа. После добавления:
  2. Другие команды.
    Настройка мастера.
    Инструмент в панели быстрого доступа.

  3. Ставим курсор на первую табличку и нажимаем инструмент «Мастера». В открывшемся окне отмечаем, что создать таблицу хотим в «нескольких диапазонах консолидации». То есть нам нужно объединить несколько мест с информацией. Вид отчета – «сводная таблица». «Далее».
  4. Окно мастера шаг 1 из 3.

  5. Следующий этап – «создать поля». «Далее».
  6. Окно мастера шаг 2 из 3.

  7. Прописываем диапазон данных, по которым будем формировать сводный отчет. Выделяем первый диапазон вместе с шапкой – «добавить». Второй диапазон вместе с названием столбцов – снова «добавить».
  8. Добавляем диапазоны нескольких листов и таблиц.

  9. Теперь в списке выбираем первый диапазон. Ставим птичку у единицы. Это первое поле сводного отчета. Даем ему имя – «Магазин 1». Выделяем второй диапазон данных – ставим птичку у цифры «2». Название поля – «Магазин 2». Нажимаем «Далее».
  10. Настройка диапазонов.

  11. Выбираем, где расположить сводную таблицу. На существующем листе или новом. Лучше выбрать новый лист, чтобы не было наложений и смещений. У нас получилось так:
  12. Отчет по нескольким таблицам.

Как видите всего в несколько кликов можно создавать сложные отчеты из нескольких листов или таблиц разного объема информации.

Как работать со сводными таблицами в Excel

Начнем с простейшего: добавления и удаления столбцов. Для примера рассмотрим сводную табличку продаж по разным отделам (см. выше).

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

Добавим в сводную таблицу еще одно поле для отчета. Для этого установим галочку напротив «Даты» (или напротив «Товара»). Отчет сразу меняется – появляется динамика продаж по дням в каждом отделе.

Редактирование отчета сводной таблицы.

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

Результат после редактирования отчета.

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

Настройка отчета по наименованию товаров.

А вот что получится, если мы уберем «дату» и добавим «отдел»:

Настройка отчета по отделам без даты.

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

После перестановки полей в отчете.

Чтобы название строки сделать названием столбца, выбираем это название, щелкаем по всплывающему меню. Нажимаем «переместить в название столбцов». Таким способом мы переместили дату в столбцы.

Перемещение столбцов в отчете.

Поле «Отдел» мы проставили перед наименованиями товаров. Воспользовавшись разделом меню «переместить в начало».

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

Развернутый детальный отчет.

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

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

Параметры отчета.

Проверка правильности выставленных коммунальных счетов

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

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

Для примера мы сделали сводную табличку тарифов для Москвы:

Тарифы коммунальных платежей.

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

Первый столбец = первому столбцу из сводной таблицы. Второй – формула для расчета вида:

= тариф * количество человек / показания счетчика / площадь

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

Сводная таблица тарифов по коммунальным платежам.

Наши формулы ссылаются на лист, где расположена сводная таблица с тарифами.

Скачать все примеры сводной таблицы

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

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

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

  • таблица с фактическими данными разбита по месяцам и отделам
  • таблица с планами разбита только по отделам (план на год)

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

По умолчанию сводную таблицу можно создать только из одной исходной таблицы.

Чтобы включить в сводную таблицу данные из нескольких таблиц, можно, например, собирать данные из всех таблиц при помощи функций СУММЕСЛИМН, ВПР и т.д. Но это не всегда удобно и может значительно “подвесить” excel.

Есть более профессиональный способ собрать данные в сводную таблицу из нескольких исходных — при помощи модели данных

Если кого-то вдруг напугали незнакомые слова “модель данных”, сразу скажу — Power Pivot мы использовать не будем.

Итак, две исходные таблицы представлены на картинке. Обратите внимание, что обе таблицы представлены в виде “умных” таблиц. Таблицам присвоены имена “Факт” и “Бюджет”.

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

Нужно сделать сводную таблицу со следующими столбцами: Отдел, Фактическая сумма сделок, Плановая сумма сделок, Процент выполнения плана.

Шаг 1. Создаем сводную таблицу из первой таблицы (Факт)

Встаем на любую ячейку первой таблицы (всю таблицу можно не выделять, т.к.это “умная” таблица) и переходим в меню ВставкаСводная таблица.

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

Далее выбираем переключатель Новый лист и — внимание! —  обязательно устанавливаем галочку Добавить эти данные в модель данных.

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

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

Шаг 2. Добавляем вторую таблицу в созданную сводную

Чтобы добавить вторую таблицу (Бюджет) в уже созданную сводную таблицу, ничего делать не нужно. Достаточно перейти на листе созданной сводной таблицы в окне Поля сводной таблицы на вкладку Все (по умолчанию открыта вкладка Активная).

Как видите, обе таблицы уже находятся в модели данных.

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

Шаг 3. Создадим общую сводную таблицу из двух таблиц

Создаем сводную таблицы как обычно. 

  1. в блок Строки перетягиваем поле Отдел из таблицы Бюджет. Здесь важно, чтобы поле отдел выбрать из таблицы Бюджет, а не Факт, т.к. в данном случае именно в таблице Бюджет содержатся уникальные значения отделов.
  2. в блок Значения — поле Фактическая сумма сделок из таблицы Факт и поле План годовой из таблицы План.

Сводная таблица из двух таблиц готова.

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

Осталось добавить столбец, в котором посчитаем выполнение бюджетного плана. 

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

Шаг 4. Создадим меру для расчета выполнения планового бюджета

В окне Поля сводной таблицы щелкнем правой кнопкой мыши на таблице Бюджет и выберем Добавить меру

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

В окне Мера зададим имя меры (Выполнение) и далее, установив курсор в поле Формула, введем значок верхнего апострофа

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

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

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

Добавим созданную меру Выполнение в поле Значения и изменим для него формат на Процентный.

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

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

Статья на моем канале Яндекс.Дзен

Сообщество ВКонтакте

Вам может быть интересно:

Сводная таблица по нескольким диапазонам данных

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

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

pivot_multi_sheets1.gif

Прежде, чем начать давайте уточним пару моментов. Априори я полагаю, что в наших данных выполняются следующие условия:

  • Таблицы могут иметь любое количество строк с любыми данными, но обязательно — одинаковую шапку.
  • На листах с исходными таблицами не должно быть лишних данных. Один лист — одна таблица. Для контроля советую использовать сочетание клавиш Ctrl+End, которое перемещает вас на последнюю использованную ячейку листа. В идеале — это должна быть последняя ячейка таблицы с данными. Если при нажатии на Ctrl+End выделяется какая-либо пустая ячейка правее или ниже таблицы — удалите после таблицы эти пустые столбцы справа или строки снизу и сохраните файл.

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

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

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

Затем на вкладке Данные (если у вас Excel 2016 или новее) или на вкладке Power Query (если у вас Excel 2010-2013) выберем команду Создать запрос — Из файла — Excel (Get Data — From file — Excel) и укажем исходный файл с таблицами, которые надо собрать:

Запрос к файлу Excel

В появившемся окне выберем любой лист (не принципиально какой именно) и внизу жмем кнопку Изменить (Edit):

Выбираем лист

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

Удаляем все шаги кроме Источник

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

Список листов

Удалим все столбцы, кроме колонки Data, щелкнув по заголовку столбца правой кнопкой мыши и выбрав команду Удалить другие столбцы (Remove other columns):

Удаляем лишние столбцы

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

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

Если вы всё сделали правильно, то на этом моменте должны увидеть содержимое всех таблиц, собранных друг под другом:

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

Осталось поднять первую строку в шапку таблицы кнопкой Использовать первую строку в качестве заголовков (Use first row as headers) на вкладке Главная (Home)
и удалить попавшие в данные повторяющиеся шапки таблиц с помощью фильтра:

Удаляем повторяющиеся шапки

Сохраним всё проделанное с помощью команды Закрыть и загрузить — Закрыть и загрузить в… (Close & Load — Close & Load to…) на вкладке Главная (Home), а в открывшемся окне выберем опцию Только подключение (Connection Only):

Создаем подключение

Всё. Осталось только построить сводную. Для этого идём на вкладку Вставка — Сводная таблица (Insert — Pivot Table), выбирыем опцию Использовать внешний источник данных (Use external data source), а затем, нажав кнопку Выбрать подключение, наш запрос. Дальнейшее создание и настройка сводной происходит совершенно стандартным образом путем перетаскивания нужных нам полей в области строк, столбцов и значений:

Результат

Если в будущем изменятся исходные данные или добавится еще несколько листов-магазинов, то достаточно будет обновить запрос и нашу сводную с помощью команды Обновить все на вкладке Данные (Data — Refresh All).

Способ 2. Объединяем таблицы SQL-командой UNION в макросе

Еще одно решение нашей задачи представлено вот таким макросом, который создает набор данных (cache) для сводной таблицы, используя команду UNION языка запросов SQL. Эта команда объединяет таблицы со всех указанных в массиве SheetNames листов книги в единую таблицу данных. То есть вместо физического копирования-вставки диапазонов с разных листов на один мы делаем то же самое в оперативной памяти компьютера. Потом макрос добавляет новый лист с заданным именем (переменная ResultSheetName) и создает на нем полноценную(!) сводную на основе собранного кэша.

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

Sub New_Multi_Table_Pivot()
    Dim i As Long
    Dim arSQL() As String
    Dim objPivotCache As PivotCache
    Dim objRS As Object
    Dim ResultSheetName As String
    Dim SheetsNames As Variant

    'имя листа, куда будет выводиться результирующая сводная
    ResultSheetName = "Сводная"
    'массив имен листов с исходными таблицами
    SheetsNames = Array("Альфа", "Бета", "Гамма", "Дельта")

    'формируем кэш по таблицам с листов из SheetsNames
    With ActiveWorkbook
        ReDim arSQL(1 To (UBound(SheetsNames) + 1))
        For i = LBound(SheetsNames) To UBound(SheetsNames)
            arSQL(i + 1) = "SELECT * FROM [" & SheetsNames(i) & "$]"
        Next i
        Set objRS = CreateObject("ADODB.Recordset")
        objRS.Open Join$(arSQL, " UNION ALL "), _
                   Join$(Array("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=", _
                               .FullName, ";Extended Properties=""Excel 8.0;"""), vbNullString)
    End With

    'создаем заново лист для вывода результирующей сводной таблицы
    On Error Resume Next
    Application.DisplayAlerts = False
    Worksheets(ResultSheetName).Delete
    Set wsPivot = Worksheets.Add
    wsPivot.Name = ResultSheetName

    'выводим на этот лист сводную по сформированному кэшу
    Set objPivotCache = ActiveWorkbook.PivotCaches.Add(xlExternal)
    Set objPivotCache.Recordset = objRS
    Set objRS = Nothing
    With wsPivot
        objPivotCache.CreatePivotTable TableDestination:=wsPivot.Range("A3")
        Set objPivotCache = Nothing
        Range("A3").Select
    End With

End Sub

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

Минусы такого подхода:

  • Данные не обновляются, т.к. кэш не имеет связи с исходными таблицами. При изменении исходных данных надо запустить макрос еще раз и построить сводную заново.
  • При изменении количества листов необходимо правки в код макроса (массив SheetNames).

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

pivot_multi_sheets3.gif

Вуаля!

Техническое замечание: если при запуске макроса вы получаете сообщение об ошибке вида «Provider not registered», то скорее всего у вас 64-битная версия Excel или установлена не полная версия Office (нет Access). Чтобы исправить ситуацию замените в коде макроса фрагмент:

	 Provider=Microsoft.Jet.OLEDB.4.0;

на:

	Provider=Microsoft.ACE.OLEDB.12.0;

И скачайте и установите бесплатный движок обработки данных из Access с сайта Microsoft — Microsoft Access Database Engine 2010 Redistributable

Способ 3. Мастер консолидации сводных таблиц из старых версий Excel

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

pivot_multi_sheets2.gif

В такой сводной нет заголовков столбцов в списке полей, нет гибкой настройки структуры, ограничен набор используемых функций и, в общем и целом, все это слабо похоже на сводную таблицу. Возможно именно поэтому начиная с 2007 года Microsoft эту функцию убрали из стандартного диалога при создании отчетов сводных таблиц. Теперь эта возможность доступна только через настраиваемую кнопку Мастер сводных таблиц (Pivot Table Wizard), которую при желании можно добавить на панель быстрого доступа через Файл — Параметры — Настройка панели быстрого доступа — Все команды (File — Options — Customize Quick Access Toolbar — All Commands):

Добавляем кнопку

После нажатия на добавленную кнопку нужно выбрать на первом шаге мастера соответствующую опцию:

Мастер сводных таблиц

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

Выделение диапазонов

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

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

  • Создание отчетов с помощью сводных таблиц
  • Настройка вычислений в сводных таблицах
  • Что такое макросы, как их использовать, куда копировать код на VBA и т.д.
  • Сбор данных с нескольких листов на один (надстройка PLEX)

Понравилась статья? Поделить с друзьями:
  • Excel несколько строк в одну строку enter
  • Excel несколько строк в одной ячейке разбить на несколько ячеек
  • Excel несколько сводных таблиц в книге
  • Excel несколько разных графиков на одном
  • Excel несколько промежуточных итогов