Как найти сводную таблицу по названию

Как вывести список всех сводных таблиц из книги?

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

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


стрелка синий правый пузырь Список всех сводных таблиц из книги с кодом VBA

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

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

2. Удерживайте ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.

3. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.

Код VBA: список всех сводных таблиц из книги

Sub ListPivotsInfor()
'Update 20141112
    Dim St As Worksheet
    Dim NewSt As Worksheet
    Dim pt As PivotTable
    Dim I, K As Long
    Application.ScreenUpdating = False
    Set NewSt = Worksheets.Add
    I = 1: K = 2
    With NewSt
        .Cells(I, 1) = "Name"
        .Cells(I, 2) = "Source"
        .Cells(I, 3) = "Refreshed by"
        .Cells(I, 4) = "Refreshed"
        .Cells(I, 5) = "Sheet"
        .Cells(I, 6) = "Location"
        For Each St In ActiveWorkbook.Worksheets
            For Each pt In St.PivotTables
                I = I + 1
                .Cells(I, 1).Value = pt.Name
                .Cells(I, 2).Value = pt.SourceData
                .Cells(I, 3).Value = pt.RefreshName
                .Cells(I, 4).Value = pt.RefreshDate
                .Cells(I, 5).Value = St.Name
                .Cells(I, 6).Value = pt.TableRange1.Address
            Next
        Next
        .Activate
    End With
    Application.ScreenUpdating = True
End Sub

4, Затем нажмите F5 Ключ для запуска этого кода, все имена сводных таблиц, диапазон исходных данных, имя рабочего листа и другие атрибуты перечислены в новом рабочем листе, который помещается перед вашим активным листом, как показано на следующем снимке экрана:

список-документов-все-сводная-1


Статьи по теме:

Как проверить, существует ли в книге сводная таблица?

Как добавить несколько полей в сводную таблицу?


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (20)


Оценок пока нет. Оцените первым!

Skip to content

На чтение 4 мин. Просмотров 2.4k.

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

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как это код работает
  4. Как использовать

Как макрос работает

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

Код макроса

Sub SpisokSvodnihTablicKnigi()
'Шаг 1: Объявляем переменные
Dim ws As Worksheet
Dim pt As PivotTable
Dim MyCell As Range
'Шаг 2: Добавляем новый лист с заголовками столбцов
Worksheets.Add
Range("A1:F1") = Array("Pivot Name", "Worksheet", _
"Location", "Cache Index", _
"Source Data Location", _
"Row Count")
'Шаг 3: Устанавливаем якорь курсора в ячейке А2
Set MyCell = ActiveSheet.Range("A2")
'Шаг 4: Запускаем цикл по листам книги
For Each ws In Worksheets
'Шаг 5: Запускаем цикл по всем сводным таблицам
For Each pt In ws.PivotTables
MyCell.Offset(0, 0) = pt.Name
MyCell.Offset(0, 1) = pt.Parent.Name
MyRange.Offset(0, 2) = pt.TableRange2.Address
MyRange.Offset(0, 3) = pt.CacheIndex
MyRange.Offset(0, 4) = Application.ConvertFormula _
(pt.PivotCache.SourceData, xlR1C1, xlA1)
MyRange.Offset(0, 5) = pt.PivotCache.RecordCount
'Шаг 6: Переместить курсор строкой вниз и установить якорь
Set MyRange = MyRange.Offset(1, 0)
'Шаг 7: Работа через все сводные таблицы и листы
Next pt
Next ws
'Шаг 8: Соответствие размеров столбцов
ActiveSheet.Cells.EntireColumn.AutoFit
End Sub

Как это код работает

  1. Шаг 1 объявляет объект под названием WS. Это создает контейнер памяти для каждого рабочего листа. Затем мы объявляем объект под названием PT, который содержит
    каждый цикл PivotTable . Наконец, мы создаем переменную диапазона под названием MyCell. Эта переменная действует как курсор, когда заполняет список инвентаризации.
  2. Шаг 2 создает новый рабочий лист и добавляет заголовки столбцов, которые варьируются от А1 до F1. Обратите внимание, что мы можем добавить заголовки столбцов, используя простой массив, который содержит наши метки заголовка. Этот новый рабочий лист остается активным.
  3. Так же, как вы бы вручную помещали курсор в ячейку, если вы должны были начать вводить данные, шаг 3 помещает MyCell курсор в ячейку A2 активного листа. Это наша точка привязки, что позволяет нам перейти отсюда. На протяжении всего макроса, вы используете свойство offset. Свойство offset позволяет передвигать курсор Offset х количество строк и х количество столбцов от точки привязки. Например, Range (A2) .offset (0,1) будет перемещать курсор на один столбец. Если мы хотим, переместить курсор на одну строку вниз, мы вводим Range(A2). Offset(1, 0). В макросе, мы перемещаемся с помощью
    Offset MyCell. Offset (0,4) будет перемещать курсор на четыре столбца справа от анкерной ячейки. После того, как курсор будет на месте, мы можем ввести данные.
  4. Шаг 4 начинает зацикливание, говоря Excel, что мы хотим оценить все рабочие листы в этой книге.
  5. Шаг 5 перебирает все сводные таблицы в каждом листе. Для каждого PivotTable он находит, извлекает соответствующее свойство и заполняет таблицу на основании положения
    курсора (шаг 3). Мы используем шесть свойств: Name, Parent.Range, TableRange2, CacheIndex, PivotCache.SourceData и PivotCache. RecordCount.
    Свойство Name возвращает имя сводной таблице.Свойство Parent.Range дает нам лист, где постоянно находится PivotTable. Свойство TableRange2.Address возвращает диапазон, где находится PivotTable. Свойство CacheIndex возвращает порядковый номер кэша сводной для сводной таблицы.
    Кэш-память поворота представляет собой контейнер памяти, которая хранит все данные для сводной таблицы. При создании новой сводной таблицы, Excel делает снимок исходных данных и
    создает кэш возврата. Каждый раз при обновлении сводной таблицы, Excel приходит к исходным данным и делает еще один снимок, тем самым обновляя кэш возврата. Каждый кэш имеет свойство SourceData, который идентифицирует местоположение данных, используемых для создания кэш возврата. PivotCache. SourceData свойство сообщает нам, какой диапазон будет призван, когда мы обновить сводную таблицу. Вы также можете вытащить количество записей из исходных данных, используя PivotCache.Recordcount.
  6. Каждый раз, когда макрос встречает новую сводную таблицу, он перемещает курсор вниз MyCell строку, начиная новую строку для каждого сводной таблицы.
  7. Шаг 7 говорит Excel повторить цикл для всех листов. После того, как все листы были оценены, макрос переходит к последнему шагу.
  8. Шаг 8 завершает с небольшим количеством форматирования размеров столбцов, чтобы соответствовало данным.

Как использовать

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

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

ГЛАВНАЯ

ТРЕНИНГИ

   Быстрый старт
   Расширенный Excel
   Мастер Формул
   Прогнозирование
   Визуализация
   Макросы на VBA

КНИГИ

   Готовые решения
   Мастер Формул
   Скульптор данных

ВИДЕОУРОКИ

ПРИЕМЫ

   Бизнес-анализ
   Выпадающие списки
   Даты и время
   Диаграммы
   Диапазоны
   Дубликаты
   Защита данных
   Интернет, email
   Книги, листы
   Макросы
   Сводные таблицы
   Текст
   Форматирование
   Функции
   Всякое
PLEX

   Коротко
   Подробно
   Версии
   Вопрос-Ответ
   Скачать
   Купить

ПРОЕКТЫ

ОНЛАЙН-КУРСЫ

ФОРУМ

   Excel
   Работа
   PLEX

© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru


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

Техническая поддержка сайта

ООО “Планета Эксел”

ИНН 7735603520


ОГРН 1147746834949
        ИП Павлов Николай Владимирович
        ИНН 633015842586
        ОГРНИП 310633031600071 

Сводные таблицы Excel – тема очень интересная и обширная.

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

Сводные таблицы Excel от А до Я

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

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

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

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

Допустим вы трудитесь в компании, которая является поставщиком овощей и фруктов в сетевые супермаркеты, которые находятся в нескольких крупных городах страны.

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

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

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

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

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

  1. Определить, в каком из городов за прошедшее время выручка была максимальной.
  2. Какая торговая сеть позволила получить компании наибольшую выручку.
  3. Определить категорию товаров и конкретный товар, принесшие наибольшую выручку.

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

Решение задачи формулами

На первый взгляд все эти задачи легко решаются несложными формулами и стандартными функциями.

Так, например, для определения города, принесшего максимальную выручку, нужно лишь сложить сумму всех поставок по каждому из городов. Сделать это можно с помощью функции СУММЕСЛИ.

То есть нам нужно будет создать отдельную таблицу, в которую с помощью функции СУММЕСЛИ свести данные по каждому из городов.

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

Удаление дубликатов
Удаление дубликатов

Ну а теперь применим функцию СУММЕСЛИ.

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

Выручка по городам с помощью функции СУММЕСЛИ
Выручка по городам с помощью функции СУММЕСЛИ

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

В итоге по значениям суммарной выручки мы легко определим победителя и ответим на первый вопрос.

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

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

Это не наш метод, тем более что сводные таблицы позволяют сделать ровно тоже самое, но в разы быстрее.

Ответим на первый вопрос с помощью сводной таблицы.

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

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

В моем примере мы имеем простой диапазон значений, но первая строка диапазона содержит заголовки столбцов, а значит и такой диапазон подойдёт для создания сводной таблицы.

Строка заголовков
Строка заголовков

Установим табличный курсор в любую ячейку диапазона и на вкладке Вставка выберем Сводная таблица.

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

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

Абсолютная ссылка на диапазон
Абсолютная ссылка на диапазон

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

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

Делается это очень просто – также устанавливаем табличный курсор в любую ячейку диапазона и либо на вкладке Вставка выбираем Таблица, либо просто нажимаем сочетание клавиш Ctrl+T.

Создание умной таблицы
Создание умной таблицы

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

Оставляем чек-бокс "Таблица с заголовками"
Оставляем чек-бокс “Таблица с заголовками”

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

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

Вставим сводную таблицу на новый лист.

Сводная таблица будет построена на основе данных Таблицы1 и будет располагаться на новом листе.
Сводная таблица будет построена на основе данных Таблицы1 и будет располагаться на новом листе.

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

Подсказка 1 и боковая панель для создания сводной таблицы 2.
Подсказка 1 и боковая панель для создания сводной таблицы 2.

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

Поля сводной таблицы соответствуют заголовкам умной таблицы
Поля сводной таблицы соответствуют заголовкам умной таблицы

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

Области, формирующие сводную таблицу
Области, формирующие сводную таблицу

Например, нам нужно ответить на вопрос – поставки товаров в какой город позволили получить максимальную выручку?

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

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

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

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

Поле в области Столбцы формирует заголовки столбцов сводной таблицы
Поле в области Столбцы формирует заголовки столбцов сводной таблицы

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

Сводная таблица и таблица, полученная с помощью функции СУММЕСЛИ
Сводная таблица и таблица, полученная с помощью функции СУММЕСЛИ

Пока не будем обращать внимание на внешний вид сводной таблицы, а сосредоточимся на ее функциональности.

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

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

Возможные операции в области Значения
Возможные операции в области Значения

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

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

Количество поставок в каждом городе
Количество поставок в каждом городе

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

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

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

Выручка по отдельным торговым сетям
Выручка по отдельным торговым сетям

Ну и последняя задача – определить категорию товаров, принесшую наибольшую выручку.

Действием по аналогии.

Суммарная выручка по товарным категориям
Суммарная выручка по товарным категориям

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

Вложенное поле Товар
Вложенное поле Товар

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

Вложенное поле Категория товара
Вложенное поле Категория товара

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

Но не стоит забывать и про область Столбцы. Для примера перетянем в нее поле Заказчик. Мы получим подробный отчет по объемам заказов каждой категории товаров отдельными торговыми сетями. При этом каждую категорию можно раскрыть, чтобы увидеть детализацию по каждому товару и сети.

Подробный отчет по торговым сетям и товарным категориям
Подробный отчет по торговым сетям и товарным категориям

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

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

Форматирования сводной таблицы

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

Заголовок изменяется самым обычным образом – щелкаем по ячейке с ним и затем меняем текст.

Изменение заголовков полей, находящихся в области Значения
Изменение заголовков полей, находящихся в области Значения

Также можно выделить нужную ячейку с заголовком и нажать клавишу F2 для перехода в режим редактирования ее содержимого.

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

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

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

Я же просто переименую поля в «Сумма заказов» и «Количество заказов». Первый заголовок также можно изменить на «Город».

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

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

Изменение числового форматирования ячейки
Изменение числового форматирования ячейки

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

Изменение числового формата всего столбца
Изменение числового формата всего столбца

Затем в появившемся окне указываем нужный формат и задаем его параметры.

Параметры числового формата столбца
Параметры числового формата столбца

Форматирование будет применено сразу ко всем столбцу.

Денежный числовой формат применен ко всему столбцу
Денежный числовой формат применен ко всему столбцу

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

Задание стилевого оформления сводной таблицы
Задание стилевого оформления сводной таблицы

Общие и промежуточные итоги

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

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

Общие и промежуточные итоги в сводной таблице
Общие и промежуточные итоги в сводной таблице

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

Инструменты по работе с макетом сводной таблицы
Инструменты по работе с макетом сводной таблицы

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

Промежуточные итоги
Промежуточные итоги

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

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

Отключение промежуточных итогов
Отключение промежуточных итогов

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

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

Промежуточные итоги в нижней части группы
Промежуточные итоги в нижней части группы

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

Управление отображением общих итогов
Управление отображением общих итогов

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

Ну и выбор макета также влияет на внешний вид сводной таблицы. Есть три варианта.

Выбор макета
Выбор макета

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

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

Форма структуры
Форма структуры

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

Табличная форма
Табличная форма

В этом же меню есть еще одна настройка, позволяющая повторять или не повторять подписи элементов.

Подписи элементов
Подписи элементов

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

Повторяющиеся элементы - название категории в каждой строке
Повторяющиеся элементы – название категории в каждой строке

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

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

Вставка пустых строк между элементами
Вставка пустых строк между элементами

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

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

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

Скрываем кнопки
Скрываем кнопки

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

Готовый отчет
Готовый отчет

Сортировка и фильтрация

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

Кнопки сортировки и фильтрации
Кнопки сортировки и фильтрации

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

Меню сортировки и фильтрации
Меню сортировки и фильтрации

Если нужно сформировать отчет только по какой-то одной товарной категории (например, “Зелень”), то с помощью фильтра отключаем все ненужные и получаем результат:

Данные только по товарной категории "Зелень"
Данные только по товарной категории “Зелень”

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

Данные по заказчику "Ашан" и товарной категории "Зелень"
Данные по заказчику “Ашан” и товарной категории “Зелень”

Если кроме категории нужно отфильтровать данные еще и по конкретным товарам, то в меню в выпадающем списке указываем соответствующее поле, а затем делаем фильтрацию по нему.

Выбор поля в выпадающем списке
Выбор поля в выпадающем списке

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

Значок указывает на фильтрацию данных в поле
Значок указывает на фильтрацию данных в поле

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

Удаление фильтра
Удаление фильтра

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

Область Фильтры
Область Фильтры

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

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

Фильтр по городам
Фильтр по городам

Мы можем выбрать отдельный город, чтобы получить информацию только по нему.

Отчет по Волгограду
Отчет по Волгограду

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

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

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

Сортировка значений в столбце сводной таблице
Сортировка значений в столбце сводной таблице

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

Ну и затронув тему фильтрации нельзя обойти стороной так называемые срезы.

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

Срез – это тот же фильтр, но интерактивный.

Срез
Срез

При вставке среза мы также выбираем поле, по которому фильтр будет работать. Например, вставим два среза – по городам и товарам.

Вставка срезов
Вставка срезов

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

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

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

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

Работа с фильтрами в срезе
Работа с фильтрами в срезе

Даты в сводных таблицах

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

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

Преобразование дат в сводной таблице
Преобразование дат в сводной таблице

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

Если такая группировка не нужна, то можно ее отменить через контекстное меню.

Разгруппировка дат
Разгруппировка дат

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

Группировка дат по годам и месяцам
Группировка дат по годам и месяцам

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

Сортировка и фильтрация по дате
Сортировка и фильтрация по дате

Для дат существует свой формат срезов – временная шкала.

Вставка временной шкалы
Вставка временной шкалы

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

Выбор дат с помощью временной шкалы
Выбор дат с помощью временной шкалы

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

Ну а сводные таблицы – это очень обширная и увлекательная тема, которой я посвятил отдельный очень подробный видеокурс, который так и называется “Сводные таблицы“.

Сводные таблицы Excel от А до Я

Нажмите на эту ссылку, чтобы перейти на страницу курса >>

________________________________________

Ссылки на мои ресурсы по Excel

YouTube-канал Excel Master

Серия видеокурсов “Microsoft Excel Шаг за Шагом”

Авторские книги и курсы

Can someone tell me how I can find all the pivot tables in a workbook (or sheet)? In some cases a pivot table might be hidden or hard to find in a very large excel sheet. If i could at least get the cell address or range of where the pivot table(s) are/is, that would be great.

Thanks.

asked Dec 14, 2011 at 20:13

Juan Velez's user avatar

This should work for you. It prints out the results to the Immediate window:

Sub FindPivotTables()
    Dim wst As Worksheet
    Dim pvt As PivotTable
    ' loop through all sheets and print name & address of all pivot tables
    For Each wst In ActiveWorkbook.Worksheets
        For Each pvt In wst.PivotTables
            Debug.Print wst.Name, pvt.TableRange2.Address, pvt.Name
        Next pvt
    Next wst
End Sub

answered Dec 15, 2011 at 4:59

Rachel Hettinger's user avatar

Rachel HettingerRachel Hettinger

7,8522 gold badges21 silver badges31 bronze badges

0

Each worksheet should expose a PivotTables collection; you can loop through each worksheet looking for sheets that have a .PivotTables.Count > 0 and then loop through the PivotTables on that sheeet to find the one you are looking for:

Sub Test()

    Dim pTable As pivotTable

    Dim ws As Worksheet

    For Each ws In ActiveWorkbook.Worksheets

        Dim pivotTableCount

        pivotTableCount = ws.PivotTables.Count

        If pivotTableCount > 0 Then

            For Each pTable In ws.PivotTables

                 Dim pivotTableName As String
                 pivotTableName = pTable.Name

                 Dim pivotTableTopLeftCell As String
                 pivotTableTopLeftCell = pTable.Location

            Next pTable 

        End If



    Next ws


End Sub

NorthCat's user avatar

NorthCat

9,54316 gold badges47 silver badges50 bronze badges

answered Dec 14, 2011 at 20:29

dash's user avatar

dashdash

89.2k4 gold badges51 silver badges71 bronze badges

2

Добавить комментарий