Как создать динамический список в Excel на основе критериев (3 способа)

  • Поделись Этим
Hugh West

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

Скачать Практическое пособие

Динамический список на основе критериев.xlsx

Что такое динамический список в Excel?

Динамический список - это список, который создается на основе набора данных и автоматически обновляется при изменении любого значения в исходном наборе данных или при добавлении новых значений в исходный набор данных.

На данном изображении представлен список имен всех студентов, получивших оценки больше, чем 60 на экзамене.

Теперь, если вы измените знаки Дженнифер Марло с 68 на 58 , и добавить нового студента по имени Росс Смит с оценками 81 в таблице, список будет корректироваться автоматически.

Это называется динамическим списком.

3 способа создания динамического списка в Excel на основе критериев

Здесь у нас есть набор данных с параметрами Студенческие билеты, Имена, и Маркс некоторых учеников в школе под названием детский сад "Подсолнух".

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

1. использование функций FILTER и OFFSET (для новых версий Excel)

Прежде всего, мы будем использовать комбинацию из ФИЛЬТР , OFFSET и COUNTA функции Excel.

Сайт ФИЛЬТР функция доступна в Office 365 только. Так что это только для тех, у кого есть Office 365 подписка.

Случай 1: На основе одного критерия

Попробуем составить динамический список студентов, чьи средние оценки больше или равны 60 .

Вы можете использовать эту формулу:

=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)

Как вы можете видеть, мы получили список всех студентов, которые получили больше, чем 60 .

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

Список будет корректироваться автоматически.

Объяснение формулы:

  • COUNTA(C:C) возвращает количество строк в столбце C, которые не являются пустыми. Таким образом COUNTA(C:C)-1 возвращает количество строк, в которых есть значения без знака Заголовок колонки ( Имя студента в данном примере).
  • Если у вас нет Заголовок колонки , используйте COUNTA(C:C)
  • СМЕЩЕНИЕ(C5,0,0,COUNTA(C:C)-1,1) начинается с клетки C5 (Имя первого студента) и возвращает диапазон имен всех студентов.
  • Сайт OFFSET функция в сочетании с Функция COUNTIF используется для поддержания динамичности формулы. Если в набор данных добавляется еще один студент, то COUNTA(C:C)-1 формула увеличится на 1 и OFFSET функция будет включать студента.
  • Аналогично, OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60 возвращает TRUE для всех оценок, которые больше или равны 60 .
  • Наконец-то, FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60) возвращает список всех студентов, получивших оценки больше, чем 60 .
  • Если в набор данных добавляется новый студент, COUNTA(C:C)-1 увеличивается на 1 , и ФИЛЬТР функция обновляет расчет, включая его.
  • Таким образом, формула всегда остается динамичной.

Примечание:

Если вы хотите получить оценки вместе с именами в списке, просто измените пятый аргумент первого аргумента OFFSET функция от 1 на 2 .

=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,2),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)

Пример 2: На основе нескольких критериев

На этот раз попробуем использовать несколько критериев.

Попробуем составить динамический список студентов, которые получили оценки больше или равные 60, но чьи ID меньше или равны 200 .

Вы можете использовать эту формулу:

=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))

Как видите, мы получили список всех студентов, которые получили оценки больше, чем 60 и иметь ID меньше, чем 200 .

И не нужно говорить, что это динамический список.

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

Объяснение формулы:

  • Здесь мы перемножили два динамических диапазона критериев, (OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
  • Если у вас есть более 2 критерии, умножьте все диапазоны критериев таким же образом.
  • Остальное аналогично предыдущему примеру (с одним критерием). OFFSET функция в сочетании с COUNTA функция была использована для поддержания динамичности формулы.

Примечание:

Если вы хотите увидеть все столбцы в списке ( Колонки B, C, и D в данном примере), измените первый аргумент первого OFFSET функция для первого столбца ( B5 в данном примере), а пятый аргумент - общее количество столбцов ( 3 в данном примере).

=FILTER(OFFSET(B5,0,0,COUNTA(C:C)-1,3),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*.

(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))

Подробнее: Excel создает динамический список из таблицы (3 простых способа)

2. Использование INDEX-MATCH с другими функциями (для старых версий)

Те, у кого нет Office 365 подписка не может использовать приведенную выше формулу.

Я показываю более сложный способ для тех, кто использует старую версию Excel, с помощью функции INDEX-MATCH, OFFSET, SMALL, IF, ROW, COUNTIF, и КОУНТИФЫ Обратите внимание, что эти формулы являются формулами массива. Поэтому, чтобы применить их в старых версиях Excel, вам нужно нажать кнопку Ctrl+Shift+Enter вместо простого Enter.

Случай 1: На основе одного критерия

Формула для создания динамического списка студентов, набравших больше или равно 60, будет иметь вид:

=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60,

OFFSET(D5,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIF(D:D,">=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1),1)

Как вы видите, мы снова получили имена всех студентов, которые получили больше или равно 60 .

На этот раз мы получили в порядке возрастания чисел.

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

Список будет корректироваться автоматически.

Объяснение формулы:

  • Здесь C:C это столбец, из которого мы хотим извлечь содержимое списка ( Имя студента в данном примере). Вы используете свой единственный.
  • D:D столбец, в котором находится критерий ( Средние баллы в данном примере). Вы используете свой единственный.
  • C5 и D5 это ячейки, с которых были начаты мои данные (чуть ниже Заголовки колонок ). Вы используете свой.
  • ">=60" является моим критерием (больше или равно 60 в данном примере). Вы используете свой единственный.
  • Кроме этих нескольких изменений, сохраните остальную часть формулы без изменений и используйте ее в своем наборе данных. Вы получите динамический список в соответствии с желаемым критерием.

Пример 2: На основе нескольких критериев

Сайт INDEX-MATCH Формула для динамического списка на основе нескольких критериев немного сложнее. Тем не менее, я показываю ее.

Формула для получения имен студентов, получивших оценки больше или равные 60 но есть ID меньше, чем 200 будет;

=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF((OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*.

(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200),OFFSET(D5,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIFS(B:B,"=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1),1)

Объяснение формулы:

  • Здесь C:C это столбец, из которого мы хотим извлечь содержимое списка ( Имя студента в данном примере). Вы используете свой единственный.
  • B:B и D:D столбцы, в которых лежат критерии ( Студенческий билет и Средние баллы в данном примере). Вы используете свой единственный.
  • B5, C5, и D5 это ячейки, с которых были начаты мои данные (чуть ниже Заголовки колонок ). Вы используете свой один.
  • Здесь я умножил два критерия: (OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200) Если у вас более двух критериев, умножьте их соответственно.
  • Я снова использовал два критерия внутри этого КОУНТИФЫ функция: COUNTIFS(B:B,"=60") . Вы используете свои соответственно.
  • Сохраните остальную часть формулы без изменений и используйте ее в своем наборе данных. Вы получите динамический список с несколькими критериями.

Подробнее: Как создать динамический список проверки данных с помощью VBA в Excel

3. Создание динамического выпадающего списка на основе критериев с помощью инструмента проверки данных

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

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

  • Вы получите Валидация данных диалоговое окно. Разрешить Опция, выберите Список . И под Источник введите ссылку на первую ячейку, в которой находится список в вашем рабочем листе, вместе с символом HashTag (#) ( $E$5# в данном примере).

  • Затем нажмите OK В выбранной ячейке появится выпадающий список, как показано ниже.

Подробнее: Как создать динамический выпадающий список с помощью VBA в Excel

Как создать динамический уникальный список в Excel на основе критериев

В этом разделе мы покажем, как создать уникальный список в Excel на основе критериев. Мы будем использовать сочетание UNIQUE и ФИЛЬТР функции. мы изменили набор данных и добавили любимые игры каждого студента. теперь мы хотим узнать название игр, удалив дубликаты с помощью критериев. критерии: средние оценки студентов должны быть больше, чем 60 .

📌 Шаги:

  • Подставьте формулу, основанную на сочетании UNIQUE и ФИЛЬТР функции на Ячейка G5 .
=UNIQUE(FILTER(E5:E25,(D5:D25>60)))

Мы получаем уникальный список, основанный на критериях.

Объяснение формулы:

  • FILTER(E5:E25,(D5:D25>60)

Это фильтрует значения Диапазон E5:E25 с условием, что средние оценки должны быть выше 60 .

Результат: [Теннис, Волейбол, Регби, Теннис, Футбол, Регби, Регби, Футбол].

  • UNIQUE(FILTER(E5:E25,(D5:D25>60)))

Это возвращает все уникальные значения из предыдущего результата.

Результат: [теннис, волейбол, регби, футбол]

Заключение

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

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