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

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

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

Author Siluvia Last modified

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

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


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

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

Для работы этой техники ваша сводная таблица должна содержать поле фильтра. Название поля фильтра критично для правильной настройки кода VBA.

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

link Pivot Table filter to a certain cell

Для реализации этого:

  • Выберите ячейку, которую хотите использовать как контроллер фильтра (например, ячейку H6), и заранее введите одно из значений фильтра. Убедитесь, что значение точно совпадает с доступными в поле фильтра сводной таблицы.
  • Перейдите на лист, содержащий вашу сводную таблицу. Щелкните правой кнопкой мыши на вкладке листа и выберите Просмотреть код из меню. Это открывает окно Visual Basic for Applications.

Right click the sheet tab and select View Code

В окне 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")) 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) Sheet1 - это имя листа. Измените его по мере необходимости.
2) PivotTable2 - это имя сводной таблицы. Настройте его в соответствии с вашей фактической таблицей.
3) «Категория» является полем фильтрации. Убедитесь, что написание соответствует вашему полю таблицы.
4) H6 - это ссылка на ячейку, связанную с фильтром. Вы можете изменить адрес ячейки по мере необходимости. Убедитесь, что ячейка всегда содержит допустимое значение фильтра, присутствующее в вашем наборе данных.

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

Теперь состояние фильтра вашей сводной таблицы управляется содержимым ячейки H6. Простое изменение значения в ячейке H6 (на «Продажи» или «Расходы») мгновенно обновит отображение сводной таблицы. Если вы столкнетесь с проблемами, пожалуйста, еще раз проверьте, что значение в указанной ячейке точно совпадает со значением фильтра в сводной таблице, и что имена в вашем коде правильно назначены.

Refresh the cell, then corresponding data are filtered out based on the existing value

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

When changing the cell value, the filtered data in the Pivot Table will be changed automatically.

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

a screenshot of kutools for excel ai

Раскройте магию Excel с Kutools AI

  • Умное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это посредством простых команд.
  • Пользовательские формулы: Создавайте индивидуальные формулы для оптимизации ваших рабочих процессов.
  • Кодирование VBA: Пишите и внедряйте код VBA без особых усилий.
  • Интерпретация формул: Легко разбирайтесь в сложных формулах.
  • Перевод текста: Преодолейте языковые барьеры в ваших таблицах.
Улучшите возможности Excel с помощью инструментов на базе ИИ. Скачать сейчас и испытайте беспрецедентную эффективность!

Формула Excel - Использование формул (например, GETPIVOTDATA) в сочетании с фильтром или ссылкой на Report Filter

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

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

Пример: Отображение сводной таблицы на основе значения ячейки

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

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

=GETPIVOTDATA("Sum of Amount",$B$4,"Category",H6)

2. После ввода формулы в I6 нажмите Enter. Теперь, когда вы меняете H6 на допустимую категорию (например, «Расходы» или «Продажи»), I6 мгновенно обновится, чтобы показать сумму для этой категории согласно текущей сводной таблице.

Примечания:
  • Первый аргумент «Сумма по количеству» должен быть заменен на фактическое имя поля Значений в вашей сводной таблице (например, «Общие продажи» или любую метку, которую используют ваши значения). Аналогично, $B$4 следует заменить ссылкой на любую конкретную ячейку внутри вашей сводной таблицы — Excel автоматически распознает эту ссылку и свяжет ее с правильной сводной таблицей для корректной работы функции GETPIVOTDATA.
  • Чтобы получить точный синтаксис GETPIVOTDATA, щелкните по ячейке вашей сводной таблицы и попробуйте сослаться на значение — Excel автоматически генерирует правильный синтаксис. Убедитесь, что H6 соответствует одной из доступных категорий в таблице для получения точных результатов.

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

Устранение неполадок: Если формула возвращает ошибку #REF! или #VALUE!, проверьте, что ваши ссылки на ячейки правильны, введенная категория существует в вашей сводной таблице, и имя поля/суммы точно совпадает.


Другие встроенные методы Excel - Подключение срезов сводной таблицы и дашбордов для интерактивной фильтрации

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

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

Чтобы создать срез и связать его:

  • Щелкните по вашей сводной таблице и перейдите к Анализ сводной таблицы (или вкладка Параметры, в зависимости от версии Excel) > Вставить срез.
  • Отметьте нужное поле (например, Категория) и нажмите OK. Срез появится на листе и позволит пользователям визуально фильтровать.
  • Чтобы связать один срез с несколькими сводными таблицами, щелкните правой кнопкой мыши по срезу, выберите Подключения отчетов (или Подключения сводной таблицы), и отметьте все сводные таблицы, которые вы хотите синхронизировать.
    Это особенно мощно для сценариев дашборда, где различные визуализации реагируют вместе на фильтры пользователей.

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

Устранение неполадок: Если срез не подключается к нескольким сводным таблицам, убедитесь, что все таблицы построены из одного кэша/источника данных. Опция Подключения отчетов появляется только в том случае, если таблицы совместимы.

Резюме рекомендаций: При выборе оптимального метода для связи фильтров сводной таблицы со значениями ячеек или создания интерактивных дашбордов учтите необходимый уровень автоматизации, ограничения версии Excel и разрешено ли использование VBA/макросов в вашей среде. Для базовых потребностей срезы и формулы (GETPIVOTDATA) обеспечивают быстрые и надежные результаты. Для продвинутой автоматизации решение с VBA предоставляет больший контроль. Всегда проверяйте, что названия полей и элементы фильтра используются последовательно для точных результатов. Если возникают ошибки, проверьте значения ввода ячейки и убедитесь, что все имена точно совпадают между кодом, формулами и набором данных.


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

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

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: 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.

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