Перейти к содержимому

Как отфильтровать сводную таблицу на основе значения определенной ячейки в Excel?

Author: Siluvia Last Modified: 2025-08-07

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

A screenshot showing a Pivot Table with a drop-down filter in Excel

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


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

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

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

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

A screenshot showing the View Code option for a worksheet in Excel

3. В открывшемся окне Microsoft Visual Basic for Applications скопируйте приведенный ниже код VBA в окно Кода.

Код VBA: Фильтрация сводной таблицы на основе значения ячейки

Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xStr As String
    On Error Resume Next
    If Intersect(Target, Range("H6:H7")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xPTable = Worksheets("Sheet1").PivotTables("PivotTable2")
    Set xPFile = xPTable.PivotFields("Category")
    xStr = Target.Text
    xPFile.ClearAllFilters
    xPFile.CurrentPage = xStr
    Application.ScreenUpdating = True
End Sub

Примечания: В коде

1) «Лист1» — это имя рабочего листа.
2) «СводнаяТаблица2» — это имя сводной таблицы.
3) Поле фильтрации в сводной таблице называется «Категория».
4) Значение, по которому вы хотите фильтровать сводную таблицу, находится в ячейке H6.
Вы можете изменить вышеуказанные переменные по мере необходимости.

4. Нажмите клавиши Alt + Q, чтобы закрыть окно Microsoft Visual Basic for Applications.

Теперь сводная таблица будет фильтроваться динамически на основе значения в ячейке H6, как показано на скриншоте ниже:

A screenshot showing a Pivot Table filtered based on a specific cell value in Excel

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

A screenshot showing the result of changing the filter cell value for the Pivot Table in Excel

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


Связанные статьи:

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Переворот в анализе данных на основе: Интеллектуальное выполнение   |  Сгенерировать код  |  Создать Пользовательские Формулы  |  Анализ данных и генерация диаграмм  |  Вызов Kutools Functions
Популярные функции: Найти, выделить или отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячейки без потери данных   |   Округлить...
Супер ПОИСК: VLookup с несколькими критериями    VLookup с несколькими значениями  |   Многолистовой поиск   |   Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскр. список   |  Зависимый раскрывающийся список   |  Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки   |  Дизайн листа   |   Улучшенная строка формулы    Управление книгой и листами   |  Библиотека автотекста (Auto Text)   |  Выбор даты   |  Объединить данные   |  Шифрование/Расшифровка ячеек    Отправить письмо по списку   |  Супер фильтр   |   Специальный фильтр (фильтр по жирному/курсиву/зачеркиванию...) ...
Топ–15 наборов инструментов: 12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...)   |   50+ типов диаграмм (Диаграмма Ганта, ...)   |   40+ практических формул (Расчет возраста на основе даты рождения, ...)   |   19 инструментов вставки (Вставить QR-код, Вставить изображение из пути, ...)   |  12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...)   |  7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...)   |   ... и многое другое
Используйте Kutools на вашем предпочитаемом языке – поддерживаются английский, испанский, немецкий, французский, китайский и более40 других языков!

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


Office Tab добавляет вкладочный интерфейс в Office, делая вашу работу значительно проще

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