Excel как обновить фильтр

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

doc auot обновить фильтр 1

Автоматически повторно применять автофильтр при изменении данных с помощью кода VBA


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

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

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

2. Щелкните правой кнопкой мыши вкладку листа и выберите Просмотреть код из контекстного меню во всплывающем Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код в пустое окно модуля, см. снимок экрана:

Код VBA: автоматическое повторное применение фильтра при изменении данных:

Private Sub Worksheet_Change(ByVal Target As Range)
   Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

doc auot обновить фильтр 2

Внимание: В приведенном выше коде Лист 3 — это имя листа с автоматическим фильтром, который вы используете, измените его по своему усмотрению.

3. А затем сохраните и закройте это окно кода, теперь, когда вы меняете отфильтрованные данные, Фильтр функция будет автоматически обновлена ​​сразу, см. снимок экрана:

doc auot обновить фильтр 3


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

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

офисный дно

Комментарии (36)


Номинальный 5 из 5


·


рейтинги 1

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel для Mac 2011 Еще…Меньше

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

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

В этой статье

  • Подробнее о повторном повторном повторном фильтрации и сортировке

  • Повторное повторное фильтрация или сортировка

  • Очистка фильтра для столбца

  • Очистка всех фильтров и повторная отрисовка всех строк

Подробнее о повторном повторном повторном фильтрации и сортировке

Чтобы определить, применяется ли фильтр, обратите внимание на значок в заголовке столбца:

  • Стрелка вниз Стрелка раскрывающегося списка фильтра означает, что фильтрация включена, но фильтр не применяется.

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

  • Кнопка Фильтр Значок примененного фильтра означает, что фильтр применяется.

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

При повторном анализе фильтра или сортировки отображаются разные результаты по следующим причинам:

  • Данные были добавлены, изменены или удалены из диапазона ячеек или столбца таблицы.

  • Фильтр является динамическим фильтром даты и времени, таким как «Сегодня»,«Наэтой неделе» или «Год к дате».

  • значения, возвращаемые формулой, изменились, и лист был пересчитан.

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

К началу страницы

Повторное повторное фильтрация или сортировка

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

  • Чтобы повторно отфильтровать или отсортировать фильтр, на вкладке Главная в группе Редактирование нажмите кнопку Сортировка & фильтри выберите повторно.

К началу страницы

Очистка фильтра для столбца

  • Чтобы очистить фильтр для одного столбца в многостороном диапазоне ячеек или таблицы, нажмите кнопку Фильтр Значок примененного фильтра заголовке и выберите очистить фильтр из <имя столбца>.

    Примечание: Если фильтр в данный момент не применен, эта команда недоступна.

К началу страницы

Очистка всех фильтров и повторная отрисовка всех строк

  • На вкладке Главная в группе Редактирование нажмите кнопку Сортировка & фильтри выберите очистить.

    Изображение ленты Excel

К началу страницы

См. также

  • Фильтрация данных в диапазоне или таблице

  • Сортировка данных в диапазоне или таблице

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

Содержание

  1. Повторное повторное фильтрация и сортировка или очистка фильтра
  2. В этой статье
  3. Подробнее о повторном повторном повторном фильтрации и сортировке
  4. Повторное повторное фильтрация или сортировка
  5. Очистка фильтра для столбца
  6. Очистка всех фильтров и повторная отрисовка всех строк
  7. Как автоматически обновить автофильтр Excel при изменении данных?
  8. 6 ответов 6
  9. Использование расширенных условий фильтрации
  10. Обзор расширенных условий фильтра
  11. Образец данных
  12. Операторы сравнения
  13. Использование знака равенства для ввода текста или значения
  14. Учет регистра
  15. Использование заранее определенных имен
  16. Создание условий с помощью формулы
  17. Несколько условий, один столбец, любое из условий истинно
  18. Несколько условий, несколько столбцов, все условия истинны
  19. Несколько условий, несколько столбцов, любое из условий истинно
  20. Несколько наборов условий, один столбец во всех наборах
  21. Несколько наборов условий, несколько столбцов в каждом наборе
  22. Условия с подстановочными знаками

Повторное повторное фильтрация и сортировка или очистка фильтра

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

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

В этой статье

Подробнее о повторном повторном повторном фильтрации и сортировке

Чтобы определить, применяется ли фильтр, обратите внимание на значок в заголовке столбца:

Стрелка вниз означает, что фильтрация включена, но фильтр не применяется.

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

Кнопка Фильтр означает, что фильтр применяется.

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

При повторном анализе фильтра или сортировки отображаются разные результаты по следующим причинам:

Данные были добавлены, изменены или удалены из диапазона ячеек или столбца таблицы.

Фильтр является динамическим фильтром даты и времени, таким как «Сегодня», «Наэтой неделе» или «Год к дате».

значения, возвращаемые формулой, изменились, и лист был пересчитан.

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

Повторное повторное фильтрация или сортировка

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

Чтобы повторно отфильтровать или отсортировать фильтр, на вкладке Главная в группе Редактирование нажмите кнопку Сортировка & фильтри выберите повторно.

Очистка фильтра для столбца

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

Примечание: Если фильтр в данный момент не применен, эта команда недоступна.

Очистка всех фильтров и повторная отрисовка всех строк

На вкладке Главная в группе Редактирование нажмите кнопку Сортировка & фильтри выберите очистить.

Источник

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

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

Вариант использования: я изменяю значение одной ячейки на значение, которое было отфильтровано. Я хочу, чтобы текущая строка исчезла без необходимости делать что-либо еще.

6 ответов 6

Обмен кода с этим, похоже, тоже помогает (по крайней мере, в Excel 2010):

Я обнаружил, что когда я работал с таблицами, это не сработало. Фильтр был не на листе, а на столе. этот код добился цели

Я также использую VBA/Macro на основе события Worksheet_Change , но мой подход немного отличается . Хорошо, сначала код, а затем объяснения:

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

В моем примере я предполагаю иметь простой фильтр для одного столбца (L в моем случае), и что мой диапазон данных находится в строках от 1 (даже если он может содержать заголовок) до 126 (выберите число, достаточно большое, чтобы конечно). Операция проста: когда что-то меняется на моем листе, фильтр в указанном диапазоне снова удаляется / повторно применяется, чтобы его обновить. Что нужно немного объяснить здесь, это поле и критерии.

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

Критерии — это строка, описывающая фильтр, применяемый к диапазону данных. В моем примере я хочу показать только те строки, где столбец L отличается от 0 (поэтому я использовал «<> 0»).

Это все. Для получения дополнительной информации о диапазоне.Метод автофильтрации: см. Https://msdn.microsoft.com/en-us/library/office/ff193884.aspx.

Щелкните правой кнопкой мыши на имени вашего листа, выберите «Просмотр кода» и вставьте код ниже. После вставки щелкните значок Excel под «Файл» в левом верхнем углу или введите Alt-F11, чтобы вернуться к представлению электронной таблицы.

Это включит автообновление. Не забудьте сохранить файл в формате с поддержкой макросов lie .xlsm .

Просто чтобы закрепить ответ (ы):

Щелкните правой кнопкой мыши на имени вашего листа, выберите «Просмотр кода» и вставьте код ниже. После вставки щелкните значок Excel под «Файл» в левом верхнем углу или введите Alt-F11, чтобы вернуться к представлению электронной таблицы.

Это включит автообновление. Не забудьте сохранить файл в формате с поддержкой макросов lie .xlsm.

И Крис использовал этот код (который я только что сделал в 2010 году):

Если вы не расширите сообщение, вы увидите только длинный ответ! 😉

Извините, недостаточно комментариев для комментирования. (Администраторы, не стесняйтесь вырезать это в комментарии выше.) Ответ пользователя «danicotra», начинающийся с «Я использую VBA/Macro на основе события Worksheet_Change, но мой подход . » с
‘сначала удалите фильтр
затем примените его снова
является правильным решением при использовании Excel 2007+. Тем не мение .Автофильтр.ApplyFilter недействителен в XL03 и ранее, поэтому я покажу путь ниже.

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

Даникотра использовал упрощенный пример. На самом деле, вы можете сделать это в более общем плане. Предположим, с ActiveSheet для следующего (или некоторого другого объекта листа):

Сохраните диапазон автофильтра. Она имеет .Автофильтр.Фильтры.Подсчитать столбцы и (.Автофильтр.Спектр.Граф /.Автофильтр.Фильтры.Количество) строк, сохраненных в rngAutofilter

Соберите в массив myAutofilters каждое из 4 свойств каждого из.Автофильтр.Фильтры.Подсчитайте элементы автофильтра, стараясь при этом избежать ошибок, определенных приложением.На или.Оператор ложный. (myAutofilters будет reDim’d на количество строк и столбцов в шаге 1)

Выключите фильтр, но сохраните раскрывающиеся списки с помощью.ShowAllData

Для каждого элемента фильтра, который был.В соответствии с сохраненным массивом сбросьте 3 из 4 свойств каждого из.Автофильтр.Фильтры.Подсчитать элементы автофильтра. Снова позаботьтесь о том, чтобы избежать «ошибок, определенных приложением», когда.Оператор ложный, поэтому для каждого элемента «я»,
rngAutofilter.Поле автофильтра:= i, критерии1:= myAutofilters (i, 2)
или же
rngAutofilter.Поле автофильтра:= i, критерии1:= myAutofilters (i, 2), оператор:= myAutofilters (i, 3), критерии2:= myAutofilters (i, 4)

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

Источник

Использование расширенных условий фильтрации

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

Чтобы открыть диалоговое окно Расширенный фильтр, щелкните Данные > Дополнительно.

Продавец = «Егоров» ИЛИ Продавец = «Грачев»

Тип = «Фрукты» И Продажи > 1000

Тип = «Фрукты» ИЛИ Продавец = «Грачев»

(Продажи > 6000 И Продажи 3000) ИЛИ
(Продавец = «Грачев» И Продажи > 1500)

Продавец = имя со второй буквой «г»

Обзор расширенных условий фильтра

Действие команды Дополнительно отличается от действия команды Фильтр в некоторых важных аспектах.

Она отображает диалоговое окно Расширенный фильтр, а не меню «Автофильтр».

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

Образец данных

Этот пример данных используется для всех процедур, описанных в этой статье.

Эти данные включают четыре пустые строки над диапазоном списка, которые будут использоваться как диапазон условий (A1:C4) и диапазон списка (A6:C10). Диапазон условий содержит названия столбцов и по крайней мере одну пустую строку между значениями условий и диапазоном списка.

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

Операторы сравнения

Операторы сравнения используются для сравнения двух значений. Результатом сравнения является логическое значение: ИСТИНА либо ЛОЖЬ.

= (знак «больше или равно»)

Больше или равно

Использование знака равенства для ввода текста или значения

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

где ввод — искомый текст или значение. Например:

Вводится в ячейку

Вычисляется и отображается

Учет регистра

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

Использование заранее определенных имен

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

Создание условий с помощью формулы

В качестве условия можно использовать значение, вычисленное с помощью формулы. Обратите внимание на важные моменты, указанные ниже.

Формула должна возвращать результат ИСТИНА или ЛОЖЬ.

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

Не используйте название столбца в качестве названия условия. Либо оставьте название условия пустым, либо используйте название, не являющееся названием столбца в диапазоне списка (в последующих примерах: «Среднее арифметическое» и «Точное совпадение»).

Если в формуле используется название столбца, а не относительная ссылка на ячейку или имя диапазона, в ячейке с условием будет выведено значение ошибки #ИМЯ? или #ЗНАЧ!. Эту ошибку можно проигнорировать, поскольку она не влияет на фильтрацию диапазона списка.

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

Все остальные ссылки в формуле должны быть абсолютными.

Несколько условий, один столбец, любое из условий истинно

Логическое выражение: (Продавец = «Егоров» ИЛИ Продавец = «Грачев»)

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

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

Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне A6:C10.

На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.

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

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

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

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

В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$3.

Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .

Используя пример, получаем следующий отфильтрованный результат для диапазона списка:

Несколько условий, несколько столбцов, все условия истинны

Логическое выражение: (Тип = «Фрукты» И Продажи > 1000)

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

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

Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне A6:C10.

На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.

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

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

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

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

В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$2.

Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .

Используя пример, получаем следующий отфильтрованный результат для диапазона списка:

Несколько условий, несколько столбцов, любое из условий истинно

Логическое выражение: (Тип = «Фрукты» ИЛИ Продавец = «Грачев»)

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

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

Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.

На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.

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

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

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

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

В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$B$3.

Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .

Используя пример, получаем следующий отфильтрованный результат для диапазона списка:

Несколько наборов условий, один столбец во всех наборах

Логическое выражение: ( (Продажи > 6000 И Продажи

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

Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.

На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.

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

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

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

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

В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$D$3.

Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .

Используя пример, получаем следующий отфильтрованный результат для диапазона списка:

Несколько наборов условий, несколько столбцов в каждом наборе

Логическое выражение: ( (Продавец = «Егоров» И Продажи > 3000) ИЛИ (Продавец = «Грачев» И Продажи > 1500) )

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

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

Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.

На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.

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

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

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

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

В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$3. Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .

Используя пример, получим следующий отфильтрованный результат для диапазона списка:

Условия с подстановочными знаками

Логическое выражение: Продавец = имя со второй буквой «г»

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

Чтобы найти строки, в которых текстовое значение в столбце начинается с определенной последовательности знаков, введите эти знаки, не используя знак равенства ( =). Например, если ввести условие Бел, будут найдены строки с ячейками, содержащими слова «Белов», «Беляков» и «Белугин».

Воспользуйтесь подстановочными знаками.

Любой символ (один)
Пример: условию «стро?а» соответствуют результаты «строфа» и «строка»

Любое количество символов
Пример: условию «*-восток» соответствуют результаты «северо-восток» и «юго-восток»

(тильда), за которой следует ?, * или

Вопросительный знак, звездочку или тильду
Пример: условию «ан91

?» соответствует результат «ан91?»

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

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

Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.

На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.

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

Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте

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

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

В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$B$3.

Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .

Используя пример, получаем следующий отфильтрованный результат для диапазона списка:

Источник

Извините, недостаточно комментариев для комментирования. (Администраторы, не стесняйтесь вырезать это в комментарии выше.) Ответ пользователя «danicotra», начинающийся с «Я использую VBA/Macro на основе события Worksheet_Change, но мой подход …» с
‘сначала удалите фильтр
затем примените его снова
является правильным решением при использовании Excel 2007+. Тем не мение .Автофильтр.ApplyFilter недействителен в XL03 и ранее, поэтому я покажу путь ниже.

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

Даникотра использовал упрощенный пример. На самом деле, вы можете сделать это в более общем плане. Предположим, с ActiveSheet для следующего (или некоторого другого объекта листа):

  1. Сохраните диапазон автофильтра. Она имеет .Автофильтр.Фильтры.Подсчитать столбцы и (.Автофильтр.Спектр.Граф /.Автофильтр.Фильтры.Количество) строк, сохраненных в rngAutofilter

  2. Соберите в массив myAutofilters каждое из 4 свойств каждого из.Автофильтр.Фильтры.Подсчитайте элементы автофильтра, стараясь при этом избежать ошибок, определенных приложением.На или.Оператор ложный. (myAutofilters будет reDim’d на количество строк и столбцов в шаге 1)

  3. Выключите фильтр, но сохраните раскрывающиеся списки с помощью.ShowAllData

  4. Для каждого элемента фильтра, который был.В соответствии с сохраненным массивом сбросьте 3 из 4 свойств каждого из.Автофильтр.Фильтры.Подсчитать элементы автофильтра. Снова позаботьтесь о том, чтобы избежать «ошибок, определенных приложением», когда.Оператор ложный, поэтому для каждого элемента «я»,
    rngAutofilter.Поле автофильтра:= i, критерии1:= myAutofilters (i, 2)
    или же
    rngAutofilter.Поле автофильтра:= i, критерии1:= myAutofilters (i, 2), оператор:= myAutofilters (i, 3), критерии2:= myAutofilters (i, 4)

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

Public myAutofilters As Variant, rngAutofilter As Range 'Public
Sub SaveAndRestoreAutofilters()
  'This will update the autofilter display to recognize data changes by turning autofilter off and then on, preserving all characteristics
  'Note, XL2007 and later have .autofilter.applyfilter, but not the invaluable XL03 and earlier
  Dim i As Long, iNumAutofilters As Long, iNumActiveAutofilters As Long
  iNumActiveAutofilters = SaveAutoFilterInfo(iNumAutofilters) 'NOTE! Use CALL or assignment to prevent parentheses from forcing ByVal !
  If iNumActiveAutofilters < 1 Then
      Application.StatusBar = "0 ACTIVE filters;" & iNumAutofilters & " autofilters"
      Exit Sub
  End If
  ActiveSheet.ShowAllData

  Rem Here optionally do stuff which can include changing data or toggling autofilter columns

  For i = 1 To iNumAutofilters
      If myAutofilters(i, 1) Then
          If myAutofilters(i, 3) <> 0 Then 'then .Operator is something, so set it and Criteria2, else just Criteria1
              rngAutofilter.AutoFilter Field:=i, Criteria1:=myAutofilters(i, 2), Operator:=myAutofilters(i, 3), Criteria2:=myAutofilters(i, 4) ', On:=true by rule
          Else
              rngAutofilter.AutoFilter Field:=i, Criteria1:=myAutofilters(i, 2) ', On:=true by rule (it's R/O anyway)
          End If
          Rem Selection.AutoFilter Field:=i 'How you'd "turn off" only a single column's autofiltering. FYI .On is R/O!
      End If
      'activesheet.autofiltermode=false 'just FYI, how you comprehensively turn off filtering on a sheet (erasing the dropdowns and criteria and filter range!)
  Next i
End Sub
Function SaveAutoFilterInfo(iNumAutofilters As Long) As Long
  Dim i As Long, iRowsAutofiltered As Long
  SaveAutoFilterInfo = 0 'counts the number that are .On, and returns the total
  iNumAutofilters = ActiveSheet.AutoFilter.Range.Columns.Count
  If ActiveSheet.AutoFilter.Filters.Count <> iNumAutofilters Then MsgBox "I can't explain this. All bets are off. Aborting.": Exit function
  ReDim myAutofilters(1 To iNumAutofilters, 4)
  For i = 1 To iNumAutofilters
      myAutofilters(i, 1) = ActiveSheet.AutoFilter.Filters(i).On
      If myAutofilters(i, 1) Then
          SaveAutoFilterInfo = SaveAutoFilterInfo + 1
          myAutofilters(i, 2) = ActiveSheet.AutoFilter.Filters(i).Criteria1
          myAutofilters(i, 3) = ActiveSheet.AutoFilter.Filters(i).Operator
          If myAutofilters(i, 3) <> 0 Then 'then is either xlAnd, xlOr, etc., and there's a second criteria
              myAutofilters(i, 4) = ActiveSheet.AutoFilter.Filters(i).Criteria2
          End If
      End If
  Next i
  iRowsAutofiltered = ActiveSheet.AutoFilter.Range.Count / ActiveSheet.AutoFilter.Range.Columns.Count
  Set rngAutofilter = Cells(ActiveSheet.AutoFilter.Range.Row, ActiveSheet.AutoFilter.Range.Column).Resize(iRowsAutofiltered, iNumAutofilters)
End Function

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

Вам нужно будет включить макросы и сохранить файл Excel как файл с поддержкой макросов, .XLSM, чтобы использовать код. Чтобы сохранить файл как файл с поддержкой макросов, выберите «Файл»> «Сохранить как» и выберите «Книга с поддержкой макросов Excel» в диалоговом окне «Сохранить как».

Затем выберите лист, к которому вы применили фильтры. Щелкните его правой кнопкой мыши и выберите в контекстном меню «Просмотреть код».

Откроется окно Microsoft Visual Basic с текущим листом Excel. Вставьте следующий код в окно кода.

Private Sub Worksheet_Change(ByVal Target As Range)
If Me.FilterMode = True Then
With Application
.EnableEvents = False
.ScreenUpdating = False
End With

With ActiveWorkbook
.CustomViews.Add ViewName:="Mine", RowColSettings:=True
Me.AutoFilterMode = False
.CustomViews("Mine").Show
.CustomViews("Mine").Delete
End With
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End If

End Sub

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

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

Что вы думаете об этой статье?

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel как обновить значение ячейки
  • Excel как обновить запросы
  • Excel как обновить данные на листе
  • Excel как обновить выпадающий список
  • Excel как обновить все ячейки

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии