Содржина
Пред некое време почнавме да ги истражуваме можностите на Excel Data Validation и научивме како да креираме едноставна паѓачка листа во Excel врз основа на листа одвоена со запирки, опсег на ќелии или именуван опсег.
Денес, ќе ја истражиме оваа функција длабински и ќе научиме како да креираме каскадни паѓачки списоци што прикажуваат избори во зависност од вредноста избрана во првото паѓачко мени. Поинаку кажано, ќе направиме листа за валидација на податоци на Excel врз основа на вредноста на друга листа.
Како да креирате повеќекратно зависно паѓачко мени во Excel
Создавање мулти - паѓачките списоци зависни од ниво во Excel е лесно. Сè што ви треба е неколку именувани опсези и ИНДИРЕКТНА формула. Овој метод работи со сите верзии на Excel 365 - 2010 и порано.
1. Внесете ги записите за паѓачките списоци
Прво, внесете ги записите што сакате да се појавуваат во паѓачките списоци, секоја листа во посебна колона. На пример, создавам каскадно паѓачко мени на извозници на овошје и колоната А од мојот изворен лист ( Овошје ) ги вклучува ставките од првиот паѓачки список и 3 други колони ги наведуваат ставките за зависните паѓачки мени.
2. Креирајте именувани опсези
Сега треба да креирате имиња за вашата главна листа и за секоја од зависните списоци. Можете да го направите ова или со додавање ново име во прозорецот Управник со имиња ( Формули картичката > Управник со имиња > Ново) или со внесување назнак) и апсолутен ред (со $) референци како = Sheet2!B$1.
Како резултат на тоа, зависната паѓачка листа на B1 ќе се појави во ќелијата B2; паѓачкото мени на C1 зависно ќе се прикаже во C2, и така натаму.
И ако планирате да ги копирате паѓачките мени во други редови (т.е. колона), потоа користете апсолутна колона (со $) и релативен ред (без $) координати како = Sheet2!$B1.
За да копирате паѓачка ќелија во која било насока, користете релативна референца (без знакот $) како = Sheet2!B1.
2.3. Направете име за враќање на записите од зависното мени
Наместо да поставуваме уникатни имиња за секоја од зависните списоци како што направивме во претходниот пример, ќе создадеме една именувана формула која не е доделен на некоја одредена ќелија или опсег на ќелии. Ќе ја врати точната листа на записи за втората паѓачка листа во зависност од тоа кој избор е направен во првата паѓачка листа. Главната придобивка од користењето на оваа формула е тоа што нема да морате да креирате нови имиња додека додавате нови записи на првата паѓачка листа - една именувана формула ги опфаќа сите.
Креирате ново име на Excel со оваа формула:
=INDEX(exporters_tbl,,MATCH(fruit,fruit_list,0))
Каде:
-
exporters_tbl
- името на табелата (создадено во чекор 1); -
fruit
- името на ќелијата што ја содржи првата паѓачка листа (создадена во чекор 2.2); -
fruit_list
- името што упатува на редот за заглавие на табелата (создаден вочекор 2.1).
Јас му дадов име листа на извозници , како што гледате на екранот подолу.
Па , веќе го завршивте најголемиот дел од работата! Пред да стигнете до последниот чекор, можеби е добра идеја да го отворите Управникот со имиња ( Ctrl + F3 ) и да ги потврдите имињата и референците:
3. Поставете валидација на податоци во Excel
Ова е всушност најлесниот дел. Со двете именувани формули на место, ја поставувате валидацијата на податоците на вообичаен начин ( Податоци табот > Потврда на податоци ).
- За првиот паѓачката листа, во полето Извор, внесете =fruit_list (името создадено во чекор 2.1).
- За зависната паѓачка листа, внесете =извозници_листа (името создадено во чекор 2.3).
Готово! Вашето динамично каскадно паѓачко мени е завршено и автоматски ќе се ажурира како одраз на промените што сте ги направиле на изворната табела.
Ова динамично паѓачко мени на Excel, совршено во сите други погледи , има еден недостаток - ако колоните од вашата изворна табела содржат различен број на ставки, празните редови ќе се појават во вашето мени вака:
Исклучете ги празните редови од динамично каскадно паѓачко мени
Ако сакате да ги исчистите сите празни линии во вашите паѓачки полиња, ќе мора да направите чекор понатаму и да ја подобрите формулата ИНДЕКС / МАТЧ што се користи за креирање на зависната динамична паѓачка листа.
Идејата е да се користи2 INDEX функции, каде што првата ја добива горната лева ќелија, а втората ја враќа долната десна ќелија од опсегот или функцијата OFFSET со вгнездени INDEX и COUNTA. Деталните чекори следуваат подолу:
1. Создадете две дополнителни имиња
За да не ја направите формулата премногу гломазна, прво креирајте неколку помошни имиња со следниве едноставни формули:
- Име наречено col_num за повикување на избраниот број на колона:
=MATCH(fruit,fruit_list,0)
- Име наречено entire_col за повикување на избраната колона (не бројот на колоната, туку целата колона):
=INDEX(exporters_tbl,,col_num)
Во горенаведените формули, exporters_tbl
е името на вашата изворна табела, fruit
е името на ќелијата што го содржи првото паѓачко мени и fruit_list
е името што упатува на редот за заглавие на табелата.
2. Направете ја именуваната референца за зависната паѓачка листа
Следно, користете која било од долунаведените формули за да креирате ново име (да го наречеме извозници_листа2 ) што ќе се користи со зависната паѓачка листа:
=INDEX(exporters_tbl,1,col_num) : INDEX(exporters_tbl, COUNTA(entire_col), col_num)
=OFFSET(INDEX(exporters_tbl,1,col_num),0,0,COUNTA(entire_col))
3. Примени валидација на податоци
Конечно, изберете ја ќелијата што го содржи зависното паѓачко мени и примени валидација на податоци со внесување = exporters_list2 (името создадено во претходниот чекор) во Извор поле.
Сликата од екранот подолу го прикажува добиеното динамично паѓачко мени во Excel каде што се исчезнати сите празни линии!
Забелешка. Кога работите со динамични каскадни паѓачки списоцисоздадени со горенаведените формули, ништо не го спречува корисникот да ја промени вредноста во првото паѓачко мени откако ќе го направи изборот во второто мени, како резултат на тоа, изборите во примарното и секундарното паѓачко мени може да не се совпаѓаат. Можете да ги блокирате промените во првото поле откако ќе се направи избор во второто со користење на VBA или сложени формули предложени во ова упатство.
Вака креирате листа за валидација на податоци во Excel врз основа на вредностите на друга листа. Ве молиме, слободно преземете ги нашите примероци на работни книги за да ги видите каскадните паѓачки списоци во акција. Ви благодариме што прочитавте!
Вежбајте работна книга за преземање
Каскаден паѓачки примерок 1- лесна верзија
Каскаден паѓачки примерок 2 - напредна верзија без празни места
именувајте директно во Поле за име.
Забелешка. Обрнете внимание дека ако вашиот прв ред е еден вид заглавие на колона како што го гледате на сликата од екранот погоре, нема да го вклучите во именуваниот опсег.
За деталните инструкции чекор-по-чекор погледнете Како да дефинирате име во Excel.
Работи што треба да се запаметат:
- Ставките до се појавуваат во првата паѓачка листа мора да бидат записи со еден збор, на пр. Кајсија , Манго , Портокалови . Ако имате ставки што се состојат од два, три или повеќе зборови, видете Како да креирате каскадно паѓачко мени со записи од повеќе зборови.
- Имињата на зависните списоци мора да бидат потполно исти како соодветниот запис во главната листа. На пример, зависната листа што треба да се прикаже кога е избрано „ Mango “ од првата паѓачка листа треба да се именува Mango .
Кога ќе завршите , можеби ќе сакате да притиснете Ctrl+F3 за да го отворите прозорецот Управник со имиња и да проверите дали сите списоци имаат точни имиња и референци.
3 . Направете ја првата (главна) паѓачка листа
- Во истата или во друга табела, изберете ќелија или неколку ќелии во кои сакате да се појави вашата примарна паѓачка листа.
- Одете во јазичето Податоци , кликнете Валидација на податоци и поставете паѓачка листа врз основа на именуван опсег на вообичаен начин со избирање Список под Дозволи и внесување на името на опсегот воПолето Извор .
За деталните чекори, видете Правење паѓачка листа врз основа на именуван опсег.
Како резултат на тоа, ќе имате опаѓачко мени во вашиот работен лист слично на ова:
4. Направете зависна паѓачка листа
Изберете ќелија(и) за вашето зависно паѓачко мени и применете ја валидацијата на податоци на Excel повторно како што е опишано во претходниот чекор. Но, овој пат, наместо името на опсегот, ја внесувате следната формула во полето Извор :
=INDIRECT(A2)
Каде што A2 е ќелијата со вашата прва (примарна) паѓачка листа.
Ако ќелијата А2 моментално е празна, ќе ја добиете пораката за грешка „ Изворот моментално оценува на грешка. Дали сакате да продолжите ? "
Безбедно кликнете Да и штом изберете ставка од првото паѓачко мени, ќе ги видите записите што одговараат на него во второто, зависно , паѓачка листа.
5. Додајте трета зависна паѓачка листа (опционално)
Ако е потребно, можете да додадете трета каскадна паѓачка листа која зависи или од изборот во второто паѓачко мени или од селекциите во првото два паѓачки листа.
Поставете трето паѓачко мени кое зависи од 2-та листа
Можете да ја направите паѓачката листа од овој тип на ист начин како што штотуку направивме втор зависен паѓачки долу мени. Само запомнете ги 2-те важни работи дискутирани погоре, за кои се неопходниправилната работа на вашите каскадни паѓачки списоци.
На пример, ако сакате да прикажете листа на региони во колоната C во зависност од тоа која земја е избрана во колоната Б, креирате листа на региони за секој земја и именувајте ја по името на земјата, токму онака како што земјата се појавува во втората паѓачка листа. На пример, списокот на индиски региони треба да се именува како „Индија“, списокот на кинески региони - „Кина“ и така натаму.
Потоа, ќе изберете ќелија за третото паѓачко мени (C2 во нашата случај) и примени Excel Data Validation со следнава формула (B2 е ќелијата со второто паѓачко мени што содржи листа на земји):
=INDIRECT(B2)
Сега, секој пат кога ќе изберете Индија под списокот на земји во колоната Б, ќе ги имате следните избори во третото паѓачко мени:
Забелешка. Прикажаната листа на региони е единствена за секоја земја, но не зависи од изборот во првата паѓачка листа.
Создадете трето паѓачко мени зависно од првите две списоци
Ако треба да креирате каскадно паѓачко мени кое зависи од изборот и во првата и втората паѓачка листа, тогаш продолжете на овој начин :
- Креирајте дополнителни групи на именувани опсези и именувајте ги за комбинации на зборови во првите две паѓачки мени. На пример, имате Манго, портокали, итн. на првата листа и Индија, Бразил итн. на втората.Потоа креирате именувани опсези MangoIndia , MangoBrazil , OrangesIndia , OrangesBrazil , итн. Овие имиња не треба да содржат долни црти или други дополнителни знаци .
=INDIRECT(SUBSTITUTE(A2&B2," ",""))
Каде што A2 и B2 го содржат првото и второто паѓачко мени, соодветно.
Како резултат, вашиот 3-ти пад -списокот надолу ќе ги прикаже регионите што одговараат на Овошје и Земја избрани во првите 2 паѓачки списоци.
Ова е најлесниот начин да креирате каскадни паѓачки полиња во Excel. Сепак, овој метод има голем број ограничувања.
Ограничувања на овој пристап:
- Темите во вашата примарна паѓачка листа мора да бидат со еден збор записи. Погледнете како да креирате каскадни паѓачки списоци со записи со повеќе зборови.
- Овој метод нема да работи ако записите во вашата главна паѓачка листа содржат знаци кои не се дозволени во имињата на опсегот, како што е цртичката ( -), амперсанд (&), итн. Решението е да се создаде динамично каскадно паѓачко мени кое го нема ова ограничување.
- Опаѓачките менија создадени на овој начин не се ажурираат автоматски, односно ќе мора да промени ги именуваните опсези“референци секогаш кога додавате или отстранувате ставки во изворните листи. За да го надминете ова ограничување, обидете се да направите динамична каскадна паѓачка листа.
Креирајте каскадни паѓачки списоци со записи со повеќе зборови
ИНДИРЕКТ формули што ги користевме во примерот горе може да се справи само со ставки со еден збор. На пример, формулата =INDIRECT(A2) индиректно упатува на ќелијата A2 и го прикажува именуваниот опсег точно со истото име како што е во референцираната ќелија. Сепак, празните места не се дозволени во имињата на Excel, поради што оваа формула нема да работи со имиња со повеќе зборови.
Решението е да се користи функцијата INDIRECT во комбинација со SUBSTITUTE како што правевме кога креиравме трета паѓачко.
Да претпоставиме дека имаш лубеница меѓу производите. Во овој случај, ќе именувате листа на извозници на лубеница со еден збор без празни места - Лубеница .
Потоа, за вториот паѓачки список, примени Excel Data Validation со следнава формула која го отстранува празни места од името во ќелијата A2:
=INDIRECT(SUBSTITUTE(A2," ",""))
Како да спречите промени во примарната паѓачка листа
Замислете го следново сценарио . Вашиот корисник ги направил изборите во сите паѓачки списоци, потоа се предомислил, се вратил на првата листа и избрал друга ставка. Како резултат на тоа, првата и втората селекција не се совпаѓаат. За да спречите тоа да се случи, можеби ќе сакате да ги блокирате сите промени во првата капка-долу листа веднаш штом ќе се направи избор во втората листа.
За да го направите ова, при креирањето на првото паѓачко мени, користете специјална формула која ќе провери дали некој запис е избран во второто паѓачко мени:
=IF(B2="", Fruit, INDIRECT("FakeList"))
Онаму каде што B2 го содржи второто паѓачко мени, „ Овошје “ е името на листата што се појавува во првото паѓачко мени и „ FakeList " е секое лажно име што не постои.
Сега, ако било која ставка е избрана во втората паѓачка листа, нема да бидат достапни избори кога корисникот кликнува на стрелката веднаш до првата листа.
Креирање динамични каскадни паѓачки списоци во Excel
Главната предност на динамичната паѓачка листа зависна од Excel е тоа што можете слободно да уредете ги изворните листи и вашите паѓачки полиња ќе се ажурираат веднаш. Се разбира, создавањето динамични паѓачки мени бара малку повеќе време и посложени формули, но верувам дека ова е достојна инвестиција бидејќи штом ќе се постават, таквите паѓачки менија се вистинско задоволство да се работи.
Како и со речиси што било во Excel, истиот резултат може да го постигнете на неколку начини. Конкретно, можете да креирате динамично паѓачко мени користејќи комбинација од функции OFFSET, INDIRECT и COUNTA или поеластична формула INDEX MATCH. Вториот е мојот претпочитан начин бидејќи обезбедува бројни предности, од кои најсуштинските се:
- Морате да креирате само 3 именувани опсези, без разлика колкумногу ставки има во главните и зависните списоци.
- Вашите списоци може да содржат ставки со повеќе зборови и какви било специјални знаци.
- Бројот на записи може да варира во секоја колона.
- Редоследот на сортирање на записите не е важен.
- Конечно, многу е лесно да се одржуваат и менуваат листите на извори.
Во ред, доволно е теорија, ајде да вежбаме.
1. Организирајте ги вашите изворни податоци во табела
Како и обично, првото нешто што треба да направите е да ги запишете сите избори за вашите паѓачки списоци во работен лист. Овој пат, изворните податоци ќе ги складирате во табела на Excel. За ова, откако ќе ги внесете податоците, изберете ги сите записи и притиснете Ctrl + T или кликнете Вметни јазичето > Табела . Потоа внесете го името на вашата табела во полето Име на табела .
Најзгодниот и визуелен пристап е да ги зачувате ставките за првото паѓачко мени како заглавија на табелите, а ставките за зависното паѓачко мени како податоци од табелата. Сликата од екранот подолу ја илустрира структурата на мојата табела, наречена exporters_tbl - имињата на овошјето се заглавија на табелите и списокот на земји извозници е додаден под соодветното име на овошјето.
2. Креирајте имиња на Excel
Сега кога вашите изворни податоци се подготвени, време е да поставите именувани референци кои динамички ќе ја вратат точната листа од вашата табела.
2.1. Додадете име за редот за заглавие на табелата (главно паѓачко мени)
За да креиратеново име кое упатува на заглавието на табелата, изберете го и потоа кликнете Формули > Управник со имиња > Ново или притиснете Ctrl + F3 .
Microsoft Excel ќе го користи вградениот референтен систем за табела за да го создаде името на шаблонот table_name[#Headers] .
Дајте му малку значајно и лесно за паметење име, на пр. список на овошје и кликнете OK .
2.2. Направете име за ќелијата што ја содржи првата паѓачка листа
Знам дека сè уште немате паѓачко мени :) Но, треба да ја изберете ќелијата да биде домаќин на вашиот прв паѓачки список и да креирате име за тоа ќелија сега затоа што ќе треба да го вклучите ова име во референцата на третото име.
На пример, моето прво паѓачко поле се наоѓа во ќелијата Б1 на листот 2, па креирам име за тоа, нешто едноставно и самообјаснувачки како овошје :
Совет. Користете соодветни референци на ќелиите за копирање паѓачки списоци низ работниот лист.
Ве молиме, внимавајте внимателно да ги прочитате следните неколку параграфи бидејќи ова е многу корисен совет што не сакате да го пропуштите . Многу благодарам на Карен што го објави!
Ако планирате да ги копирате вашите паѓачки списоци во други ќелии, тогаш користете мешани референци за ќелии кога го креирате името за ќелијата(ите) со вашето прво паѓачко листа.
За паѓачките мени да се копираат правилно во други колони (т.е. десно), користете релативна колона (без $