Преглед садржаја
Данас ћу показати како да направите динамичку листу на основу једног или више критеријума у Екцел-у.
Преузмите радну свеску за вежбу
Динамичка листа заснована на Цритериа.клск
Шта је динамичка листа у Екцел-у?
Динамичка листа је листа која се креира из скупа података и аутоматски се ажурира када се било која вредност у оригиналном скупу података промени или се нове вредности додају оригиналном скупу података.
На датој слици имамо списак имена свих ученика који су на испиту добили оцене веће од 60 .
Сада ако промените оцене Џенифер Марло са 68 на 58 и додате новог ученика по имену Рос Смит са оценама 81 у табели, листа ће аутоматски се прилагођава.
Ово се зове динамичка листа.
3 начина за креирање динамичке листе у Екцел-у на основу критеријума
Овде имамо скуп података са Ученичким ИД-овима, Именима, и Оценама неких ученика у школи која се зове Сунфловер киндергартен.
Наш циљ данас је да направимо динамичку листу на основу критеријума из овог скупа података. Данас ћемо користити и један и више критеријума.
1. Коришћење функција ФИЛТЕР и ОФФСЕТ (за нове верзије Екцел-а)
Пре свега, користићемо комбинацију ФИЛТЕР , ОФФСЕТ и ЦОУНТА функције Екцел-а.
Функција ФИЛТЕР доступан је само у Оффице 365 . Дакле, ово је само за оне који имају претплату на Оффице 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)
враћа број редова у колони Ц који нису празни. Дакле,COUNTA(C:C)-1
враћа број редова који имају вредности без Заглавља колоне ( Име ученика у овом примеру). - Ако не ако имате Заглавље колоне , користите
COUNTA(C:C)
-
OFFSET(C5,0,0,COUNTA(C:C)-1,1)
почиње од ћелије Ц5 (име првог ученика) и враћа опсег имена свих ученика. - Функција ОФФСЕТ у комбинацији са функцијом ЦОУНТИФ је коришћена да се формула задржи динамичком. Ако се у скуп података дода још један ученик, формула
COUNTA(C:C)-1
ће се повећати за 1 и функција ОФФСЕТ ће укључити ученика. - Слично,
OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60
враћа ТРУЕ за све ознаке које су веће или једнаке 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 , а функција ФИЛТЕР освежава прорачун укључујући и њега. - Овако формула увек остаје динамична.
Напомена:
Ако желите да добијете ознаке заједно са именима на листи, само промените пети аргумент прва функција ОФФСЕТ од 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 и имају ИД је мањи од 200 .
И нема потребе да кажете, ово је динамичка листа.
Ако промените било коју вредност или додате новог ученика у скуп података, листа ће се аутоматски прилагодити.
Објашњење формуле:
- Овде смо помножили два динамичка опсега критеријума,
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
- Ако имате више од 2 критеријума, помножите све опсеге критеријума на исти начин.
- Остало је исто као у претходном примеру (појединачних критеријума).Функција ОФФСЕТ у комбинацији са функцијом ЦОУНТА је коришћена за одржавање динамичке формуле.
Напомена:
Ако желите да видите све колоне на листи ( Колоне Б, Ц, и Д у овом примеру), промените први аргумент првог ОФФСЕТ на прву колону ( Б5 у овом примеру), а пети аргумент на укупан број колона ( 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))
Прочитајте више: Екцел Креирај Динамиц Листа из табеле (3 лака начина)
2. Коришћење ИНДЕКС-МАТЦХ са другим функцијама (за старе верзије)
Они који немају Оффице 365 претплата не може да користи горњу формулу.
Показујем сложенији начин за оне који користе старију верзију Екцел-а, користећи ИНДЕКС-МАТЦХ, ОФФСЕТ, СМАЛЛ, ИФ, РОВ, ЦОУНТИФ, и ЦОУНТИФС функције Екцел-а. Имајте на уму да су ове формуле формуле низа. Дакле, да бисте их применили у старијим верзијама Екцел-а, морате да притиснете Цтрл+Схифт+Ентер уместо само Ентер.
Случај 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 .
Овог пута смо ушли у успонредослед бројева.
И да, листа је динамична. Додајте новог ученика у скуп података или промените оцене било ког ученика у скупу података.
Листа ће се аутоматски прилагодити.
Објашњење Формула:
- Овде Ц:Ц је колона из које желимо да издвојимо садржај листе ( Име ученика у овом пример). Ви користите своју.
- Д:Д је колона у којој се крије критеријум ( Просечне оцене у овом примеру). Ви користите своју.
- Ц5 и Д5 су ћелије одакле су започети моји подаци (одмах испод Заглавља колона ). Користите свој.
- “&гт;=60” је мој критеријум (веће или једнако 60 у овом примеру). Ви користите своју.
- Осим ових неколико измена, оставите остатак формуле непромењеним и користите је у свом скупу података. Добићете динамичку листу у складу са вашим жељеним критеријумом.
Случај 2: На основу више критеријума
Тхе ИНДЕКС-МАТЦХ формула за динамичку листу засновану на више критеријума је мало сложенија. Ипак, показујем је.
Формула за добијање имена ученика који су добили оцене веће или једнаке 60 , али имају ИД мање од 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)
Објашњење формуле:
- Овде Ц:Ц је колона из које желимо доиздвојити садржај листе ( Име ученика у овом примеру). Ви користите своју.
- Б:Б и Д:Д су колоне у којима се налазе критеријуми ( ИД ученика и Просечне оцене у овом примеру). Ви користите своју.
- Б5, Ц5, и Д5 су ћелије одакле су започети моји подаци (одмах испод Заглавља колона ). Користите свој.
- Овде сам помножио два критеријума:
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
.Ако имате више од два критеријума, помножите у складу са тим. - Поново сам користио два критеријума унутар ове функције ЦОУНТИФС :
COUNTIFS(B:B,"=60")
. Користите своје у складу са тим. - Оставите остатак формуле непромењеним и користите је у свом скупу података. Добићете динамичку листу са више критеријума.
Прочитајте више: Како да направите листу за динамичку проверу ваљаности података користећи ВБА у Екцел-у
3 . Креирајте динамичку падајућу листу на основу критеријума користећи алатку за проверу ваљаности података
Сада смо направили динамичку листу. Ако желите, можете направити динамичку падајућу листу у било којој ћелији радног листа.
- Да бисте креирали динамичку падајућу листу, изаберите било коју ћелију на радном листу и идите на Подаци &гт; Валидација података &гт; Валидација података у одељку Алати за податке .
- Добићете Проверу ваљаности података оквир за дијалог. У оквиру опције Дозволи изаберите Листа . А под опцијом Извор ,унесите референцу прве ћелије у којој се налази листа на вашем радном листу заједно са ХасхТаг (#) ( $Е$5# у овом примеру).
- Затим кликните на ОК . Добићете падајућу листу у одабраној ћелији овако.
Прочитајте више: Како да направите динамичку падајућу листу користећи ВБА у Екцел-у
Како да креирате динамичку јединствену листу у Екцел-у на основу критеријума
У овом одељку ћемо показати како да направите јединствену листу у Екцел-у на основу критеријума. Користићемо комбинацију функција УНИКУЕ и ФИЛТЕР . Изменили смо скуп података и додали омиљене игре сваког ученика. Сада желите да знате назив игара које уклањају дупликате са критеријумима. Критеријуми су да просечне оцене ученика морају бити веће од 60 .
📌 Кораци:
- Ставите формулу засновану на комбинацији функција УНИКУЕ и ФИЛТЕР на ћелију Г5 .
=UNIQUE(FILTER(E5:E25,(D5:D25>60)))
Добијамо јединствену листу на основу критеријума.
Објашњење Формула:
- ФИЛТЕР(Е5:Е25,(Д5:Д25&гт;60)
Ово филтрира вредности Распон Е5:Е25 , уз услов да просечне оцене морају бити изнад 60 .
Резултат: [тенис, одбојка, рагби, тенис, фудбал, рагби, Рагби, фудбал]
- УНИКУЕ(ФИЛТЕР(Е5:Е25,(Д5:Д25&гт;60)))
Ово враћа све јединственовредности из претходног резултата.
Резултат: [тенис, одбојка, рагби, фудбал]
Закључак
Коришћење ових методама, можете креирати динамичку листу на основу једног или више критеријума у било ком скупу података у програму Екцел. Погледајте нашу веб страницу ЕкцелВИКИ и дајте своје предлоге у пољу за коментаре.