Съдържание
Днес ще ви покажа как да създадете динамичен списък въз основа на един или няколко критерия в 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, но чиито идентификатори са по-малки или равни на 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, и COUNTIFS Имайте предвид, че тези формули са формули от масив. За да ги приложите в по-стари версии на 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)
Както виждате, отново сме получили имената на всички ученици, които са получили повече или равно на 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)
Обяснение на формулата:
- Тук 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 функция:
COUNTIFS(B:B,"=60")
. Използвайте своите съответно. - Запазете останалата част от формулата непроменена и я използвайте в набора си от данни. Ще получите динамичен списък с множество критерии.
Прочетете още: Как да създадете динамичен списък за валидиране на данни с помощта на VBA в Excel
3. Създаване на динамичен падащ списък въз основа на критерии с помощта на инструмент за валидиране на данни
Сега създадохме динамичния списък. Ако искате, можете да създаване на динамичен падащ списък в която и да е клетка на работния лист.
- За да създадете динамичния падащ списък, изберете която и да е клетка в работния лист и отидете на Данни> Удостоверяване на данни> Удостоверяване на данни под Инструменти за данни раздел.
- Ще получите Утвърждаване на данните Диалогов прозорец. Под Позволете Опция, изберете Списък . И под Източник: въведете препратката към първата клетка, в която се намира списъкът в работния лист, както и HashTag (#) ( $E$5# в този пример).
- След това щракнете върху ОК . Ще получите падащ списък в избраната клетка, както следва.
Прочетете още: Как да създадете динамичен падащ списък с помощта на VBA в Excel
Как да създадете динамичен уникален списък в Excel въз основа на критерии
В този раздел ще покажем как да създадем уникален списък в Excel въз основа на критерии. Ще използваме комбинация от УНИКАЛЕН и ФИЛТЪР Функции. Променихме набора от данни и добавихме любимите игри на всеки ученик. Сега искаме да знаем името на игрите, като премахнем дубликатите с помощта на критерии. Критериите са средните оценки на учениците да са по-големи от 60 .
📌 Стъпки:
- Поставете формулата въз основа на комбинацията от УНИКАЛЕН и ФИЛТЪР функции върху Клетка 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 и дайте своите предложения в полето за коментари.