Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Еще…Меньше
Консолидация данных представляет собой удобный способ объединения данных из нескольких источников в одном отчете. Например, если в каждом из региональных филиалов вашей компании есть сводная таблица расходов, с помощью консолидации данных можно объединить такие значения в корпоративный отчет о расходах. Такой отчет может содержать итоговые и средние данные по продажам, текущим уровням запасов и наиболее популярным продуктам в рамках всей организации.
Примечание: Другой способ консолидации данных — использование Power Query. Дополнительные сведения см. в справке по Power Query для Excel.
Для подведения итогов и обобщения результатов по данным в отдельных диапазонах можно консолидировать их в сводной таблице на главном листе. Диапазоны могут находиться в той же книге, что и главный лист, или в других книгах. Консолидированные данные легче обновлять и обобщать на регулярной основе или по мере необходимости.
Итоговый консолидированный отчет сводной таблицы может содержать следующие поля в области Список полей сводной таблицы, добавляемой в сводную таблицу: «Строка», «Столбец» и «Значение». Кроме того, в отчет можно включить до четырех полей фильтра, которые называются «Страница1», «Страница2», «Страница3» и «Страница4».
Каждый из диапазонов данных следует преобразовать в формат перекрестной таблицы с совпадающими именами строк и столбцов для элементов, которые вы хотите объединить. В выбранные данные не следует включать итоговые строки и итоговые столбцы. В приведенном ниже примере показано четыре диапазона в формате перекрестной таблицы.
При консолидации данных можно использовать поля страницы, содержащие элементы, которые представляют один или несколько исходных диапазонов. Например, при консолидации данных бюджета отдела маркетинга, отдела продаж и производственного отдела поле страницы может содержать отдельный элемент с данными по каждому из этих отделов, а также элемент, содержащий сводные данные. В примере ниже показана сводная таблица, в которой выбраны одно поле страницы и несколько элементов.
Если велика вероятность того, что в следующий раз при консолидации данных исходный диапазон данных изменится (например, изменится число строк), рекомендуется задать имя для каждого из исходных диапазонов на разных листах. Эти имена можно использовать при консолидации диапазонов на главном листе. В случае расширения исходного диапазона перед обновлением сводной таблицы можно обновить диапазон на отдельном листе для указанного имени таким образом, чтобы включить в него новые данные.
В Excel также доступны другие способы консолидации данных, которые позволяют работать с данными в разных форматах и макетах. Например, вы можете создавать формулы с объемными ссылками или использовать команду Консолидация (доступную на вкладке Данные в группе Работа с данными).
Для консолидации нескольких диапазонов вы можете воспользоваться мастером сводных таблиц и диаграмм. В нем можно указать, сколько полей страницы будет использоваться: ни одного, одно или несколько.
Чтобы объединить данные всех диапазонов и создать консолидированный диапазон без полей страницы, сделайте следующее:
-
Добавьте мастер сводных таблиц и диаграмм на панель быстрого доступа. Для этого:
-
Щелкните стрелку рядом с панелью инструментов и выберите Дополнительные команды.
-
Нажмите Настроить панель быстрого доступа (…) в левом нижнем углу под лентой, а затем нажмите Дополнительные команды.
-
В списке Выбрать команды из выберите пункт Все команды.
-
Выберите в списке пункт Мастер сводных таблиц и диаграмм и нажмите кнопку Добавить, а затем — кнопку ОК.
-
-
В книге щелкните пустую ячейку, которая не является частью сводной таблицы.
-
Щелкните значок мастера на панели быстрого доступа.
-
На странице Шаг 1 мастера выберите параметр в нескольких диапазонах консолидации, а затем нажмите кнопку Далее.
-
На странице Шаг 2а выберите параметр Создать поля страницы, а затем нажмите кнопку Далее.
-
На странице Шаг 2б сделайте следующее:
-
Перейдите в книгу и выделите диапазон ячеек, а затем вернитесь в мастер сводных таблиц и диаграмм и нажмите кнопку Добавить.
Совет: Если диапазон ячеек находится в другой книге, сначала откройте ее, чтобы упростить выбор данных.
-
В разделе Во-первых, укажите количество полей страницы сводной таблицы введите 0, а затем нажмите кнопку Далее.
-
-
На странице Шаг 3 мастера выберите между добавлением сводной таблицы на новый или существующий лист, а затем нажмите Готово.
Чтобы включить одно поле страницы, содержащее элемент для каждого исходного диапазона, а также элемент для консолидации всех диапазонов, сделайте следующее:
-
Добавьте мастер сводных таблиц и диаграмм на панель быстрого доступа. Для этого:
-
Щелкните стрелку рядом с панелью инструментов и выберите Дополнительные команды.
-
Нажмите Настроить панель быстрого доступа (…) в левом нижнем углу под лентой, а затем нажмите Дополнительные команды.
-
В списке Выбрать команды из выберите пункт Все команды.
-
Выберите в списке пункт Мастер сводных таблиц и диаграмм и нажмите кнопку Добавить, а затем — кнопку ОК.
-
-
В книге щелкните пустую ячейку, которая не является частью сводной таблицы.
-
На странице Шаг 1 мастера выберите параметр в нескольких диапазонах консолидации, а затем нажмите кнопку Далее.
-
На странице Шаг 2а выберите параметр Создать одно поле страницы, а затем нажмите кнопку Далее.
-
На странице Шаг 2б сделайте следующее:
-
Перейдите в книгу и выделите диапазон ячеек, а затем вернитесь в мастер сводных таблиц и диаграмм и нажмите кнопку Добавить.
Совет: Если диапазон ячеек находится в другой книге, сначала откройте ее, чтобы упростить выбор данных.
-
-
Нажмите кнопку Далее.
-
На странице Шаг 3 мастера выберите между добавлением сводной таблицы на новый или существующий лист, а затем нажмите Готово.
Вы можете создать несколько полей страницы и назначить имена элементов каждому из исходных диапазонов. Это позволяет выполнять частичную или полную консолидацию. Например, в одном поле страницы могут консолидироваться данных отдела маркетинга и отдела продаж без данных производственного отдела, а в другом поле — данные всех трех отделов. Чтобы создать консолидацию с использованием нескольких полей страницы, сделайте следующее:
-
Добавьте мастер сводных таблиц и диаграмм на панель быстрого доступа. Для этого:
-
Щелкните стрелку рядом с панелью инструментов и выберите Дополнительные команды.
-
Нажмите Настроить панель быстрого доступа (…) в левом нижнем углу под лентой, а затем нажмите Дополнительные команды.
-
В списке Выбрать команды из выберите пункт Все команды.
-
Выберите в списке пункт Мастер сводных таблиц и диаграмм и нажмите кнопку Добавить, а затем — кнопку ОК.
-
-
В книге щелкните пустую ячейку, которая не является частью сводной таблицы.
-
На странице Шаг 1 мастера выберите параметр в нескольких диапазонах консолидации, а затем нажмите кнопку Далее.
-
На странице Шаг 2а выберите параметр Создать поля страницы, а затем нажмите кнопку Далее.
-
На странице Шаг 2б сделайте следующее:
-
Перейдите в книгу и выделите диапазон ячеек, а затем вернитесь в мастер сводных таблиц и диаграмм и нажмите кнопку Добавить.
Совет: Если диапазон ячеек находится в другой книге, сначала откройте ее, чтобы упростить выбор данных.
-
В разделе Во-первых, укажите количество полей страницы сводной таблицы щелкните число полей, которые вы хотите использовать.
-
В группе Затем выберите диапазон в списке и укажите метку элемента в каждом из доступных окон полей. Повторите операцию для каждого диапазона для каждого из полей страницы выберите диапазон ячеек, а затем укажите его имя.
Пример
-
Если в разделе Во-первых, укажите количество полей страницы сводной таблицы задано число 1, выберите каждый из диапазонов, а затем введите уникальное имя в поле Первое поле. Если у вас четыре диапазона, каждый из которых соответствует кварталу финансового года, выберите первый диапазон, введите имя «Кв1», выберите второй диапазон, введите имя «Кв2» и повторите процедуру для диапазонов «Кв3» и «Кв4».
-
Если в разделе Во-первых, укажите количество полей страницы сводной таблицы задано число 2, выполните аналогичные действия в поле Первое поле. Затем выберите два диапазона и введите в поле Второе поле одинаковое имя, например «Пг1» и «Пг2». Выберите первый диапазон и введите имя «Пг1», выберите второй диапазон и введите имя «Пг1», выберите третий диапазон и введите имя «Пг2», выберите четвертый диапазон и введите имя «Пг2».
-
-
Нажмите кнопку Далее.
-
-
На странице Шаг 3 мастера выберите между добавлением сводной таблицы на новый или существующий лист, а затем нажмите Готово.
Нужна дополнительная помощь?
Сводная таблица по нескольким диапазонам данных
Постановка задачи
Сводные таблицы — один из самых замечательных инструментов в Excel. Но до сих пор, к сожалению, ни одна из версий Excel не умеет «на лету» делать такой простой и нужной вещи как построение сводной по нескольким исходным диапазонам данных, находящимся, например, на разных листах или в разных таблицах:
Прежде, чем начать давайте уточним пару моментов. Априори я полагаю, что в наших данных выполняются следующие условия:
- Таблицы могут иметь любое количество строк с любыми данными, но обязательно — одинаковую шапку.
- На листах с исходными таблицами не должно быть лишних данных. Один лист — одна таблица. Для контроля советую использовать сочетание клавиш 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) и укажем исходный файл с таблицами, которые надо собрать:
В появившемся окне выберем любой лист (не принципиально какой именно) и внизу жмем кнопку Изменить (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).
Зато в итоге получаем самую настоящую полноценную сводную таблицу, построенную по нескольким диапазонам с разных листов:
Вуаля!
Техническое замечание: если при запуске макроса вы получаете сообщение об ошибке вида «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 включительно в мастере сводных таблиц была опция «построить сводную по нескольким диапазонам консолидации». Однако, отчет, построенный таким образом, к сожалению, будет лишь жалким подобием настоящей полноценной сводной и не поддерживает многие «фишки» обычных сводных таблиц:
В такой сводной нет заголовков столбцов в списке полей, нет гибкой настройки структуры, ограничен набор используемых функций и, в общем и целом, все это слабо похоже на сводную таблицу. Возможно именно поэтому начиная с 2007 года Microsoft эту функцию убрали из стандартного диалога при создании отчетов сводных таблиц. Теперь эта возможность доступна только через настраиваемую кнопку Мастер сводных таблиц (Pivot Table Wizard), которую при желании можно добавить на панель быстрого доступа через Файл — Параметры — Настройка панели быстрого доступа — Все команды (File — Options — Customize Quick Access Toolbar — All Commands):
После нажатия на добавленную кнопку нужно выбрать на первом шаге мастера соответствующую опцию:
А затем в следующем окне выделить по очереди каждый диапазон и добавить его в общий список:
Но, повторюсь, это не полноценная сводная, так что не ждите от нее слишком многого. Подобный вариант могу рекомендовать только в очень простых случаях.
Ссылки по теме
- Создание отчетов с помощью сводных таблиц
- Настройка вычислений в сводных таблицах
- Что такое макросы, как их использовать, куда копировать код на VBA и т.д.
- Сбор данных с нескольких листов на один (надстройка PLEX)
Очень часто при формировании отчётов (аналитики) основанных на больших объемах данных приходиться сводить в одну таблицу информацию с нескольких листов книги «Excel» .
В идеале для сбора и аналитики информации с разных листов «Эксель» желательно сделать сводную таблицу, которая будет брать данные из нескольких источников (листов книги).
Такую таблицу можно выполнить двумя разными способами.
- Создание сводной таблицы с разных листов при помощи стандартных возможностей и инструментов.
- Создание таблицы берущей данные с нескольких листов при помощи запроса сформированного в надстройке Power Query .
Рассмотрим первый способ.
Создание сводной таблицы с разных листов при помощи стандартных возможностей и инструментов.
Шаг первый.
Необходимо добавить в ленту инструментов кнопку мастера создания сводных таблиц и диаграмм.
Для этого следует кликнуть правой кнопкой мыши по ленте (панели инструментов) и выбрать из выпадающего меню пункт «Настройка ленты»
либо войти во вкладку
«Файл» => «Параметры» => «Настройка ленты».
Далее в настройках ленты из выпадающего списка под надписью «Выбрать команды» выбрать пункт «Все команды». В окне ниже отобразятся все возможные команды, которые можно разместить на панели, в алфавитном порядке.
Из списка выбираем «Мастер сводных таблиц и диаграмм»
В правом окне при помощи кнопки «Создать группу» создаем новую группу инструментов. Для группы можно выбрать удобное для Вас наименование. Например, «Своя группа». Можно выбрать на какой вкладке будет создана группа. В своем примере я выбрал вкладку «Главная».
Когда группа создана, выделите ее курсором, выделите курсором «Мастер сводных таблиц и диаграмм» в левом окне и нажмите кнопку «Добавить >>».
После нажмите «Ок».
Теперь на главной вкладке панели инструментов находится инструмент «Мастер сводных таблиц и диаграмм».
Шаг второй. Построение сводной таблицы из нескольких источников данных.
- Кликнуть по кнопке мастера построения сводных таблиц.
- На первом окне поставить флажок, напротив «в нескольких диапазонах консолидации» и флажок напротив «сводная таблица»
Консолидация диапазонов - Во втором окне выбрать «Создать одно поле страницы»
Поле сводной - В третьем окне добавить все диапазоны, которые Вы хотите консолидировать(соединить в сводной таблице).
Несколько диапазонов - В четвертом окне выбрать лист, на котором будет размещена сводная таблица.
На существующий лист - Нажать кнопку «Готово».
Второй способ.
Создание таблицы берущей данные с нескольких листов при помощи запроса сформированного в надстройке Power Query .
Данный способ заключается в использовании запроса надстройки Power Query.
О данной надстройке рассказывалось в статье: «Power Query» в «Excel» — что это?
Создание запроса Power Query для сведения нескольких страниц книги в одну таблицу.
Шаг первый.
Нужно создать два запроса, каждый из которых будет брать информацию из отдельной таблицы.
Шаг два.
Для этого во вкладке Power Query нужно нажать кнопку «Из таблицы» и указать в появившемся окне диапазон – источник данных. После чего нажать «Ок».
Шаг три.
Когда создан второй запрос, нужно во вкладке Power Query кликнуть по кнопке «Слияние запросов» и настроит в появившемся окне вид получившейся общей таблицы.
Шаг четыре.
Когда вид настроен, нужно нажать кнопку «Закрыть и загрузить.»
Надстройка Power Query соберет данные с двух листов и соединит их в одной таблице.
Сводная таблица применяется для быстрого анализа большого объема данных. Она позволяет объединять информацию из разных таблиц и листов, подсчитать общий результат. Этот универсальный аналитический инструмент существенно расширяет возможности программы Excel.
Можно сформировать новые итоги по исходным параметрам, поменяв строки и столбцы местами. Можно произвести фильтрацию данных, показав разные элементы. А также наглядно детализировать область.
Сводная таблица в Excel
Для примера используем таблицу реализации товара в разных торговых филиалах.
Из таблички видно, в каком отделе, что, когда и на какую сумму было продано. Чтобы найти величину продаж по каждому отделу, придется посчитать вручную на калькуляторе. Либо сделать еще одну таблицу Excel, где посредством формул показать итоги. Такими методами анализировать информацию непродуктивно. Недолго и ошибиться.
Самое рациональное решение – это создание сводной таблицы в Excel:
- Выделяем ячейку А1, чтобы Excel знал, с какой информацией придется работать.
- В меню «Вставка» выбираем «Сводная таблица».
- Откроется меню «Создание сводной таблицы», где выбираем диапазон и указываем место. Так как мы установили курсор в ячейку с данными, поле диапазона заполнится автоматически. Если курсор стоит в пустой ячейке, необходимо прописать диапазон вручную. Сводную таблицу можно сделать на этом же листе или на другом. Если мы хотим, чтобы сводные данные были на существующей странице, не забывайте указывать для них место. На странице появляется следующая форма:
- Сформируем табличку, которая покажет сумму продаж по отделам. В списке полей сводной таблицы выбираем названия столбцов, которые нас интересуют. Получаем итоги по каждому отделу.
Просто, быстро и качественно.
Важные нюансы:
- Первая строка заданного для сведения данных диапазона должна быть заполнена.
- В базовой табличке каждый столбец должен иметь свой заголовок – проще настроить сводный отчет.
- В Excel в качестве источника информации можно использовать таблицы Access, SQL Server и др.
Как сделать сводную таблицу из нескольких таблиц
Часто требуется создавать сводные отчеты из нескольких таблиц. Есть пара табличек с информацией. Нужно объединить их в одну общую. Для науки придумаем остатки на складах в двух магазинах.
Порядок создания сводной таблицы из нескольких листов такой же.
Создадим отчет с помощью мастера сводных таблиц:
- Вызываем меню «Мастер сводных таблиц и диаграмм». Для этого щелкаем кнопку настройки панели быстрого доступа и нажимаем «Другие команды». Здесь на вкладке «Настройка» находим «Мастер сводных таблиц». Добавляем инструмент в панель быстрого доступа. После добавления:
- Ставим курсор на первую табличку и нажимаем инструмент «Мастера». В открывшемся окне отмечаем, что создать таблицу хотим в «нескольких диапазонах консолидации». То есть нам нужно объединить несколько мест с информацией. Вид отчета – «сводная таблица». «Далее».
- Следующий этап – «создать поля». «Далее».
- Прописываем диапазон данных, по которым будем формировать сводный отчет. Выделяем первый диапазон вместе с шапкой – «добавить». Второй диапазон вместе с названием столбцов – снова «добавить».
- Теперь в списке выбираем первый диапазон. Ставим птичку у единицы. Это первое поле сводного отчета. Даем ему имя – «Магазин 1». Выделяем второй диапазон данных – ставим птичку у цифры «2». Название поля – «Магазин 2». Нажимаем «Далее».
- Выбираем, где расположить сводную таблицу. На существующем листе или новом. Лучше выбрать новый лист, чтобы не было наложений и смещений. У нас получилось так:
Как видите всего в несколько кликов можно создавать сложные отчеты из нескольких листов или таблиц разного объема информации.
Как работать со сводными таблицами в Excel
Начнем с простейшего: добавления и удаления столбцов. Для примера рассмотрим сводную табличку продаж по разным отделам (см. выше).
Справа от сводной таблицы у нас была область задач, где мы выбирали столбцы в списке полей. Если она исчезла, просто щелкаем мышью по табличке.
Добавим в сводную таблицу еще одно поле для отчета. Для этого установим галочку напротив «Даты» (или напротив «Товара»). Отчет сразу меняется – появляется динамика продаж по дням в каждом отделе.
Сгруппируем данные в отчете по месяцам. Для этого щелкаем правой кнопкой мыши по полю «Дата». Нажимаем «Группировать». Выбираем «по месяцам». Получается сводная таблица такого вида:
Чтобы изменить параметры в сводной таблице, достаточно снять галочки напротив имеющихся полей строк и установить у других полей. Сделаем отчет по наименованиям товаров, а не по отделам.
А вот что получится, если мы уберем «дату» и добавим «отдел»:
А вот такой отчет можно сделать, если перетащить поля между разными областями:
Чтобы название строки сделать названием столбца, выбираем это название, щелкаем по всплывающему меню. Нажимаем «переместить в название столбцов». Таким способом мы переместили дату в столбцы.
Поле «Отдел» мы проставили перед наименованиями товаров. Воспользовавшись разделом меню «переместить в начало».
Покажем детали по конкретному продукту. На примере второй сводной таблицы, где отображены остатки на складах. Выделяем ячейку. Щелкаем правой кнопкой мыши – «развернуть».
В открывшемся меню выбираем поле с данными, которые необходимо показать.
Когда нажимаем на сводную таблицу, становится доступной закладка с параметрами отчета. С ее помощью можно менять заголовки, источники данных, группировать информацию.
Проверка правильности выставленных коммунальных счетов
С помощью сводных таблиц Excel легко проверить, насколько правильно обслуживающие организации начисляют квартплату. Другой положительный момент – экономия. Если мы будем ежемесячно контролировать, сколько расходуется света, газа, то сможем найти резерв для экономии средств на оплату квартиры.
Для начала предлагаем составить сводную таблицу тарифов по всем коммунальным платежам. Для разных городов данные будут свои.
Для примера мы сделали сводную табличку тарифов для Москвы:
Для учебных целей возьмем семью из 4 человек, которые проживают в квартире 60 кв. м. Чтобы контролировать коммунальные платежи, необходимо создать таблицы для расчета на каждый месяц.
Первый столбец = первому столбцу из сводной таблицы. Второй – формула для расчета вида:
= тариф * количество человек / показания счетчика / площадь
Для удобства рекомендуем сделать промежуточный столбец, в который будут заноситься показания по счетчикам (переменная составляющая).
Наши формулы ссылаются на лист, где расположена сводная таблица с тарифами.
Скачать все примеры сводной таблицы
Если при расчете коммунальных платежей применяются льготы, их тоже можно внести в формулы. Информацию по начислениям требуйте в бухгалтерии своей обслуживающей организации. Когда меняются тарифы – просто измените данные в ячейках.
Хитрости »
25 Август 2013 183492 просмотров
Сводная таблица из нескольких листов
Как ни странно, но начиная с Excel 2007 пропала очевидная возможность создания сводной таблицы из нескольких листов. В Excel 2003 это можно было сделать во время создания простой сводной (Меню— Данные— Отчет сводной таблицы и диаграммы), выбрав в меню «Из нескольких диапазонов консолидации». Хоть на офф.сайте Microsoft для версии Excel 2007 и выше и предлагают сделать это при помощи клавиш: ALT+D+P у меня данное сочетание не вызвало никакой реакции со стороны самого Excel ни на русской раскладке, ни на английской. Скорее всего локализация ОС и Офиса так же имеет значение. Но я не стал далее ничего пытаться делать, т.к. знаю более короткий путь, чем изменение локализации. Чтобы создавать сводную из нескольких диапазонов для начала необходимо добавить кнопку на панель быстрого доступа:
- Excel 2010-2021— Файл (File)— Параметры (Options)— Панель быстрого доступа (Quick Access Toolbar)
- Excel 2007— Кнопка офис— Параметры Excel (Excel options)— Панель быстрого доступа (Quick Access Toolbar)
или непосредственно с панели быстрого доступа:
В списке «Выбрать команды из:» выбираем Все команды(All Commands) и ищем там Мастер сводных таблиц и диаграмм (PivotTable and PivotChart Wizard). Кнопкой Добавить(Add) переносим на панель быстрого доступа:
Забегая вперед скажу, что это совсем не та сводная, что на основе одного листа: нет толковых и понятных заголовков столбцов; набор функций ограничен; да и вообще функционал скуден по сравнению с обычной сводной(например, нет группировки дат и значений). Может быть поэтому в Microsoft посчитали правильным убрать данный пункт с глаз, чтобы не вводить в заблуждение.
Но тем не менее, несмотря на все недочеты, для кого-то возможность создания подобных таблиц может оказаться очень даже полезной. Например, если необходимо проанализировать данные по продажам за несколько лет и каждый год на отдельном листе или в отдельном диапазоне, как на рисунке ниже:
Жмем кнопку Мастер сводных таблиц и диаграмм (PivotTable and PivotChart Wizard)(которую мы только что добавили на панель быстрого доступа) — появится мастер создания сводных таблиц и диаграмм.
На Первом шаге необходимо указать в нескольких диапазонах консолидации(Multiple consolidation ranges):
Далее на Втором шаге Excel предложит создать одно поле страницы или создать свои поля страниц. Пока что совершенно неясно что это такое, но придется поверить мне на слово и выбрать второй пункт — Создать поля страницы (I will create the page fields)
Далее мы поймем зачем нам это и как использовать.
Третьим шагом необходимо будет указать все диапазоны, из которых планируется создать сводную (диапазоны могут быть как на одном листе, так и на разных листах и даже в разных книгах):
Количество полей страниц указываем 1 (How mane page fields do you want?). Становится активным окно для указания имени поля (Field one). Даем имена для полей, поочередно выделяя их в списке диапазонов:
- Лист3!$A$2:$N$6 — указываем 2013 год
- Лист3!$A$8:$N$11 — указываем 2012 год
- Лист3!$A$13:$N$17 — указываем 2011 год
Именно для этого мы и выбирали на втором шаге пункт с созданием своих полей страниц — чтобы можно было задать понятное имя каждому диапазону. Далее мы увидим зачем понятные имена и что будет, если на втором шаге выбрать другой пункт. И хоть создать можно будет не более 4-х полей страниц — как правило для большинства задач и одного хватает «за глаза», т.к. нужно это обычно лишь для того, чтобы задать понятные наименования для полей страницы.
Жмем Далее (Next), выбираем место создания сводной таблицы (существующий или новый лист), Готово (Finish).
Получаем более-менее привычный вид сводной таблицы:
С одной стороны мы вроде как работаем теперь со сводной таблицей, а с другой — есть нюансы, на которые стоит обратить внимание:
- На рисунке выше столбец Менеджер расположен в области значений и нет возможности перенести его в область строк или столбцов. Можно лишь убрать его из отображения, выключив в фильтре поля Столбец. Все дело в том, что сводные таблицы, созданные на основе нескольких диапазонов консолидации, содержат только три базовых области: Строка, Столбец и Значение. Поле Строка всегда создается на основе первого столбца указанного диапазона. Поле Столбец содержит все, что расположено правее первого столбца и комбинирует столбцы всех диапазонов в одно поле заголовков. Все, что правее области строк и ниже области столбцов — область значений.
- Т.к. столбец Менеджер состоит из текстовых данных — все поля значений нашей сводной по умолчанию будут отображать данные по количеству строк, а не суммы. Это легко изменить, поменяв функцию поля на Сумма(правая кнопка мыши в любой ячейке поля значений -Итоги по -Сумма). Однако после этого столбец Менеджер будет содержать нули и отобразить там конкретные фамилии менеджеров не получится никак потому, что этот столбец трактуется сводной изначально как значения и не может содержать текст. Это уже куда более печально, чем функция по умолчанию.
Эти моменты следует учитывать при подготовке данных для построения сводной таблицы на основе нескольких диапазонов консолидации.
Так для чего же мы давали понятные имена полям?
Скрины ниже продемонстрируют это более чем наглядно. Если перейти в поле фильтра и раскрыть его — там мы увидим как раз эти самые поля:
Имена элементов соответствуют тем значениям, которые мы задали на третьем шаге: 2011 год, 2012 год, 2013 год.
Если бы на втором шаге мы выбрали Создать одно поле страницы (Create a single page field for me), то получили бы малопонятные названия в фильтре Страниц (Объект1(Item1), Объект2(Item2), Объект3(Item3)):
Согласитесь, не очень информативно в нашем случае.
Кстати, сами поля страниц можно использовать для более гибкого анализа. Например, переместить их в область строк для анализа данных наглядно по годам:
В подобных случаях как раз и может понадобиться добавление более одного поля в область страниц.
Сами заголовки Страница1, Строка и Столбец можно переименовать в более удобные и понятные названия. Для этого необходимо лишь выделить ячейку с названием элемента и вписать нужный текст через строку формул.
Подводя итог я бы сказал, что совершенно не напрасно этот пункт был убран из основного меню создания сводных. Т.к. полноценной сводной это назвать нельзя даже с натяжкой. И полноценный анализ при помощи данной таблицы сделать вряд ли удастся. Но тем не менее возможность создания такой сводной все же лучше, чем ничего. Ведь сводную можно простым кликом мыши обновлять при внесении изменений в исходные данные — а это уже куда лучше, чем при каждом изменении собирать все заново.
Хотя я сам обычно советую сначала применить некий код (вроде того, что описан в статье Как собрать данные с нескольких листов или книг?), после чего на основе собранных данных создать нормальную сводную таблицу со всеми её возможностями и полным функционалом. Или действовать через базы данных(особенно, если данных очень много): Сводная из базы данных Access
СОЗДАНИЕ ПОЛНОЦЕННОЙ СВОДНОЙ ТАБЛИЦЫ ИЗ НЕСКОЛЬКИХ ЛИСТОВ
Но есть и более экзотический метод создания сводной из нескольких листов — через подключения. Создается подключение на языке запросов SQL, запрос подсовываем в кэш сводной — и готово, у нас есть сводная из нескольких листов со всем её функционалом.
'--------------------------------------------------------------------------------------- ' Module : mPTFromMultipleSheets ' DateTime : 07.08.2014 21:43 ' Author : The_Prist(Щербаков Дмитрий) ' http://www.excel-vba.ru ' Purpose : Процедура создания сводной таблицы из нескольких листов ' http://www.excel-vba.ru/chto-umeet-excel/svodnaya-tablica-iz-neskolkix-listov/ '--------------------------------------------------------------------------------------- Option Explicit Sub PTFromMultipleSheets() Dim oPTCache As PivotCache, oPT As PivotTable Dim sPath As String, sWbFulName As String, sTmpFileName As String Dim avSheets Dim sCols As String, sQuery As String, sCon As String Dim rRes As Range Dim li As Long sPath = ThisWorkbook.Path sWbFulName = ThisWorkbook.FullName If Right(sPath, 1) <> "" Then sPath = sPath & "" sTmpFileName = sPath & "TempWbForDB_" & Format(Now, "yyyymmddhhmmss") & ".xls" 'сюда можно добавить еще листы avSheets = Array("План", "Факт") 'например: Array("Январь", "Февраль", "Март", "Апрель") 'ниже перечисляются заголовки столбцов, на основе которых строится сводная 'столбцы могут быть в разном порядке, но иметь одинаковые заголовки sCols = "[Отделение],[Статья Расходов],[Сумма]" 'sCols = "*" ' - если необходимо включить все столбцы 'при этом шапка на всех листах должна быть полностью одинаковая, кол-во столбцов одинаковое 'данные будут в том порядке, в котором расположены столбцы Application.ScreenUpdating = False If Val(Application.Version) > 11 Then DelCon Set rRes = ThisWorkbook.Sheets(1).Cells rRes.Clear ThisWorkbook.Worksheets(avSheets).Copy With ActiveWorkbook .SaveAs sTmpFileName .Close End With 'создаем строку запроса For li = LBound(avSheets) To UBound(avSheets) If li > 0 Then sQuery = sQuery & " UNION SELECT " & sCols & " FROM [" & avSheets(li) & "$]" Else sQuery = "SELECT " & sCols & " FROM [" & avSheets(li) & "$]" End If Next li 'сначала создаем подключение к временному файлу 'это поможет избежать ошибок подключения к открытому файлу sCon = _ "ODBC;DSN=Excel Files;DBQ=" & sTmpFileName & ";" & _ "DefaultDir=" & sPath & ";DriverId=790;" & _ "MaxBufferSize=2048;PageTimeout=5" Set oPTCache = ThisWorkbook.PivotCaches.Add(SourceType:=xlExternal) With oPTCache .Connection = sCon .CommandType = xlCmdSql .CommandText = sQuery Set oPT = .CreatePivotTable(rRes(3, 1)) End With 'теперь изменяем в запросе сводной путь к файлу на текущий sCon = _ "ODBC;DSN=Excel Files;DBQ=" & sWbFulName & ";" & _ "DefaultDir=" & sPath & ";DriverId=790;" & _ "MaxBufferSize=2048;PageTimeout=5" ThisWorkbook.PivotCaches(1).Connection = sCon With oPT 'выставляем первоначальные настройки для сводной With .PivotFields(1) .Orientation = xlRowField .Position = 1 End With With .PivotFields(2) .Orientation = xlRowField .Position = 2 End With .AddDataField .PivotFields("Сумма"), "Сумма по полю Сумма", xlSum End With 'удаляем временный файл Kill sTmpFileName Set oPT = Nothing: Set oPTCache = Nothing Application.ScreenUpdating = True End Sub '--------------------------------------------------------------------------------------- ' Procedure : DelCon ' Purpose : Процедура удаляет подключения ' Требуется только для версий, выше 2003 '--------------------------------------------------------------------------------------- Private Sub DelCon() On Error Resume Next: ThisWorkbook.Connections(1).Delete: On Error GoTo 0 End Sub
Я специально привел пример именно с ODBC. Если строить на основе ADO(в сводную можно подставить результат запроса через ADO), то сводная хоть и будет полноценной, но при любом изменении в источнике данных придется перестраивать сводную заново. Что не очень удобно, если данных много и уже свою структуру сводной построили.
А такая сводная(через ODBC) имеет прямую связь с источником данных, т.к. подключение хранится в кэше сводной. Поэтому если данные на листах изменятся — надо будет лишь стандартно обновить сводную:
- выделить любую ячейку сводной таблицы →Правая кнопка мыши →Обновить(Refresh)
- или вкладка Данные(Data) →Обновить все(Refresh all) →Обновить(Refresh).
Пара важных замечаний(ложек дегтя, если угодно):
- таблицы на листах должны иметь все перечисленные в запросе столбцы. Столбцы на листах могут располагаться в разном порядке, но иметь одинаковые заголовки. Если на одном листе заголовок столбца называется «Сумма», а на другом «Sum» — будет ошибка. Вы можете сами регулировать порядок столбцов и их кол-во, перечисляя их в запросе. За это отвечает строка:
sCols = «[Отделение],[Статья Расходов],[Сумма]»
Если в одном из листов будет отсутствовать какой-либо столбец — получите ошибку.
Если указать
sCols = «*»
То в сводную будут включены все столбцы таблиц на листах, что избавляет от процедуры их перечисления. Но в данном случае есть свои нюансы: все таблицы на листах могут иметь различное кол-во строк, но столбцы должны быть строго одинаковые — по кол-ву и по порядку. Иными словами шапка должна быть полностью идентична на всех листах. Если на каком-то листе будет лишний столбец — получите ошибку. Если на каком-то листе будет отсутствовать столбец — получите ошибку. Если имена столбцов где-то различаются — получите ошибку. - заголовки не должны содержать запятых, точек и прочих знаков препинания. Лучше использовать исключительно пробел и нижнее подчеркивание. Так же лучше давать короткие имена заголовков.
- лучше заголовки располагать в первой строке. Так же, как и для стандартной сводной — не должно быть объединенных ячеек.
- на листах не должно быть пустых строк и столбцов. Что имеется ввиду: если на листе нажать Ctrl+End, то выделяется последняя заполненная ячейка листа. По-хорошему это должна быть последняя ячейка таблицы данных. Если при нажатии на Ctrl+End выделяется пустая ячейка правее или(и) ниже таблицы данных — следует удалить эти пустые столбцы справа и строки снизу и сохранить файл.
- На листах не должно быть лишних таблиц. На одном листе должна быть только одна таблица.
- Лист для создания сводной таблицы должен находиться на первом листе. Если есть желание расположить его на каком-то другом, то надо в строке кода:
Set rRes = ThisWorkbook.Sheets(1).Cells
заменить 1 на номер листа для расположения сводной таблицы.
Количество строк в таблицах значения не имеет — оно может быть разным.
В прикрепленном файле я добавил процедуру обновления кэша без построения сводной заново. Может пригодиться, если подключение по каким-то причинам сбилось.
Скачать пример:
Tips_PT_PTFromMultipleSheets.xls (54,0 KiB, 6 525 скачиваний)
На данный момент для пользователей Excel 2010 и новее есть еще одна возможность сбора данных с нескольких листов и файлов — при помощи бесплатной надстройки PowerQuery. Как это сделать можно почитать и посмотреть в статье: Собрать и просуммировать данные из разных файлов при помощи PowerQuery
Так же см.:
План-фактный анализ в Excel при помощи Power Query
Собрать данные с таблиц с изменяющимися столбцами в PowerQuery
Собрать и просуммировать данные из разных файлов при помощи PowerQuery
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика