Excel сводная таблица на основе другой сводной таблицы

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

Клиент Дата отгрузки Сумма отгрузки
ООО «Ромашка» 21 декабря 2010 12 039,58 руб.
ООО «Лютик» 22 декабря 2010 291 574,23 руб.

На основе таких данных в Excel несложно сформировать сводную таблицу, что-то типа (табл. 2):

Клиент Сумма отгрузок за период
ООО «Ромашка» 1 156 421,97 руб.
ООО «Лютик» 2 586 924,36 руб.

Если же вы хотите распределить клиентов по объему продаж, чтобы получить сводную таблицу типа (табл. 3):

Диапазон объема продаж Число клиентов в диапазоне
0 – 499 999,99 руб. 254
2 000 000 – 2 499 999,99 руб. 21

то вы столкнетесь с трудностями, так как создать такую таблицу на основе исходных данных (таблица 1), вам не удастся.

Скачать статью в формате Word, примеры в формате Excel2007 или Excel2003

Если это разовая процедура, то вы сначала создадите табл. 2, а потом на её основе создадите табл. 3. Но как быть, если вы хотите поддерживать табл. 3 в актуальном состоянии при изменении исходных данных (табл.1)!?

Мне не известны стандартные методы в Excel, позволяющие это сделать. К сожалению, опция в мастере сводных таблиц[1] «создать таблицу на основе данных, находящихся… в другой сводной таблице», не подходит:

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

Стандартным образом создайте сводную таблицу на основе этих данных, а затем запустите мастер сводных таблиц, выберите опцию «создать таблицу на основе данных, находящихся… в другой сводной таблице», нажмите «Далее»:

На шаге 2 выберите на основе, какой сводной таблицы вы создадите новую таблицу:

Видно, что вторая сводная «опирается» на те же данные, что и первая:

Можете поэкспериментировать, и убедиться, что набор данных второй сводной таблицы не зависит от вида первой сводной таблицы (то есть от того, какие поля и как мы выбрали в первой таблице), а зависит только от исходных данных (колонки А–D).

Фактически мы создали копию первой сводной таблицы. Так что стандартные методы Excel для решения нашей задачи не подходят. Применим маленькие хитрости.

Пример приведен в Excel-файле на листе «хитрость». Для начала создадим именованный динамический диапазон на основе исходных данных – «исх1» с использованием функции СМЕЩ (как это делать можно посмотреть здесь). Именованный диапазон  избавит нас от проблем при добавлении исходных данных, и позволит актуализировать все сводные  таблицы простым нажатием кнопки «Обновить»:

Создавая сводную таблицу, укажите, что исходные данные – это диапазон с именем «исх1»:

Для сводной таблицы отключите общие итоги:

Создайте именованный диапазон для сводной таблице, также с помощью функции СМЕЩ:

Вот зачем мы отключили итоги – чтобы они «не лезли» в этот диапазон!

Запустите мастер сводных таблиц (из панели быстрого доступа) и выберите «Создать таблицу на основе данных, находящихся… в списке или базе данных MS Excel», нажмите «Далее»:

На втором шаге, укажите диапазон, содержащий исходные данные для второй сводной таблицы – «св1», нажмите «Далее»:

Разместите вторую сводную рядом с первой:

Сгруппируйте индивидуальные значения в диапазоны, постройте сводную диаграмму:

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


[1] Как вызвать мастера сводных таблиц в Excel2007 (где он в явном виде не представлен) см. здесь.

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

Проблема

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

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

Исходные сводные

Но выручку мы хотим видеть по месяцам, а объем продаж по кварталам, поэтому дальше логично применить группировку. Щелкаем правой кнопкой мыши по датам в первой сводной, выбираем Группировать — Месяцы — ОК и выручка действительно начинает отображаться по месяцам, как мы и хотели. Но и во второй таблице даты тоже сгруппировались по месяцам, хотя мы этого совершенно не просили:

Группировка первой сводной влияет на вторую

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

В чем дело?

Дело в том, что при построении любой сводной таблицы Microsoft Excel создает в файле так называемый кэш (Pivot Cache) — область памяти, куда загружаются исходные данные для анализа и вычислений. И когда вы делаете вторую, третью и т.д. сводные по той же исходной таблице Excel услужливо использует уже сформированный ранее для первой сводной кэш, а не создает новый.

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

Способ 1. Строим сводную правильно

Чтобы построить сводную таблицу на новом кэше придется воспользоваться старым добрым Мастером сводных таблиц и диаграмм (Pivot Table and Chart Wizard) из версий Excel 97-2003. Как ни странно, но этот «устаревший» инструмент умеет при создании сводной выбирать — делать ли независимую сводную или сводную на основе уже имеющегося кэша. Кнопку для этого Мастера убрали из интерфейса еще в 2007 году, но он до сих пор доступен для совместимости и вполне работоспособен.

Щелкните правой кнпокой мыши по панели быстрого доступа в левом верхнем углу и выберите команду Настройка панели быстрого доступа (Customize Quick Access Toolbar). Затем в выпадающем списке в верхней части окна выберите Все команды (All Commands), найдите Мастер сводных таблиц и диаграмм и добавьте на панель:

Добавление кнопки мастера сводных таблиц

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

Первый шаг мастера сводных таблиц

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

Предупреждение

Все, теперь группировка этой сводной не будет влиять на соседнюю и обе таблицы можно сгруппировать по-разному:

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

Способ 2. Отвязываем уже созданную сводную от общего кэша

Если у вас уже есть готовая сводная, и создавать ее заново с помощью Мастера вы не хотите, то можно отвязать ее от общего кэша, используя тактическую хитрость:

  1. Скопируйте сводную в новый пустой файл
  2. Обновите сводную (правой кнопкой мыши по ней — Обновить)
  3. Скопируйте ее обратно на старое место

Такой бессмысленный, на первый взгляд, «финт ушами» заставляет Excel создать для сводной отдельную копию кэша, т.е. делает ее независимой.

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

Sub Unlink_Pivot_From_Shared_Cache()
    Dim pvtTable As PivotTable
    Dim startcell As Range
    Dim wbCur As Workbook, wbTemp As Workbook
    
    On Error Resume Next
    Set pvtTable = ActiveSheet.PivotTables(ActiveCell.PivotTable.Name)
    On Error GoTo 0
    If Not pvtTable Is Nothing Then
        Set wbCur = ActiveWorkbook
        'копируем сводную и вставляем в новую книгу
        Set startcell = pvtTable.TableRange2.Cells(1)
        pvtTable.TableRange2.Copy
        Set wbTemp = Workbooks.Add
        ActiveSheet.Paste
        'обновляем сводную, копируем назад и закрываем временный файл
        ActiveSheet.PivotTables(1).PivotCache.Refresh
        ActiveSheet.PivotTables(1).TableRange2.Copy Destination:=startcell
        wbTemp.Close SaveChanges:=False
    Else
        MsgBox "Сначала поставьте активную ячейку в сводную таблицу!", vbExclamation, "Подсказка"
    End If
End Sub

Если поставить активную ячейку в сводную и запустить этот макрос с помощью кнопки Макросы на вкладке Разработчик или сочетания клавиш Alt+F8, то текущая сводная таблица будет отвязана от общего кэша, и вы сможете группировать ее независимо.

Нюансы

  • Если у сводных таблиц не общий кэш, то их не получится одновременно фильтровать срезами и шкалой.
  • Посмотреть количество кэшей в книге можно, если в редакторе Visual Basic (Alt+F11) открыть консоль через меню View — Immediate и ввести туда команду ? Activeworkbook.PivotCaches.Count и нажать на Enter:

    Количество кэшей

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

  • Тонкая настройка вычислений в сводных таблицах
  • Фильтр исходных данных при двойном щелчке по ячейке в сводной таблице
  • Группировка данных в сводных таблицах

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

Проблема

Бывает так, что анализируемые данные попадают к нам в виде отдельных таблиц, которые, тем не менее, нужно связать. Это легко может сделать 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 для 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

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

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

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

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

Сводная таблица применяется для быстрого анализа большого объема данных. Она позволяет объединять информацию из разных таблиц и листов, подсчитать общий результат. Этот универсальный аналитический инструмент существенно расширяет возможности программы 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 кв. м. Чтобы контролировать коммунальные платежи, необходимо создать таблицы для расчета на каждый месяц.

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

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

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

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

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

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

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

Like this post? Please share to your friends:
  • Excel сводная таблица конструктор
  • Excel сам меняет цифры в ячейке
  • Excel сводная таблица иерархия
  • Excel сам меняет цифру на дату
  • Excel сводная таблица значение текст