Како направити зависну (каскадну) падајућу листу у Екцел-у

  • Деле Ово
Michael Brown

Преглед садржаја

Пре неког времена смо почели да истражујемо могућности Екцел валидације података и научили како да направимо једноставну падајућу листу у Екцел-у на основу листе раздвојених зарезима, опсега ћелија или именованог опсега.

Данас ћемо детаљно истражити ову функцију и научити како да креирамо каскадне падајуће листе које приказују изборе у зависности од вредности изабране у првом падајућем менију. Другачије речено, направићемо листу за валидацију Екцел података на основу вредности друге листе.

    Како да креирате више зависних падајућих менија у Екцел-у

    Прављење вишеструке падајуће листе зависне од нивоа у Екцел-у су једноставне. Све што вам треба је неколико именованих опсега и ИНДИРЕКТНА формула. Овај метод функционише са свим верзијама програма Екцел 365 - 2010 и старијим.

    1. Откуцајте уносе за падајуће листе

    Прво, откуцајте уносе које желите да се појаве на падајућим листама, свака листа у посебној колони. На пример, правим каскадни падајући мени извозника воћа и колона А мог изворног листа ( Воће ) укључује ставке из првог падајућег менија, а 3 друге колоне наводе ставке за зависне падајуће листе.

    2. Креирајте именоване опсеге

    Сада морате да креирате имена за своју главну листу и за сваку од зависних листа. Ово можете да урадите додавањем новог имена у прозор Управљач именима (картица Формуле &гт; Управљач именима &гт; Ново) или укуцавањемзнак) и апсолутни ред (са $) референце као што је = Схеет2!Б$1.

    Као резултат, зависна падајућа листа Б1 ће се појавити у ћелији Б2; Ц1 зависни падајући мени ће се приказати у Ц2 и тако даље.

    А ако планирате да копирате падајуће меније у друге редове (тј. колону), а затим користите координате апсолутне колоне (са $) и релативног реда (без $) као што је = Схеет2!$Б1.

    Да бисте копирали падајућу ћелију у било коју смер, користите релативну референцу (без знака $) као што је = Схеет2!Б1.

    2.3. Креирајте име за преузимање уноса зависног менија

    Уместо постављања јединствених имена за сваку од зависних листа као што смо урадили у претходном примеру, креираћемо једну именовану формулу која није додељена ниједној одређеној ћелији или опсегу ћелија. Он ће преузети исправну листу уноса за други падајући мени у зависности од тога који је избор направљен на првој падајућој листи. Главна предност коришћења ове формуле је та што нећете морати да креирате нова имена док додајете нове уносе на прву падајућу листу – једна формула са именом их покрива све.

    Креирате ново име у Екцел-у са овом формулом:

    =INDEX(exporters_tbl,,MATCH(fruit,fruit_list,0))

    Где:

    • exporters_tbl - назив табеле (направљен у кораку 1);
    • fruit - име ћелије која садржи прву падајућу листу (креирана у кораку 2.2);
    • fruit_list - име које упућује на ред заглавља табеле (направљен укорак 2.1).

    Дао сам му име екпортерс_лист , као што видите на слици испод.

    Па , већ сте обавили највећи део посла! Пре него што пређете на последњи корак, можда би било добро да отворите Менаџер имена ( Цтрл + Ф3 ) и проверите имена и референце:

    3. Подесите проверу података у Екцел-у

    Ово је заправо најлакши део. Са две именоване формуле на месту, подешавате валидацију података на уобичајен начин ( Подаци картица &гт; Провера ваљаности података ).

    • За прву падајућу листу, у поље Извор унесите =лист_воће (име креирано у кораку 2.1).
    • За зависну падајућу листу унесите =лист_извозника (име креирано у кораку 2.3).

    Готово! Ваш динамички каскадни падајући мени је завршен и аутоматски ће се ажурирати одражавајући промене које сте направили у изворној табели.

    Овај динамички Екцел падајући мени, савршен у свим другим аспектима , има један недостатак – ако колоне ваше изворне табеле садрже различит број ставки, празни редови ће се појавити у вашем менију овако:

    Изузми празне редове из динамички каскадни падајући мени

    Ако желите да очистите све празне редове у вашим падајућим оквирима, мораћете да направите корак даље и побољшате формулу ИНДЕКС/ПОДРЖАВАЊЕ која се користи за креирање зависне динамичке падајуће листе.

    Идеја је да се користи2 функције ИНДЕКС, где прва добија горњу леву ћелију, а друга враћа доњу десну ћелију опсега, или функцију ОФФСЕТ са угнежђеним ИНДЕКС и ЦОУНТА. Детаљни кораци следе у наставку:

    1. Направите два додатна имена

    Да не бисте учинили формулу превише гломазном, прво направите неколико помоћних имена са следећим једноставним формулама:

    • Име које се зове број_колца за референцу на изабрани број колоне:

      =MATCH(fruit,fruit_list,0)

    • Име под називом цели_кол да референцира изабрану колону (не број колоне, већ целу колону):

      =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. Примени проверу ваљаности података

    На крају, изаберите ћелију која садржи зависни падајући мени и примените проверу ваљаности података тако што ћете унети = екпортерс_лист2 (име креирано у претходном кораку) у Извор бок.

    Снимак екрана испод приказује резултујући динамички падајући мени у Екцел-у где су нестали сви празни редови!

    Напомена. Када радите са динамичким каскадним падајућим листамакреиран са горњим формулама, ништа не спречава корисника да промени вредност у првом падајућем менију након што изврши избор у другом менију, као резултат тога, избори у примарном и секундарном падајућем менију могу да се не подударају. Можете блокирати промене у првом пољу након што се изврши избор у другом користећи ВБА или сложене формуле предложене у овом водичу.

    Ово је начин на који креирате Екцел листу за валидацију података на основу вредности друге листе. Слободно преузмите наше узорке радних свеска да бисте видели каскадне падајуће листе у акцији. Хвала вам на читању!

    Вежбање за преузимање

    Каскадни падајући пример 1 – лака верзија

    Каскадни падајући пример 2 – напредна верзија без празнина

    име директно у Поље за име.

    Напомена. Обратите пажњу да ако је ваш први ред нека врста заглавља колоне као што видите на слици изнад, нећете га укључити у именовани опсег.

    За детаљна упутства корак по корак погледајте Како да дефинишете име у Екцел-у.

    Ствари које треба запамтити:

    1. Ставке за који се појављују у првој падајућој листи морају бити уноси од једне речи, нпр. кајсија , манго , наранџе . Ако имате ставке које се састоје од две, три или више речи, погледајте Како да направите каскадни падајући мени са уносима од више речи.
    2. Имена зависних листа морају бити потпуно иста као и одговарајући унос у главној листа. На пример, зависна листа која ће се приказати када се са прве падајуће листе изабере „ Манго “ требало би да носи назив Манго .

    Када се заврши , можда ћете желети да притиснете Цтрл+Ф3 да отворите прозор Управљач именима и проверите да ли све листе имају тачна имена и референце.

    3 . Направите прву (главну) падајућу листу

    1. У истој или другој табели изаберите ћелију или неколико ћелија у којима желите да се прикаже ваша примарна падајућа листа.
    2. Идите на картицу Подаци , кликните на Провера ваљаности података и поставите падајућу листу на основу именованог опсега на уобичајен начин тако што ћете изабрати Листа под Дозволи и уношење назива опсега уОквир Извор .

    За детаљне кораке погледајте Прављење падајуће листе на основу именованог опсега.

    Као резултат, имаћете падајући мени на радном листу сличан овоме:

    4. Креирајте зависну падајућу листу

    Изаберите ћелију(е) за зависни падајући мени и поново примените Екцел Валидацију података као што је описано у претходном кораку. Али овог пута, уместо имена опсега, у поље Извор уносите следећу формулу:

    =INDIRECT(A2)

    Где је А2 ћелија са вашом првом (примарном) падајућа листа.

    Ако је ћелија А2 тренутно празна, добићете поруку о грешци „ Извор тренутно процењује грешку. Да ли желите да наставите ? "

    Безбедно кликните на Да , и чим изаберете ставку из првог падајућег менија, видећете уносе који јој одговарају у другом, зависном , падајућа листа.

    5. Додајте трећу зависну падајућу листу (опционо)

    Ако је потребно, можете додати трећу каскадну падајућу листу која зависи или од избора у 2. падајућем менију или од избора у првом два падајућег менија.

    Подесите 3. падајући мени који зависи од 2. листе

    Можете да направите падајућу листу овог типа на исти начин као што смо управо направили другу зависну падајућу- доњи мени. Само запамтите 2 важне ствари о којима смо горе говорили, а које су неопходне заисправан рад ваших каскадних падајућих листа.

    На пример, ако желите да прикажете листу региона у колони Ц у зависности од тога која је земља изабрана у колони Б, креирате листу региона за сваки земљу и назовите је према имену земље, тачно онако како се земља појављује у другим падајућим листама. На пример, листа индијских региона треба да се зове „Индија“, листа региона Кине – „Кина“ и тако даље.

    Након тога, бирате ћелију за 3. падајући мени (Ц2 у нашем случај) и примените Екцел Валидацију података са следећом формулом (Б2 је ћелија са другим падајућим менијем који садржи листу земаља):

    =INDIRECT(B2)

    Сада, сваки пут када изаберете Индија на листи земаља у колони Б, имаћете следеће изборе у трећем падајућем менију:

    Напомена. Приказана листа региона је јединствена за сваку земљу, али не зависи од избора у првој падајућој листи.

    Креирајте трећи падајући мени у зависности од прве две листе

    Ако треба да направите каскадни падајући мени који зависи од избора и на првој и на другој падајућој листи, наставите на овај начин :

    1. Креирајте додатне скупове именованих опсега и назовите их за комбинације речи у прва два падајућег менија. На пример, имате Манго, поморанџе, итд. на 1. листи и Индију, Бразил, итд. на 2. листи.Затим креирате именоване опсеге МангоИндиа , МангоБразил , ОрангесИндиа , ОрангесБразил , итд. Ова имена не би требало да садрже доње црте или било које друге додатне знакове .

  • Примените валидацију Екцел података помоћу формуле ИНДИРЕЦТ СУБСТИТУТЕ која спаја имена уноса у прве две колоне и уклања размаке из имена. На пример, у ћелији Ц2, формула за валидацију података би била:
  • =INDIRECT(SUBSTITUTE(A2&B2," ",""))

    Где А2 и Б2 садрже први и други падајући мени, респективно.

    Као резултат, ваш трећи пад -довн листа ће приказати регионе који одговарају Воће и Земља изабране у прве 2 падајуће листе.

    Ово је најлакши начин да направите каскадне падајуће оквире у Екцел-у. Међутим, овај метод има бројна ограничења.

    Ограничења овог приступа:

    1. Ставке у вашој примарној падајућој листи морају бити од једне речи уносе. Погледајте како да направите каскадне падајуће листе са уносима од више речи.
    2. Овај метод неће радити ако уноси у вашој главној падајућој листи садрже знакове који нису дозвољени у називима опсега, као што је цртица ( -), амперсанд (&амп;), итд. Решење је да направите динамички каскадни падајући мени који нема ово ограничење.
    3. Падајући менији креирани на овај начин се не ажурирају аутоматски, тј. мораћете да промените именоване опсеге'референце сваки пут када додате или уклоните ставке са изворних листа. Да бисте превазишли ово ограничење, покушајте да направите динамичку каскадну падајућу листу.

    Креирајте каскадне падајуће листе са уносима од више речи

    ИНДИРЕКТНЕ формуле које смо користили у примеру горе може да обрађује само ставке од једне речи. На пример, формула =ИНДИРЕЦТ(А2) индиректно упућује на ћелију А2 и приказује именовани опсег тачно са истим именом као у референцираној ћелији. Међутим, размаци нису дозвољени у именима у Екцел-у, због чега ова формула неће радити са именима са више речи.

    Решење је коришћење функције ИНДИРЕЦТ у комбинацији са СУБСТИТУТЕ као што смо урадили приликом креирања 3. падајући мени.

    Претпоставимо да имате Лубеница међу производима. У овом случају, именујете листу извозника лубеница једном речју без размака - Лубеница .

    Затим, за други падајући мени, примените Екцел Валидацију података са следећом формулом која уклања размаци од имена у ћелији А2:

    =INDIRECT(SUBSTITUTE(A2," ",""))

    Како спречити промене у примарној падајућој листи

    Замислите следећи сценарио . Ваш корисник је направио изборе на свим падајућим листама, а затим се предомислио, вратио се на прву листу и изабрао другу ставку. Као резултат тога, 1. и 2. селекције су неусклађене. Да бисте спречили да се то догоди, можда ћете желети да блокирате све промене у првом испуштању-доле листе чим се изврши избор у другој листи.

    Да бисте то урадили, када креирате први падајући мени, користите посебну формулу која ће проверити да ли је било који унос изабран у другом падајућем менију:

    =IF(B2="", Fruit, INDIRECT("FakeList"))

    Где Б2 садржи други падајући мени, „ Воће “ је назив листе која се појављује у првом падајућем менију, а „ ФакеЛист " је било које лажно име које не постоји.

    Сада, ако је било која ставка изабрана у 2. падајућој листи, ниједан избор неће бити доступан када корисник кликне на стрелицу поред прве листе.

    Креирање динамичких каскадних падајућих листа у Екцел-у

    Главна предност динамичке падајуће листе зависне од Екцел-а је да можете слободно уредите изворне листе и ваши падајући оквири ће се ажурирати у ходу. Наравно, креирање динамичких падајућих менија захтева мало више времена и сложеније формуле, али верујем да је ово вредна инвестиција јер када се поставе, са таквим падајућим менијима је право задовољство радити.

    Као и скоро са скором. било шта у Екцел-у, можете постићи исти резултат на неколико начина. Конкретно, можете креирати динамички падајући мени користећи комбинацију функција ОФФСЕТ, ИНДИРЕЦТ и ЦОУНТА или отпорнију формулу ИНДЕКС МАТЦХ. Ово друго је мој омиљени начин јер пружа бројне предности, од којих су најважније:

    1. Морате да креирате само 3 именована опсега, без обзира на то какоима много ставки у главним и зависним листама.
    2. Ваше листе могу да садрже ставке од више речи и било које посебне знакове.
    3. Број уноса може да варира у свакој колони.
    4. Редослед сортирања уноса није битан.
    5. Коначно, веома је лако одржавати и мењати изворне листе.

    Добро, доста теорије, идемо на праксу.

    1. Организујте своје изворне податке у табели

    Као и обично, прва ствар коју треба да урадите је да запишете све изборе за своје падајуће листе на радном листу. Овај пут ћете морати да сачувате изворне податке у Екцел табели. За ово, након што унесете податке, изаберите све уносе и притисните Цтрл + Т или кликните на картицу Убаци &гт; Табела . Затим укуцајте име своје табеле у поље Име табеле .

    Најпогоднији и највизуелнији приступ је да сачувате ставке за први падајући мени као заглавља табеле, а ставке за зависни падајући мени као подаци табеле. Снимак екрана испод илуструје структуру моје табеле, под називом екпортерс_тбл - имена воћа су заглавља табеле и листа земаља извозница је додата под одговарајућим именом воћа.

    2. Креирајте Екцел имена

    Сада када су ваши изворни подаци спремни, време је да подесите именоване референце које ће динамички преузимати исправну листу из ваше табеле.

    2.1. Додајте име за ред заглавља табеле (главни падајући мени)

    Да бисте креирали аново име које упућује на заглавље табеле, изаберите га, а затим кликните на Формуле &гт; Управљач именима &гт; Ново или притисните Цтрл + Ф3 .

    Мицрософт Екцел ће користити уграђени референтни систем табеле да креира име обрасца табле_наме[#Хеадерс] .

    Дајте му мало смислено и лако памтљиво име, нпр. попис_воћа и кликните на ОК .

    2.2. Направите име за ћелију која садржи прву падајућу листу

    Знам да још увек немате ниједан падајући мени :) Али морате да изаберете ћелију у којој ће бити смештен ваш први падајући мени и да направите име за то ћелију сада јер ћете морати да укључите ово име у референцу трећег имена.

    На пример, мој први падајући оквир се налази у ћелији Б1 на листу 2, па сам направио име за њега, нешто једноставно и само по себи разумљиво као што је воће :

    Савет. Користите одговарајуће референце на ћелије да копирате падајуће листе преко радног листа.

    Молимо вас да пажљиво прочитате следећих неколико пасуса јер је ово веома користан савет који не желите да пропустите . Хвала пуно Карен што га је објавила!

    Ако планирате да копирате своје падајуће листе у друге ћелије, онда користите мешовите референце ћелија када правите назив ћелије(е) са својим првим падајућим менијем листа.

    Да би се падајући мени исправно копирали у друге колоне (тј. десно), користите релативну колону (без $

    Мајкл Браун је посвећен технолошки ентузијаста са страшћу за поједностављење сложених процеса помоћу софтверских алата. Са више од деценије искуства у технолошкој индустрији, усавршио је своје вештине у Мицрософт Екцел-у и Оутлоок-у, као и у Гоогле табеле и документима. Мајклов блог посвећен је дељењу свог знања и стручности са другима, пружајући једноставне савете и упутства за побољшање продуктивности и ефикасности. Без обзира да ли сте искусан професионалац или почетник, Мајклов блог нуди вредне увиде и практичне савете како да на најбољи начин искористите ове основне софтверске алате.