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


Download Article


Download Article

After you create a pivot table, you might need to edit it later. This wikiHow will show you how to edit a pivot table in Excel on your computer by adding or changing the source data. After you make any changes to the data for your Pivot Table, you will need to refresh it to see any changes.

Steps

  1. Image titled Edit a Pivot Table in Excel Step 1

    1

    Open your project in Excel. To do this, double-click the Excel document that contains your pivot table in Finder (Macs) or File Explorer (Windows). Alternatively, if you already have Excel open, click File > Open and select the file that has your pivot table.

  2. Image titled Edit a Pivot Table in Excel Step 2

    2

    Go to the spreadsheet page that contains the data for the pivot table. Click the tab that contains your data (e.g., Sheet 2) at the bottom of the Excel window.

    Advertisement

  3. Image titled Edit a Pivot Table in Excel Step 3

    3

    Add or change your data. Enter the data that you want to add to your pivot table directly next to or below the current data.

    • For example, if you have data in cells A1 through E10, you would add another column in the F column or another row in the 11 row.
    • If you simply want to change the data in your pivot table, edit the data here. It won’t be reflected in the pivot table until you refresh the data, though.
  4. Image titled Edit a Pivot Table in Excel Step 4

    4

    Go back to the pivot table tab. Click the tab on which your pivot table is listed.

  5. Image titled Edit a Pivot Table in Excel Step 5

    5

    Select your pivot table. Click the pivot table to select it.

  6. Image titled Edit a Pivot Table in Excel Step 6

    6

    Click the Analyze tab. It’s in the middle of the editing ribbon that’s at the top of the Excel window. Doing so will open a toolbar just below the editing ribbon.

    • On a Mac, click the PivotTable Analyze tab here instead.
  7. Image titled Edit a Pivot Table in Excel Step 7

    7

    Click Change Data Source. This option is in the «Data» section of the Analyze toolbar. A drop-down menu will appear.

  8. Image titled Edit a Pivot Table in Excel Step 8

    8

    Click Change Data Source…. It’s in the drop-down menu. Doing so opens a window.

  9. Image titled Edit a Pivot Table in Excel Step 9

    9

    Select your data. Click and drag from the top-left cell in your data group down to the bottom-left cell in the group. This will include the column(s) or row(s) that you added.

  10. Image titled Edit a Pivot Table in Excel Step 10

    10

    Click OK. It’s at the bottom of the window.

  11. Image titled Edit a Pivot Table in Excel Step 11

    11

    Click Refresh. It’s in the «Data» section of the toolbar.

    • If you added a new column to your pivot table, check its box on the right side of the Excel window to display it.[1]
  12. Advertisement

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

Thanks for submitting a tip for review!

References

About This Article

Article SummaryX

1. Open your project in Excel.

2. Go to the spreadsheet that contains the data for the pivot table

3. Add or change your data.
4. Go back to the pivot table tab.

5. Select your pivot table.

6. Click Analyze tab (Windows) or PivotTable Analyze (Mac).
7. Click Change Data Source.

8. Click Change Data Source.
9. Select your data.

10. Click Ok.

11. Click Refresh.

Did this summary help you?

Thanks to all authors for creating a page that has been read 50,706 times.

Is this article up to date?

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

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

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

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

  1. Щелкните Отчет сводной таблицы.

  2. На вкладке « Анализ» в группе данных щелкните «Изменить источник данных» и выберите команду «Изменить источник данных».

    Отобразится диалоговое окно «Источник данных измененной сводной таблицы».

  3. Выполните одно из следующих действий:

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

    1. Щелкните » Использовать внешний источник данных«, а затем выберите «Выбрать подключение».

      Диалоговое окно ''Изменение источника данных сводной таблицы''

      Отобразится диалоговое окно «Существующие подключения».

    2. В раскрывающемся списке «Показать» в верхней части диалогового окна выберите категорию подключений, для которых нужно выбрать подключение, или выберите «Все существующие подключения» (по умолчанию).

    3. Выберите подключение в списке «Выбор подключения» и нажмите кнопку » Открыть». Что делать, если подключение отсутствует в списке?

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

      Дополнительные сведения см. в статье «Управление подключениями к данным в книге».

    4. Нажмите кнопку ОК.

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

    • Щелкните «Выбрать таблицу или диапазон«, а затем введите первую ячейку в текстовом поле «Таблица/диапазон» и нажмите кнопку «ОК«.

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

Диалоговое окно ''Выбор источника данных''

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

Вкладка ''Таблицы'' в диалоговом окне ''Существующие подключения''

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

  2. Выберите вариант Только создать подключение.

    Импорт данных с помощью варианта ''Только создать подключение''

  3. Щелкните пункт Свойства и выберите вкладку Определение.

    Свойства подключения

  4. Если файл подключения (ODC-файл) был перемещен, найдите его новое расположение в поле Файл подключения.

  5. Если необходимо изменить значения в поле Строка подключения, обратитесь к администратору базы данных.

  1. Щелкните Отчет сводной таблицы.

  2. На вкладке « Параметры » в группе данных щелкните «Изменить источник данных» и выберите команду «Изменить источник данных».

    Отобразится диалоговое окно «Источник данных измененной сводной таблицы».

  3. Выполните одно из указанных ниже действий.

    • Чтобы использовать другую таблицу или диапазон ячеек Excel, щелкните «Выбрать таблицу или диапазон «, а затем введите первую ячейку в текстовом поле «Таблица / диапазон».

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

  4. Чтобы использовать другое подключение, выберите «Использовать внешний источник данных», а затем нажмите кнопку «Выбрать подключение».

    Отобразится диалоговое окно «Существующие подключения».

  5. В раскрывающемся списке «Показать» в верхней части диалогового окна выберите категорию подключений, для которых нужно выбрать подключение, или выберите «Все существующие подключения» (по умолчанию).

  6. Выберите подключение в списке «Выбор подключения» и нажмите кнопку » Открыть».

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

    Дополнительные сведения см. в статье «Управление подключениями к данным в книге».

  7. Нажмите кнопку ОК.

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

Диалоговое окно ''Выбор источника данных''

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

Вкладка ''Таблицы'' в диалоговом окне ''Существующие подключения''

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

  2. Выберите вариант Только создать подключение.

    Импорт данных с помощью варианта ''Только создать подключение''

  3. Щелкните пункт Свойства и выберите вкладку Определение.

    Свойства подключения

  4. Если файл подключения (ODC-файл) был перемещен, найдите его новое расположение в поле Файл подключения.

  5. Если необходимо изменить значения в поле Строка подключения, обратитесь к администратору базы данных.

Дополнительные сведения о поддерживаемых источниках данных см. в разделе «Импорт и формирование данных в Excel для Mac (Power Query).

  1. Щелкните Отчет сводной таблицы.

  2. На вкладке « Анализ» в группе данных щелкните «Изменить источник данных» и выберите команду «Изменить источник данных».

    Отобразится диалоговое окно «Источник данных измененной сводной таблицы».

  3. Выполните одно из указанных ниже действий.

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

      Диалоговое окно ''Изменение источника данных сводной таблицы''

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

      1. Щелкните » Использовать внешний источник данных«, а затем выберите «Выбрать подключение».

        Диалоговое окно ''Изменение источника данных сводной таблицы''

        Отобразится диалоговое окно «Существующие подключения».

      2. В раскрывающемся списке «Показать» в верхней части диалогового окна выберите категорию подключений, для которых нужно выбрать подключение, или выберите «Все существующие подключения» (по умолчанию).

      3. Выберите подключение в списке «Выбор подключения» и нажмите кнопку » Открыть». Что делать, если подключение отсутствует в списке?

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

        Дополнительные сведения см. в статье «Управление подключениями к данным в книге».

      4. Нажмите кнопку ОК.

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

Диалоговое окно ''Выбор источника данных''

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

Вкладка ''Таблицы'' в диалоговом окне ''Существующие подключения''

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

  2. Выберите вариант Только создать подключение.

    Импорт данных с помощью варианта ''Только создать подключение''

  3. Щелкните пункт Свойства и выберите вкладку Определение.

    Свойства подключения

  4. Если файл подключения (ODC-файл) был перемещен, найдите его новое расположение в поле Файл подключения.

  5. Если необходимо изменить значения в поле Строка подключения, обратитесь к администратору базы данных.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Создание сводной таблицы с внешним источником данных

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

Управление подключениями к данным в книге

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

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

Исходный материал – таблица с несколькими десятками и сотнями строк, несколько таблиц в одной книге, несколько файлов. Напомним порядок создания: «Вставка» – «Таблицы» – «Сводная таблица».

А в данной статье мы рассмотрим, как работать со сводными таблицами в Excel.

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

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

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

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

Мы просто создаем сводный отчет на основе данных в нескольких диапазонах консолидации.

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

Разнотипная структура таблицы 1.
Разнотипная структура таблицы 2.

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

Мастер сводных таблиц при таких исходных параметрах выдаст ошибку. Так как нарушено одно из главных условий консолидации – одинаковые названия столбцов.

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

  1. В ячейке-мишени (там, куда будет переноситься таблица) ставим курсор. Пишем = — переходим на лист с переносимыми данными – выделяем первую ячейку столбца, который копируем. Ввод. «Размножаем» формулу, протягивая вниз за правый нижний угол ячейки.
  2. Заполнение данными из другой таблицы.

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

  5. Теперь создадим сводный отчет. Вставка – сводная таблица – указываем диапазон и место – ОК.
  6. Создание сводной таблицы.

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

Сводный отчет по продажам.

Покажем, к примеру, количество проданного товара.

Количество проданного товара.

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



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

Из отчета (см.выше) мы видим, что продано ВСЕГО 30 видеокарт. Чтобы узнать, какие данные были использованы для получения этого значения, щелкаем два раза мышкой по цифре «30». Получаем детальный отчет:

Детальный отчет.

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

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

Обновление данных:

Обновление данных.

Курсор должен стоять в любой ячейке сводного отчета.

Либо:

Обновление таблицы.

Правая кнопка мыши – обновить.

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

  1. Курсор стоит в любом месте отчета. Работа со сводными таблицами – Параметры – Сводная таблица.
  2. Работа со сводными таблицами.

  3. Параметры.
  4. Настройка параметров.

  5. В открывшемся диалоге – Данные – Обновить при открытии файла – ОК.
  6. Обновить при открытии файла.

Изменение структуры отчета

Добавим в сводную таблицу новые поля:

  1. На листе с исходными данными вставляем столбец «Продажи». Здесь мы отразим, какую выручку получит магазин от реализации товара. Воспользуемся формулой – цена за 1 * количество проданных единиц.
  2. Исходные отчет по продажам.

  3. Переходим на лист с отчетом. Работа со сводными таблицами – параметры – изменить источник данных. Расширяем диапазон информации, которая должна войти в сводную таблицу.
  4. Источник данных сводной таблицы.

Если бы мы добавили столбцы внутри исходной таблицы, достаточно было обновить сводную таблицу.

После изменения диапазона в сводке появилось поле «Продажи».

Добавилось поле продажи.

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

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

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

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

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

  3. Работа со сводными таблицами – Параметры – Формулы – Вычисляемое поле.
  4. Вычисляемое поле.

  5. В открывшемся меню вводим название поля. Ставим курсор в строку «Формула». Инструмент «Вычисляемое поле» не реагирует на диапазоны. Поэтому выделять ячейки в сводной таблице не имеет смысла. Из предполагаемого списка выбираем категории, которые нужны в расчете. Выбрали – «Добавить поле». Дописываем формулу нужными арифметическими действиями.
  6. Вставка вычисляемого поля.

  7. Жмем ОК. Появились Остатки.
  8. Добавилось поле остатки.

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

Для примера посчитаем расходы на товар в разные годы. Сколько было затрачено средств в 2012, 2013, 2014 и 2015. Группировка по дате в сводной таблице Excel выполняется следующим образом. Для примера сделаем простую сводную по дате поставки и сумме.

Исходная сводная таблица.

Щелкаем правой кнопкой мыши по любой дате. Выбираем команду «Группировать».

Группировать.

В открывшемся диалоге задаем параметры группировки. Начальная и конечная дата диапазона выводятся автоматически. Выбираем шаг – «Годы».

Шаг-годы.

Получаем суммы заказов по годам.

Скачать пример работы

Суммы заказов по годам.

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

Финансы в Excel

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

Подробности
Создано 27 Март 2011
Содержание
Подключение макросов
Функциональность
Алгоритм работы
Программный код
События рабочей книги (ThisWorkbook):
Процедура поиска и вывода данных для редактирования:
Исправление ошибки работы с датами в Excel 2007:

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

Подключение макросов

Для работы примера требуется подключение макросов VBA. В Excel 2002-2003 может потребоваться предварительно изменить безопасность макросов до среднего или низкого уровня (Сервис Макросы Безопасность). В Excel 2007 щелкните на строку сообщения под лентой, а затем подтвердите операцию.

Без подключенных макросов пример будет работать в стандартном режиме отображения деталей (drill-down) при двойном клике в области данных сводной таблицы.

Функциональность

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

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

В новом окне редактирования выделяется ячейки столбца по выбранным в сводной таблице данным:

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

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

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

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

Алгоритм работы

  1. Устанавливается свойство сводной таблицы, отменяющее стандартное поведение на двойной клик.
  2. На уровне листа, на котором располагается сводная таблица, перехватывается событие двойного клика в области данных.
  3. Проверяется, не является ли поле вычисляемым. Создается пустой лист для фильтрации исходных данных.
  4. Формируется значения фильтра через проверку диапазонов областей строк, столбцов и страниц сводной таблицы. Эти значения записываются на служебный лист.
  5. С помощью операции «Расширенный фильтр» фильтруется исходный диапазон данных.
  6. Создается новое окно, в которое выводится отфильтрованный диапазон исходных данных.
  7. Включается событие на активизацию окна Excel. При возврате в окно со сводной таблицей, второе окно с исходными данными закрывается.

Программный код

Небольшие комментарии к наиболее интересным частям программного кода VBA.

События рабочей книги (ThisWorkbook):

Option Explicit

Private m_oFlagCheckActiveWindow As Boolean

Public Property Let FlagCheckActiveWindow(bValue As Boolean)
    m_oFlagCheckActiveWindow = bValue
End Property
Public Property Get FlagCheckActiveWindow() As Boolean
    FlagCheckActiveWindow = m_oFlagCheckActiveWindow
End Property

Private Sub Workbook_Open()
    m_oFlagCheckActiveWindow = False
    
    PivotObj.EnableDrilldown = False
End Sub

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Dim oPivotDataRange As Excel.Range
    Dim oClickRange As Excel.Range
    
    Set oPivotDataRange = mdlPivotEdit.PivotDataRange()
    If (oPivotDataRange Is Nothing) Then
        Cancel = False
        Exit Sub
    End If
    
    If Not (Sh Is oPivotDataRange.Worksheet) Then
        Cancel = False
        Exit Sub
    End If
    
    Set oClickRange = Application.Intersect(oPivotDataRange, Target)
    If (oClickRange Is Nothing) Then
        Cancel = False
        Exit Sub
    End If
    
    mdlPivotEdit.DoEdit oClickRange.Cells(1)
     
    Cancel = True
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
    If Not FlagCheckActiveWindow Then Exit Sub
    
    If (Right(Wn.Caption, 2) = ":2") Then
        Windows(Left(Wn.Caption, Len(Wn.Caption) - 1) & "1").Close
        ActiveWindow.WindowState = xlMaximized
        
        PivotObj.RefreshTable
    End If
    
    FlagCheckActiveWindow = False
End Sub

FlagCheckActiveWindow – публичное свойство для включения/отключения проверки активизации окна.

Application.Intersect(oPivotDataRange, Target) – проверка нахождения в области данных сводной таблицы.

mdlPivotEdit.DoEdit oClickRange.Cells(1) – вызов главного обработчика редактирования.

Автоматическое закрытие второго окна рабочей книги происходит при условии, что имя текущего окна заканчивается на «:2» (Right(Wn.Caption, 2) = «:2»). Этот суффикс (двоеточие плюс номер) Excel присваивает новому окну автоматически.

Процедура поиска и вывода данных для редактирования:

Private Sub ShowResult_(nCol As Long)
    Dim oLastWindow As Excel.Window
    
    If (nCol = 0) Then Exit Sub
    
    ThisWorkbook.FlagCheckActiveWindow = False
    Set oLastWindow = ActiveWindow
    
    ActiveWindow.NewWindow
    ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlHorizontal
    oLastWindow.Activate
    
    ThisWorkbook.FlagCheckActiveWindow = True
    
On Error Resume Next
    WorksheetData_.ShowAllData
On Error GoTo 0
    WorksheetData_.Activate
    
    SourceDataRange.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        FilterDataRange, Unique:=False
       
    WorksheetData_.Range( _
                WorksheetData_.Cells(SourceDataRange.Cells(1).Row + 1, nCol), _
                WorksheetData_.Cells(SourceDataRange.Cells(SourceDataRange.Cells.Count).Row, nCol) _
                ).Select
    Selection.SpecialCells(xlCellTypeVisible).Select
End Sub

SourceDataRange.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= FilterDataRange, Unique:=False – вызов стандартной процедуры «Расширенный фильр» по созданным условиям. FilterDataRange – это специально созданный диапазон на листе «Filter».

Selection.SpecialCells(xlCellTypeVisible).Select – выделение только видимых ячеек отфильтрованном диапазоне.

Исправление ошибки работы с датами в Excel 2007:

Private Function GetItemValue_(oItem As Object) As Variant
    ' fix Excel 2007 bug
On Error GoTo Err_
    GetItemValue_ = oItem.SourceNameStandard
    Exit Function
Err_:
    GetItemValue_ = oItem.Value
End Function

В Excel 2007 появилось новое свойство элемента сводной таблицы SourceNameStandard. При этом загадочным образом перестало правильно работать стандартное свойство для определения значение этого элемента — Value. Для значения типа «Дата» в Excel 2007 необходимо использовать именно SourceNameStandard, в противном случае на Value будет получена отформатированная строка вместо даты. Похоже, что это не ошибка (bug), а новая особенность поведения (feature), созданная для новой функциональности сводной таблицы. Вместо грубого перехвата ошибок On Error можно было воспользоваться проверкой версии Excel (Application.Version).

Смотри также

» Динамический источник данных сводной таблицы

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

» Стоимость складского запаса

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

» Обработка больших объемов данных. Часть 3. Сводные таблицы

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

» Сводная таблица Excelfin.ru

Надстройка предназначена для создания сводных таблиц на основе нескольких диапазонов данных файла Excel. Пользовательский интерфейс в…

» Сводные таблицы

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

Хитрости »

19 Июнь 2020              13384 просмотров


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

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

На основе её мы построили примерно такую сводную таблицу(как создать сводную можно посмотреть и прочитать в этой статье: Общие сведения о сводных таблицах):
Сводная таблица

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

В итоге будет создан новый лист с таблицей, содержащей только те строки исходных данных, на основании которых сформировано выделенное нами значение:
Таблица деталей

Да, мы теперь можем целенаправленно и точечно посмотреть, изучить только нужные данные и принять решение. Но тут другая проблема: если нам надо что-то изменить, то это ни на что не повлияет. Т.к. показ деталей из сводной никак не связан уже ни с исходными данными, ни с самой сводной таблицей. Как же быть? Можно попробовать вернуться в лист с исходными данными и отфильтровать последовательно каждый столбец до нужных значений. Но это явно не самый быстрый и точный путь. Поэтому его даже не рассматриваем. Я хочу предложить путь быстрее и эффективнее. После того как отобразили детали — ничего с этим листом пока не делать. Переходим на лист с исходными данными -вкладка Данные(Data) -группа Сортировка и фильтр(Sort & Filter)Дополнительно(Advanced). В появившейся форме указываем следующие данные:
Параметры расширенного фильтра
Исходные диапазон: $A$1:$H$4777 (у меня эти ячейки на листе Data. Указываем обязательно с заголовками)
Диапазон условий: Таблица2[#Все] (это как раз наша таблица деталей, которую мы отобразили из сводной таблицы. Обращаю особое внимание на то, что должно быть именно Таблица2[#Все], т.е. с заголовками)
Обязательно оставляем отмеченным пункт Фильтровать список на месте. Нажимаем Ок.
В итоге у нас в исходной таблице отфильтруются ровно те строки, которые были отображены в деталях:
Результат фильтрации исходной таблицы
Краткое видео процесса:
Фильтрация источника данных
И теперь мы спокойно можем их анализировать и при необходимости изменять.
Только следует помнить, что после любого изменения надо будет обновить сводную(правая кнопка мыши на любой ячейке сводной таблицы —Обновить(Refresh).

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

Но даже при всем этом: как-то это все долго и не очень удобно. Поэтому я решил пойти дальше и сделать все необходимое при помощи макросов(Visual Basic for Applications). Придется в них чуть-чуть вникнуть, но оно того стоит, т.к. для полного удобства мы сделаем вот что:

  • по двойному клику на ячейке сводной таблицы автоматически отфильтруем данные в исходной таблице и перейдем в неё
  • после изменений в исходной таблице и возврата в сводную — автоматически обновим эту сводную таблицу
  • для большего удобства мы еще создадим в меню правого клика сводной таблицы свой собственный пункт меню «Edit Source», который будет делать то же самое, что и двойной клик
    Собственный пункт Edit Source

Т.е. можно сказать полностью заменим стандартный пункт «Показать детали».

Для этого создаем стандартный модуль (переходим в редактор VBA(Alt+F11) —InsertModule) и вставляем в него код:

'---------------------------------------------------------------------------------------
' Author : Щербаков Дмитрий(The_Prist)
'          Профессиональная разработка приложений для MS Office любой сложности
'          Проведение тренингов по MS Excel
'          https://www.excel-vba.ru
'          info@excel-vba.ru
' Purpose:
'---------------------------------------------------------------------------------------
Option Explicit
 
Sub EditPivotSource()
    Dim pt As PivotTable
    Dim wsDetails As Worksheet
    Dim rSource As Range, rDetails As Range
    Dim lAppCalc As Long
 
    Application.DisplayAlerts = False
    lAppCalc = Application.Calculation 'запоминаем установленный режим пересчета формул
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    On Error GoTo END_
 
    'определяем сводную таблицу и её исходные данные
    Set pt = ActiveCell.PivotTable
    Set rSource = Application.Evaluate(Application.ConvertFormula(pt.SourceData, xlR1C1, xlA1))
    'отображаем все данные в листе с исходными данными
    rSource.EntireRow.Hidden = False
    'разрешаем отображение деталей, если запрещено настройками
    '   Параметры сводной таблицы -Данные -Разрешить отображение деталей
    If Not pt.EnableDrilldown Then
        pt.EnableDrilldown = True
    End If
    'показываем лист с данными по выделенной области
    Selection.ShowDetail = True
    'запоминаем лист с деталями - потом надо будет удалить
    Set wsDetails = ActiveSheet
    Set rDetails = ActiveSheet.UsedRange
 
    rSource.AdvancedFilter xlFilterInPlace, rDetails
    'удаляем лист деталей - он больше не нужен
    wsDetails.Delete
    'активируем лист с исходными данными - теперь там отображены только нужные строки
    rSource.Parent.Activate
END_:
    If Err.Number <> 0 Then
        MsgBox "Выделите ячейку данных для редактирования", vbInformation, "www.excel-vba.ru"
    End If
    'возвращаем измененные настройки приложения в прежние значения
    Application.DisplayAlerts = True
    Application.Calculation = lAppCalc
    Application.ScreenUpdating = True
End Sub

Это основной код фильтрации данных в источнике данных на основании выделенной в сводной таблице ячейке.
Далее все в том же редакторе VBA переходим в модуль ЭтаКнига(ThisWorkbook) и вставляем туда следующий код:

'---------------------------------------------------------------------------------------
' Author : Щербаков Дмитрий(The_Prist)
'          Профессиональная разработка приложений для MS Office любой сложности
'          Проведение тренингов по MS Excel
'          https://www.excel-vba.ru
'          info@excel-vba.ru
' Purpose: Обработка двойного клика мыши в сводной таблице
'          и переход к сводной после редактирования источника данных
'
'          Так же при открытии книги создается пункт в меню правой кнопки мыши сводной - Edit Source
'          и удаляется перед закрытием этой книги
'---------------------------------------------------------------------------------------
Option Explicit
 
'при активации листа со сводной таблицей - обновляем все сводные
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Dim pt As PivotTable
    'обновляем все сводные таблицы на листе, на который перешли
    For Each pt In Sh.PivotTables
        pt.PivotCache.Refresh
    Next
End Sub
 
'обрабатываем двойной клик мыши внутри сводной таблицы
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Dim rcPT As PivotTable
    'проверяем, является ли ячейка,
    'на которой дважды щелкнули мышью
    'ячейкой внутри сводной таблицы
    On Error Resume Next
    Set rcPT = Target.PivotTable
    On Error GoTo 0
    'если это ячейка сводной
    If Not rcPT Is Nothing Then
        'вызываем процедуру фильтрации источника данных
        EditPivotSource
        Cancel = True
    End If
End Sub
 
'================================================================================
'              СОЗДАНИЕ И УДАЛЕНИЕ ПУНКТА МЕНЮ В СВОДНОЙ
'
'добавляем в меню сводных таблиц пункт "Edit Source",
'который будет отбирать данные непосредственно в источнике данных
Private Sub Workbook_Open()
    Dim bt As CommandBarControl, indx As Long
 
    On Error Resume Next
    'ищем пункт меню "Показать детали"
    Set bt = Application.CommandBars("PivotTable Context Menu").FindControl(ID:=462)
    'если нашли - добавим после него новый пункт "Edit source"
    '   при нажатии которого будет вызываться наш код перехода к источнику
    'если не нашли - ставим вторым пунктом
    If Not bt Is Nothing Then
        indx = bt.Index
    Else
        indx = 1
    End If
    'пробуем удалить пункт "Edit source", если он ранее был создан
    'чтобы не было задвоения
    Application.CommandBars("PivotTable Context Menu").Controls("Edit source").Delete
    'добавляем новый пункт
    With Application.CommandBars("PivotTable Context Menu").Controls.Add(before:=indx + 1)
        .Caption = "Edit source"
        .OnAction = "'" & ThisWorkbook.Name & "'!EditPivotSource"
    End With
End Sub
 
'перед закрытием книги удаляем созданный нами пункт меню
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next
    Application.CommandBars("PivotTable Context Menu").Controls("Edit source").Delete
End Sub
'================================================================================

Все, теперь останется только сохранить книгу в формате «Книга Excel с поддержкой макросов(.xlsm)» и открыть заново. Хотя это нужно лишь для того, чтобы создался новый пункт меню в сводной таблицы, весь остальной функционал будет работать и без перезапуска.
Надеюсь данный трюк будет полезен всем, кто работает со сводными.

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

  Перейти к исходным данным сводной таблицы.xlsm (612,2 KiB, 528 скачиваний)

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

Так же см.:
Показать все детали
Перейти к исходным данным
Связать сводные
Использование вычисляемых полей и объектов в сводных таблицах


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Понравилась статья? Поделить с друзьями:
  • Редактирование сводной таблицы excel
  • Редактирование рисунков в excel
  • Редактирование рисунка в excel
  • Редактирование рецензирование документов word
  • Редактирование раскрывающегося списка excel