Как да създадете динамичен списък в 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, но чиито идентификатори са по-малки или равни на 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 и дайте своите предложения в полето за коментари.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.