Съдържание
В урока са обяснени синтаксисът и основните употреби на функцията CHOOSE и са дадени няколко нетривиални примера за използване на формула CHOOSE в Excel.
CHOOSE е една от онези функции на Excel, които може да не изглеждат полезни сами по себе си, но в комбинация с други функции дават редица страхотни предимства. На най-основно ниво използвате функцията CHOOSE, за да получите стойност от списък, като посочите позицията на тази стойност. По-нататък в този урок ще намерите няколко разширени приложения, които със сигурност си струва да бъдат разгледани.
Функция CHOOSE на Excel - синтаксис и основни приложения
Функцията CHOOSE в Excel е предназначена за връщане на стойност от списъка въз основа на зададена позиция.
Функцията е налична в Excel 365, Excel 2019, Excel 2016, Excel 2013, Excel 2010 и Excel 2007.
Синтаксисът на функцията CHOOSE е следният:
CHOOSE(index_num, value1, [value2], ...)Къде:
Index_num (задължително) - позицията на стойността, която трябва да се върне. Тя може да бъде произволно число между 1 и 254, препратка към клетка или друга формула.
Стойност1, стойност2, ... - списък с до 254 стойности, от които да изберете. Стойност1 е задължителна, другите стойности не са задължителни. Те могат да бъдат числа, текстови стойности, препратки към клетки, формули или дефинирани имена.
Ето един пример за формула CHOOSE в най-прост вид:
=CHOOSE(3, "Mike", "Sally", "Amy", "Neal")
Формулата връща "Amy", защото index_num е 3 и "Amy" е третата стойност в списъка:
Функцията CHOOSE на Excel - 3 неща, които трябва да запомните!
CHOOSE е много проста функция и едва ли ще срещнете трудности при прилагането ѝ в работните си листове. Ако резултатът, върнат от формулата CHOOSE, е неочакван или не е резултатът, който сте търсили, това може да се дължи на следните причини:
- Броят на стойностите, от които можете да избирате, е ограничен до 254.
- Ако index_num е по-малка от 1 или по-голяма от броя на стойностите в списъка, се връща грешка #VALUE!.
- Ако index_num аргумент е дроб, той се съкращава до най-малкото цяло число.
Как да използвате функцията CHOOSE в Excel - примери за формули
Следващите примери показват как CHOOSE може да разшири възможностите на други функции на Excel и да предостави алтернативни решения на някои често срещани задачи, дори на такива, които се смятат за неизпълними от мнозина.
Excel CHOOSE вместо вложени IFs
Една от най-често срещаните задачи в Excel е да се връщат различни стойности въз основа на определено условие. В повечето случаи това може да се направи с помощта на класическа вложена декларация IF. Но функцията CHOOSE може да бъде бърза и лесна за разбиране алтернатива.
Пример 1. Връщане на различни стойности въз основа на условие
Да предположим, че имате колона с оценки на ученици и искате да поставите етикети на оценките въз основа на следните условия:
Резултат | Резултат |
Беден | 0 - 50 |
Задоволително | 51 - 100 |
Добър | 101 - 150 |
Отличен | над 151 |
Един от начините да направите това е да вложите няколко формули IF една в друга:
=IF(B2>=151, "Отличен", IF(B2>=101, "Добър", IF(B2>=51, "Задоволителен", "Лош"))
Друг начин е да се избере етикет, съответстващ на условието:
=CHOOSE((B2>0) + (B2>=51) + (B2>=101) + (B2>=151), "Poor", "Satisfactory", "Good", "Excellent")
Как работи тази формула:
В index_num аргумент, оценявате всяко условие и връщате TRUE, ако условието е изпълнено, и FALSE в противен случай. Например стойността в клетка B2 отговаря на първите три условия, така че получаваме този междинен резултат:
=CHOOSE(TRUE + TRUE + TRUE + FALSE, "Poor", "Satisfactory", "Good", "Excellent")
Като се има предвид, че в повечето формули на Excel TRUE се равнява на 1, а FALSE - на 0, нашата формула претърпява тази трансформация:
=CHOOSE(1 + 1 + 1 + 0, "Слаб", "Задоволителен", "Добър", "Отличен")
След извършване на операцията събиране получаваме:
=CHOOSE(3, "Слаб", "Задоволителен", "Добър", "Отличен")
В резултат на това се връща третата стойност в списъка, която е "Good".
Съвети:
- За да направите формулата по-гъвкава, можете да използвате препратки към клетките вместо твърдо кодирани етикети, например:
=CHOOSE((B2>0) + (B2>=51) + (B2>=101) + (B2>=151), $E$1, $E$2, $E$3, $E$4)
- Ако нито едно от условията ви не е вярно, index_num аргументът ще бъде зададен на 0, което ще принуди формулата ви да върне грешката #VALUE! За да избегнете това, просто обвийте CHOOSE във функцията IFERROR по следния начин:
=IFERROR(CHOOSE((B2>0) + (B2>=51) + (B2>=101) + (B2>=151), "Poor", "Satisfactory", "Good", "Excellent"), "")
Пример 2. Извършване на различни изчисления в зависимост от състоянието
По подобен начин можете да използвате функцията CHOOSE на Excel, за да извършите едно изчисление от поредица от възможни изчисления/формули, без да вмъквате множество оператори IF един в друг.
Като пример, нека изчислим комисионата на всеки продавач в зависимост от продажбите му:
Комисия | Продажби |
5% | $0 до $50 |
7% | $51 до $100 |
10% | над 101 долара |
С размера на продажбите в B2 формулата придобива следната форма:
=CHOOSE((B2>0) + (B2>=51) + (B2>=101), B2*5%, B2*7%, B2*10%)
Вместо да кодирате твърдо процентите във формулата, можете да направите препратка към съответната клетка в референтната таблица, ако има такава. Само не забравяйте да фиксирате препратките, като използвате знака $.
=CHOOSE((B2>0) + (B2>=51) + (B2>=101), B2*$E$2, B2*$E$3, B2*$E$4)
Формула CHOOSE на Excel за генериране на случайни данни
Както вероятно знаете, Microsoft Excel има специална функция за генериране на случайни цели числа между долните и горните числа, които сте посочили - функцията RANDBETWEEN. index_num и формулата ви ще генерира почти всички произволни данни, които искате.
Например тази формула може да създаде списък със случайни резултати от изпити:
=CHOOSE(RANDBETWEEN(1,4), "Poor", "Satisfactory", "Good", "Excellent")
Логиката на формулата е очевидна: RANDBETWEEN генерира случайни числа от 1 до 4, а CHOOSE връща съответната стойност от предварително зададения списък с четири стойности.
Забележка: RANDBETWEEN е променлива функция и се преизчислява при всяка промяна в работния лист. В резултат на това списъкът ви със случайни стойности също ще се промени. За да предотвратите това, можете да замените формулите с техните стойности, като използвате Специално вмъкване функция.
ИЗБИРАНЕ на формула за извършване на ляво Vlookup
Ако някога сте извършвали вертикално търсене в Excel, знаете, че функцията VLOOKUP може да търси само в най-лявата колона. В случаите, когато трябва да върнете стойност вляво от колоната за търсене, можете да използвате комбинацията INDEX / MATCH или да измамите VLOOKUP, като вложите в нея функцията CHOOSE:
Да предположим, че имате списък с резултати в колона А, имена на ученици в колона Б и искате да извлечете резултата на конкретен ученик. Тъй като колоната за връщане е вляво от колоната за търсене, обикновената формула Vlookup връща грешка #N/A:
За да поправите това, използвайте функцията CHOOSE, за да размените позициите на колоните, като кажете на Excel, че колона 1 е B, а колона 2 е A:
=ИЗБЕРИ({1,2}, B2:B5, A2:A5)
Тъй като предоставяме масив от {1,2} в index_num аргумент, функцията CHOOSE приема диапазони в стойност аргументи (обикновено това не се случва).
Сега вградете горната формула в table_array аргумент на VLOOKUP:
=VLOOKUP(E1,CHOOSE({1,2}, B2:B5, A2:A5),2,FALSE)
И воала - търсенето вляво се извършва безпроблемно!
ИЗБЕРЕТЕ формула за връщане на следващия работен ден
Ако не сте сигурни дали утре трябва да отидете на работа, или да си останете вкъщи и да се насладите на заслужения уикенд, функцията CHOOSE на Excel може да открие кога е следващият работен ден.
Ако приемем, че работните ви дни са от понеделник до петък, формулата е следната:
=ДНЕС()+ИЗБОР(РАБОТЕН ДЕН(ДНЕС()),1,1,1,1,1,1,3,2)
На пръв поглед сложна, но при по-внимателно вглеждане логиката на формулата е лесна за следване:
WEEKDAY(TODAY()) връща сериен номер, съответстващ на днешната дата, от 1 (неделя) до 7 (събота). Този номер отива в index_num аргумент на нашата формула CHOOSE.
Стойност1 - стойност7 (1,1,1,1,1,1,3,2) определят колко дни да се добавят към текущата дата. Ако днес е неделя - четвъртък (index_num 1 - 5), добавяте 1, за да се върнете следващия ден. Ако днес е петък (index_num 6), добавяте 3, за да се върнете следващия понеделник. Ако днес е събота (index_num 7), добавяте 2, за да се върнете отново следващия понеделник. Да, толкова е просто :)
Формула CHOOSE за връщане на потребителско име на ден/месец от дата
В ситуации, когато искате да получите име на ден в стандартен формат, като например пълно име (понеделник, вторник и т.н.) или кратко име (понеделник, вторник и т.н.), можете да използвате функцията TEXT, както е обяснено в този пример: Get day of week from date in Excel.
Ако искате да върнете име на ден от седмицата или месец в потребителски формат, използвайте функцията CHOOSE по следния начин.
За да получите ден от седмицата:
=CHOOSE(WEEKDAY(A2),"Su","Mo","Tu","We","Th","Fr","Sa")
За да получите един месец:
=CHOOSE(MONTH(A2), "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
Където A2 е клетката, съдържаща оригиналната дата.
Надявам се, че този урок ви е дал някои идеи за това как можете да използвате функцията CHOOSE в Excel, за да подобрите моделите си на данни. Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!
Изтегляне на работна тетрадка за практика
Примери за функцията CHOOSE на Excel