Користите називе динамичког опсега у Екцел-у за флексибилне падајуће листе
Екцел(Excel) табеле често укључују падајуће меније ћелија како би се поједноставио и/или стандардизовао унос података. Ови падајући мении су креирани помоћу функције провере ваљаности података да би се навела листа дозвољених уноса.
Да бисте поставили једноставну падајућу листу, изаберите ћелију у коју ће се уносити подаци, затим кликните на Валидација података(Data Validation) (на картици Подаци(Data) ), изаберите Валидација података(Data Validation) , изаберите Листа(List) (под Дозволи(Allow) :), а затим унесите ставке листе (одвојене зарезима). ) у пољу Извор(Source) : (погледајте слику 1).
У овој врсти основног падајућег менија, листа дозвољених уноса је наведена унутар саме провере података; стога, да би извршио измене на листи, корисник мора да отвори и уреди валидацију података. Ово може бити тешко, међутим, за неискусне кориснике или у случајевима када је листа избора дуга.
Друга опција је да поставите листу у именовани опсег унутар табеле(named range within the spreadsheet) , а затим наведете име тог опсега (са предзнаком једнакости) у пољу Извор(Source) : валидације података (као што је приказано на слици 2(Figure 2) ).
Овај други метод олакшава уређивање избора на листи, али додавање или уклањање ставки може бити проблематично. Пошто се именовани опсег ( ФруитЦхоицес(FruitChoices) , у нашем примеру) односи на фиксни опсег ћелија ($Х$3:$Х$10 као што је приказано), ако се у ћелије Х11(H11) или испод дода више избора, оне се неће појавити у падајућем менију (пошто те ћелије нису део асортимана ФруитЦхоицес(FruitChoices) ).
Слично томе, ако се, на пример, избришу уноси крушке(Pears) и јагоде , они се више неће појављивати у падајућем менију, већ ће уместо тога падајући мени садржати два „празна“ избора пошто падајући мени и даље упућује на цео опсег ФруитЦхоицес, укључујући празне ћелије Х9 и (Strawberries)Х10(H10) .
Из ових разлога, када се користи нормално именовани опсег као извор листе за падајући мени, сам именовани опсег мора да се уреди тако да укључује више или мање ћелија ако се уноси додају или бришу са листе.
Решење овог проблема је коришћење имена динамичког(dynamic) опсега као извора за изборе у падајућем менију. Назив динамичког опсега је онај који се аутоматски шири (или скупља) како би тачно одговарао величини блока података како се уноси додају или уклањају. Да бисте то урадили, користите формулу(formula) , а не фиксни опсег адреса ћелија, да дефинишете именовани опсег.
Како подесити динамички опсег(Dynamic Range) у Екцелу(Excel)
Нормално (статичко) име опсега се односи на одређени опсег ћелија ($Х$3:$Х$10 у нашем примеру, погледајте испод):
Али динамички опсег се дефинише помоћу формуле (погледајте доле, преузету из посебне табеле која користи називе динамичког опсега):
Пре него што почнемо, уверите се да сте преузели нашу Екцел датотеку примера (макрои за сортирање су онемогућени).
Хајде да детаљно испитамо ову формулу. Избори за воће су у блоку ћелија директно испод наслова ( ВОЋЕ(FRUITS) ). Том наслову је такође додељено име: ФруитсХеадинг(FruitsHeading) :
Цела формула која се користи за дефинисање динамичког опсега за избор воћа(Fruits) је:
=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,INDEX(ISBLANK(OFFSET(FruitsHeading,1,0,20,1)),0,0),0)-1,20),1)
ФруитсХеадинг(FruitsHeading) се односи на наслов који је један ред изнад првог уноса на листи. Број 20 (користи се два пута у формули) је максимална величина (број редова) за листу (ово се може подесити по жељи).
Имајте на уму да у овом примеру постоји само 8 уноса на листи, али постоје и празне ћелије испод њих у које се могу додати додатни уноси. Број 20 се односи на цео блок у који се могу уносити, а не на стварни број уноса.
Сада хајде да разбијемо формулу на делове (кодирање бојом сваког дела) да бисмо разумели како функционише:
=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,INDEX(ISBLANK(OFFSET(FruitsHeading,1,0,20,1)),0,0),0)-1,20),1)
„Најунутрашњији“ комад је ОФФСЕТ (ФруитсХеадинг,1,0,20,1)(OFFSET(FruitsHeading,1,0,20,1)) . Ово се односи на блок од 20 ћелија (испод ћелије ФруитсХеадинг(FruitsHeading) ) где се могу унети избори. Ова функција ОФФСЕТ(OFFSET) у основи каже: Почните од ћелије ФруитсХеадинг(FruitsHeading) , идите доле за 1 ред и преко 0 колона, а затим изаберите област која је дугачка 20 редова и широка 1 колона. То нам даје блок од 20 редова у који се уносе избори воћа .(Fruits)
Следећи део формуле је ИСБЛАНК(ISBLANK) функција:
=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,INDEX(ISBLANK(the above),0,0),0)-1,20),1)
Овде је функција ОФФСЕТ(OFFSET) (објашњена горе) замењена са „горе“ (да би ствари биле лакше за читање). Али функција ИСБЛАНК(ISBLANK) ради на опсегу ћелија од 20 редова које дефинише функција ОФФСЕТ .(OFFSET)
ИСБЛАНК(ISBLANK) затим креира скуп од 20 вредности ТРУЕ(TRUE) и ФАЛСЕ(FALSE) , показујући да ли је свака од појединачних ћелија у опсегу од 20 редова на које упућује функција ОФФСЕТ(OFFSET) празна (празна) или није. У овом примеру, првих 8 вредности у скупу ће бити ФАЛСЕ(FALSE) јер првих 8 ћелија није празних, а последњих 12 вредности ће бити ТРУЕ(TRUE) .
Следећи део формуле је функција ИНДЕКС(INDEX) :
=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,INDEX(the above,0,0),0)-1,20),1)
Опет, „горе“ се односи на горе описане функције ИСБЛАНК(ISBLANK) и ОФФСЕТ(OFFSET) . Функција ИНДЕКС(INDEX) враћа низ који садржи 20 вредности TRUE / FALSE креираних помоћу функције ИСБЛАНК(ISBLANK) .
ИНДЕКС(INDEX) се обично користи за одабир одређене вредности (или опсега вредности) из блока података, навођењем одређеног реда и колоне (унутар тог блока). Али постављање уноса реда и колоне на нулу (као што је овде урађено) узрокује да ИНДЕКС(INDEX) врати низ који садржи цео блок података.
Следећи део формуле је функција МАТЦХ(MATCH) :
=OFFSET(FruitsHeading,1,0,IFERROR(MATCH(TRUE,the above,0)-1,20),1)
Функција МАТЦХ(MATCH) враћа позицију прве вредности ТРУЕ(TRUE) , унутар низа који је вратила функција ИНДЕКС(INDEX) . Пошто првих 8 уноса на листи нису празни, првих 8 вредности у низу ће бити ФАЛСЕ(FALSE) , а девета вредност ће бити ТРУЕ(TRUE) (пошто је 9. ред у опсегу празан).
Дакле, функција МАТЦХ(MATCH) ће вратити вредност 9 . У овом случају, међутим, заиста желимо да знамо колико уноса има на листи, тако да формула одузима 1 од вредности МАТЦХ(MATCH) (што даје позицију последњег уноса). Дакле, на крају, МАТЦХ(MATCH) ( ТРУЕ(TRUE) ,горе,0)-1 враћа вредност 8 .
Следећи део формуле је функција ИФЕРРОР(IFERROR) :
=OFFSET(FruitsHeading,1,0,IFERROR(the above,20),1)
Функција ИФЕРРОР(IFERROR) враћа алтернативну вредност, ако прва наведена вредност резултира грешком. Ова функција је укључена јер, ако је цео блок ћелија (свих 20 редова) попуњен уносима, функција МАТЦХ(MATCH) ће вратити грешку.
То је зато што ми говоримо функцији МАТЦХ(MATCH) да тражи прву вредност ТРУЕ(TRUE) (у низу вредности из функције ИСБЛАНК(ISBLANK) ), али ако ниједна(NONE) ћелија није празна, онда ће цео низ бити попуњен са ФАЛСЕ(FALSE) вредностима. Ако МАТЦХ(MATCH) не може да пронађе циљну вредност ( ТРУЕ(TRUE) ) у низу који претражује, враћа грешку.
Дакле, ако је цела листа пуна (и стога, МАТЦХ(MATCH) враћа грешку), функција ИФЕРРОР(IFERROR) ће уместо тога вратити вредност од 20 (знајући да на листи мора бити 20 уноса).
Коначно, ОФФСЕТ(ФруитсХеадинг,1,0,горе,1)(OFFSET(FruitsHeading,1,0,the above,1)) враћа опсег који заправо тражимо: Почните од ћелије ФруитсХеадинг(FruitsHeading) , идите доле за 1 ред и преко 0 колона, а затим изаберите област која има колико год редова дугачка постоје уноси у листи (и ширине 1 колоне). Дакле, цела формула заједно ће вратити опсег који садржи само стварне уносе (до прве празне ћелије).
Коришћење ове формуле за дефинисање опсега који је извор за падајући мени значи да можете слободно уређивати листу (додавање или уклањање уноса, све док преостали уноси почињу у горњој ћелији и су узастопни) и падајући мени ће увек одражавати тренутни листа (видети слику 6(Figure 6) ).
Пример фајла (динамичке листе) који је овде коришћен је укључен и може се преузети са ове веб локације. Макрои не функционишу, међутим, зато што ВордПресс(WordPress) не воли Екцел(Excel) књиге са макроима у њима.
Као алтернатива одређивању броја редова у блоку листе, блоку листе се може доделити сопствено име опсега, које се затим може користити у модификованој формули. У датотеци примера, друга листа ( Имена(Names) ) користи овај метод. Овде је целом блоку листе (испод наслова „НАМЕС“, 40 редова у датотеци примера) додељено име опсега НамеБлоцк(NameBlock) . Алтернативна формула за дефинисање листе имена(NamesList) је тада:
=OFFSET(NamesHeading,1,0,IFERROR(MATCH(TRUE,INDEX(ISBLANK(NamesBlock),0,0),0)-1,ROWS(NamesBlock)),1)
где НамесБлоцк(NamesBlock) замењује ОФФСЕТ(OFFSET) ( ФруитсХеадинг,1,0,20,1(FruitsHeading,1,0,20,1) ) и РОВС(НамесБлоцк)(ROWS(NamesBlock)) замењује 20 (број редова) у ранијој формули.
Дакле, за падајуће листе које се могу лако уређивати (укључујући и друге кориснике који можда нису искусни), покушајте да користите имена динамичког опсега! И имајте на уму да, иако је овај чланак фокусиран на падајуће листе, имена динамичког опсега могу да се користе свуда где треба да референцирате опсег или листу који могу да варирају по величини. Уживати!
Related posts
Како избрисати празне линије у Екцелу
Како користити Екцел-ову функцију говорних ћелија
Како уметнути Екцел радни лист у Ворд документ
Како користити Екцел-ову анализу шта ако
Како поправити ред у Екцелу
Како написати ИФ формулу/изјаву у Екцелу
Како да поправите #Н/А грешке у Екцел формулама као што је ВЛООКУП
Како делити Екцел датотеку за лаку сарадњу
Групирајте редове и колоне у Екцел радном листу
Како распоредити по абецеди у Екцелу
Користите тастатуру да промените висину реда и ширину колоне у Екцел-у
Како уклонити линије мреже у Екцелу
Како направити ВБА макро или скрипту у Екцелу
Коришћење Екцел-овог алата за тражење циља за анализу шта ако
Користите Спике за исецање и лепљење више текстуалних ставки у Ворд
2 начина за коришћење Екцел-ове функције транспоновања
Шта је ВБА низ у Екцел-у и како га програмирати
Како сортирати по датуму у Екцелу
Како направити тортни графикон у Екцелу
4 начина да претворите Екцел у Гоогле табеле