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

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

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Примечания: В коде
4. Нажмите клавиши Alt + Q, чтобы закрыть окно Microsoft Visual Basic for Applications.
Теперь сводная таблица будет фильтроваться динамически на основе значения в ячейке H6, как показано на скриншоте ниже:

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

Примечание: Значения, которые вы вводите в ячейку H6, должны точно совпадать со значениями в раскрывающемся списке «Категория» сводной таблицы.
Связанные статьи:
- Как объединить несколько листов в одну сводную таблицу в Excel?
- Как создать сводную таблицу из текстового файла в Excel?
- Как связать фильтр сводной таблицы с определенной ячейкой в Excel?
Лучшие инструменты для повышения продуктивности в Office
Повысьте свои навыки работы в Excel с Kutools для Excel и ощутите новую эффективность. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Щелкните здесь, чтобы получить наиболее нужную вам функцию...
Office Tab добавляет вкладочный интерфейс в Office, делая вашу работу значительно проще
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в новых окнах.
- Увеличьте свою продуктивность на50% и сократите сотни кликов мышью ежедневно!