Оглавление
Сегодня я покажу, как создать динамический список на основе одного или нескольких критериев в 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 и высказывайте свои предложения в поле для комментариев.