KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

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

АвторSiluviaДата изменения

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

Excel не предлагает встроенной функции для прямой привязки значения ячейки к фильтру сводной таблицы без использования кода. Однако существует несколько практичных способов реализовать эту задачу, каждый со своими преимуществами и особенностями. В этом руководстве сначала описан простой метод на основе VBA, который напрямую связывает ячейку с фильтром сводной таблицы, обеспечивая мгновенное обновление сводной таблицы при изменении значения в ячейке. Также рассматриваются альтернативные подходы: использование формул Excel (например, ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ или ФИЛЬТР) для вывода отфильтрованных результатов, а также применение срезов в качестве наглядных элементов управления фильтрацией. Знание этих вариантов поможет вам выбрать оптимальный метод для вашего рабочего процесса в Excel и обеспечить удобство конечному пользователю.

Снимок экрана со сводной таблицей с раскрывающимся фильтром в Excel


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

Если вам нужна по-настоящему динамическая интерактивность — когда ввод значения в ячейку автоматически обновляет фильтр сводной таблицы, — VBA предлагает прямое решение. Это особенно полезно для информационных панелей, шаблонов, которыми вы делитесь с коллегами, или ситуаций, где фильтры нужно быстро настроить, просто изменив значение в одной ячейке. Однако этот метод требует базового знакомства с редактором VBA и сохранения вашей книги в формате, поддерживающем макросы ().xlsm).

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

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

Шаг 2: Откройте лист, содержащий целевую сводную таблицу. Щёлкните правой кнопкой мыши по ярлыку листа внизу Excel и выберите пункт Просмотреть код в контекстном меню. Откроется окно редактора VBA для данного листа.

Снимок экрана с опцией «Просмотреть код» для листа в Excel

Шаг 3:В открывшемся окне Microsoft Visual Basic для приложений(VBA) вставьте следующий код в модуль кода листа (а не в стандартный модуль):

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

Private Sub Worksheet_Change(ByVal Target As Range)
'Обновлено 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("= 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

📝 Примечания:

  • «Sheet1» — это лист, содержащий сводную таблицу. При необходимости внесите изменения.
  • «PivotTable2» — это имя вашей сводной таблицы. Его можно найти на вкладке Работа со сводными таблицами.
  • «Category» — это поле, по которому необходимо выполнить фильтрацию. Оно должно точно соответствовать названию условия.
  • H6 — это ячейка для фильтрации. Убедитесь, что значение совпадает с элементом из списка фильтров.
  • Значения фильтра должны совпадать посимвольно — лишние пробелы или опечатки могут привести к ошибкам или отсутствию результатов.

Шаг 4: Нажмите клавиши Alt + Q, чтобы закрыть редактор VBA и вернуться в Excel.

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

Сводная таблица, отфильтрованная по значению определённой ячейки

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

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

Устранение неполадок:

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

Формула Excel – отображение отфильтрованных результатов Сводная таблица на основе значения ячейки

Для пользователей, предпочитающих не включать макросы, Excel предлагает решения на основе формул для отображения результатов сводной таблицы на основе значения конкретной ячейки. Хотя такие функции, как ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ и ФИЛЬТР, фактически не изменяют настройки фильтра сводной таблицы, они позволяют динамически ссылаться на данные и отображать сводные результаты, реагирующие на действия пользователя.

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

Использование ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ:

Допустим, ваша сводная таблица (с именем)«PivotTable2») подводит итоги продаж по категориям, а значение фильтра указано в ячейке H6. С помощью функции ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ вы можете отобразить общий объём продаж для категории, заданной в ячейке H6:

1.Выберите ячейку, в которой требуется отобразить сводный результат (например,)I6):

=GETPIVOTDATA("Sum of Sales", $A$4, "Category", $H$6)

2. Нажмите клавишу Enter. После изменения значения в ячейке H6 результат в ячейке I6 будет автоматически обновляться, отражая соответствующую сводку из сводной таблицы.

Если в вашей сводной таблице используются другие названия полей или иная компоновка, скорректируйте формулу соответствующим образом. Чтобы автоматически создать формулу ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ, введите знак = в ячейку, а затем щёлкните по ячейке со значением в вашей сводной таблице. Excel вставит готовую формулу, которую при необходимости можно будет отредактировать.

Использование ФИЛЬТР с вспомогательной таблицей:

Если требуется извлекать подробные записи из исходного набора данных (а не только сводные данные Сводная таблица), и Вы используете Excel 365 или Excel 2019, функция ФИЛЬТРпозволяет выполнять динамическую фильтрацию на основе значения ячейки:

Предположим, что Ваши исходные данные находятся в диапазоне A1:C100, а поле Категория расположено в столбце A.

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

=FILTER(A2:C100, A2:A100 = H6, "No data")

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

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

📝 Советы и предупреждения:

  • Эти формулы не изменяют сам фильтр сводной таблицы — они лишь создают отдельное динамическое представление на основе значений ячеек.
  • Для прямого изменения фильтров сводной таблицы необходимо использовать VBA.
  • Убедитесь, что названия условий, используемые в функции ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ, точно совпадают с названиями в сводной таблице (включая регистр и пробелы).
  • Если вы видите ошибки #ССЫЛ!, проверьте корректность ссылок и убедитесь, что структура сводной таблицы не изменилась.

Другие встроенные методы Excel – Используйте срезы как интерактивные фильтры для Сводная таблица

Если решения на основе VBA или формул не полностью соответствуют вашему рабочему процессу, в Excel доступны срезы — ещё один интерактивный способ фильтрации сводной таблицы. Срезы — это визуальные элементы управления, с помощью которых можно фильтровать данные простым щелчком мыши. Хотя их нельзя напрямую связать со значениями ячеек (то есть изменение содержимого ячейки не влияет на срез), они интуитивно понятны и особенно эффективны в панелях мониторинга и отчётах для нетехнических пользователей.

Как добавить и использовать срез:

  1. Выберите любую ячейку внутри вашей сводной таблицы.
  2. Перейдите на вкладку Работа со сводными таблицами(или на вкладку)Анализ в более ранних версиях) и нажмите Вставить срез.
  3. В диалоговом окне Вставка срезовустановите флажок напротив поля, по которому нужно выполнить фильтрацию (например,)Категория), затем нажмите кнопку ОК.
  4. Срез появится на листе. Щелкните кнопку, чтобы отфильтровать сводную таблицу по этому значению. Удерживайте клавишу Ctrl, чтобы выбрать несколько элементов.

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

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

Кроме того, даже если ваши данные хранятся в таблице Excel (а не в сводной таблице), вы всё равно можете использовать срезы: выделите таблицу и перейдите на вкладку Конструктор таблицВставить срез.

Устранение неполадок: Если срез не фильтрует сводную таблицу, проверьте параметр Подключения отчётов(на вкладке)Срез или Анализ), чтобы убедиться, что он правильно подключён к нужной сводной таблице.

Каждый из описанных выше методов решает свою задачу: VBA обеспечивает фильтрацию, напрямую связанную с ячейками; формулы динамически отображают результаты; а срезы — удобную визуальную фильтрацию. Выберите тот подход, который лучше всего соответствует вашим требованиям к автоматизации, гибкости и простоте использования. Традиционные выпадающие фильтры сводной таблицы по-прежнему остаются надёжным базовым вариантом.

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

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

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  VLookup по нескольким значениям  |   VLookup по нескольким листам   |   Распознавание нечетких соответствий
Расширенный раскрывающийся список:Быстрое создание выпадающего списка   |  Зависимый выпадающий список   |  Выпадающий список с множественным выбором
Управление столбцами:Добавление заданного количества столбцов|Перемещение столбцов|Переключение видимости скрытых столбцов|Сравнение диапазонов и столбцов
Избранные функции:Сетка фокусировки   |  Просмотр дизайна   |Улучшенная строка формулы   | Управление рабочими книгами и листами   |  Библиотека ресурсов(автотекст)|  Выбор даты   |  Объединить листы  |  Шифрование/Расшифровать ячейки   | Отправка писем по списку   |  Супер фильтр   |   Специальный фильтр(Фильтр ячеек с жирным шрифтом/курсив/зачёркивание…) …
Лучшие наборы инструментов 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 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек