Функция CHOOSE в Excel

- Пример 1 – Базовое использование: применение функции CHOOSE самостоятельно для выбора значения из списка аргументов
- Пример 2 – Возврат различных результатов на основе нескольких условий
- Пример 3 – Возврат различных расчётных результатов в зависимости от условий
- Пример 4 – Случайный выбор из списка
- Пример 5 – Комбинирование функций CHOOSE и VLOOKUP для выполнения операции Возвращаемое значение в Самый левый столбец
- Пример 6 – Возврат дня недели или месяца на основе заданной даты
- Пример 7 – Возврат даты следующего рабочего дня или выходных на основе текущей даты
Описание
Функция CHOOSE возвращает значение из списка аргументов по указанному индексу. Например, CHOOSE(3,”Apple”,”Peach”,”Orange”) вернёт «Апельсин»: индекс равен 3, а «Апельсин» — это третье значение в списке после номера индекса.
Синтаксис и аргументы
Синтаксис формулы
| CHOOSE(index_num, value1, [value2], …) |
Аргументы
|
Value1, value2… могут быть числами, текстом, формулами, ссылками на ячейки или именованными диапазонами.
Возвращаемое значение
Функция CHOOSE возвращает значение из списка по указанной позиции.
Использование и примеры
В этом разделе представлены простые, но наглядные примеры использования функции CHOOSE.
Пример 1 – Базовое использование: применение функции CHOOSE самостоятельно для выбора значения из списка аргументов
Формула 1:
=CHOOSE(3,"a","b","c","d")
Возвращаемое значение: c — то есть третий аргумент функции CHOOSE при index_num, равном 3.
Примечание: заключайте текстовые значения в двойные кавычки.
Формула2:
=CHOOSE(2,A1,A2,A3,A4)
Возвращаемое значение: Kate — содержимое ячейки A2, поскольку index_num равен 2, а A2 представляет собой второе значение в списке функции.CHOOSE.
Формула3:
=CHOOSE(4,8,9,7,6)
Возвращаемое значение: 6 — четвёртый аргумент в списке функции.
Пример 2 – Возврат различных результатов на основе нескольких условий
Допустим, у вас есть список отклонений для каждого товара, которые необходимо классифицировать на основе условий, как показано на скриншоте ниже.
Обычно для этого используется функция ЕСЛИ, но сейчас я покажу, как легко решить задачу с помощью функции CHOOSE.
Формула:
=CHOOSE((B7>,0)+(B7>,1)+(B7>,5),"Top","Middle","Bottom")
Пояснение:
(B7>0)+(B7>1)+(B7>5):index_num: B7 равно 2, что больше 0 и 1, но меньше 5, поэтому промежуточный результат следующий:
=CHOOSE(True+Ture+False,"Top","Middle","Bottom")
Как известно, ИСТИНА = 1, ЛОЖЬ = 0, поэтому формулу можно представить в следующем виде:
=CHOOSE(1+1+0,"Top","Middle","Bottom")
затем
=CHOOSE(2,"Top","Middle","Bottom")
Результат: Средний 
Пример 3 – Возврат различных расчётных результатов в зависимости от условий
Допустим, необходимо рассчитать скидки для каждого товара на основе количества и цены, как показано на скриншоте ниже:
Формула:
=CHOOSE((B8>,0)+(B8>,100)+(B8>,200)+(B8>,300),B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)
Пояснение:
(B8>0)+(B8>100)+(B8>200)+(B8>300):index_number: B8 равно 102, что больше 100, но меньше 201, поэтому в этой части результат следующий:
=CHOOSE(true+true+false+false,B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)
=CHOOSE(1+1+0+0,B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)
затем
=CHOOSE(2,B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)
B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5:значения, из которых производится выбор; скидка рассчитывается как цена × количество × процент скидки; поскольку здесь index_num равен 2, выбирается B8*C8*0,2
Возвращаемое значение: 102*2*0,2=40,8 
Пример 4 – Случайный выбор из списка
В Excel иногда нужно случайным образом выбрать значение из заданного списка. С этой задачей отлично справляется функция CHOOSE.
Случайный выбор одного значения из списка:
Формула:
=CHOOSE(RANDBETWEEN(1,5),$D$2,$D$3,$D$4,$D$5,$D$6)
Пояснение:
RANDBETWEEN(1,5):index_num — случайное число от 1 до 5
$D$2, $D$3, $D$4, $D$5, $D$6:список значений, из которого производится выбор 
Пример 5 – Комбинирование функций CHOOSE и VLOOKUP для выполнения операции Возвращаемое значение в Самый левый столбец
Обычно функция ВПР =VLOOKUP (value, table, col_index, [range_lookup]) используется для возврата значения на основе заданного значения из диапазона таблицы. Однако при использовании функции VLOOKUP будет возвращено сообщение об ошибке, если столбец Столбец для возврата расположен слева от столбца поиска, как показано на скриншоте ниже:
В этом случае вы можете использовать функцию CHOOSE вместе с функцией ВПР, чтобы решить эту задачу.
Формула:
=VLOOKUP(E1,CHOOSE({1,2},B1:B7,A1:A7),2,FALSE)
Пояснение:
CHOOSE({1,2},B1:B7,A1:A7):как аргумент диапазона таблицы в функции ВПР. {1,2} означает отображение 1 или 2 в качестве аргумента index_num в зависимости от аргумента col_num в функции ВПР. Здесь col_num в функции ВПР равен 2, поэтому функция CHOOSE отображается как CHOOSE(2, B1:B7,A1:A7), то есть выбирается значение из диапазона A1:A7. 
Пример 6 – Возврат дня недели или месяца на основе заданной даты
С помощью функции CHOOSE вы также можете получить соответствующий день недели или месяц по заданной дате.
Формула 1:вернуть день недели по дате
=CHOOSE(WEEKDAY(),"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
Пояснение:
WEEKDAY():аргумент index_num указывает номер дня недели для заданной даты; например, WEEKDAY(A5) возвращает 6, значит, значение index_num равно 6.
"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday":Аргументы списка значений начинаются с «воскресенья», так как номер дня недели «1» соответствует «воскресенью».
Формула 2:вернуть месяц по дате
=CHOOSE(MONTH(),"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
Пояснение:
MONTH():аргумент index_num, который извлекает номер месяца из указанной даты; например, MONTH(A5) возвращает 3. 
Пример 7 – Возврат даты следующего рабочего дня или выходных на основе текущей даты
В повседневной работе часто возникает необходимость рассчитать следующий рабочий день или выходные на основе текущей даты. В этом случае на помощь придёт функция CHOOSE.
Например, сегодня четверг, 20 декабря 2018 года, и вам нужно определить следующий рабочий день и ближайшие выходные.
Формула 1:получить дату сегодняшнего дня
=TODAY()
Результат: 12/20/2018
Формула 2:получить номер дня недели для сегодняшнего дня
=WEEKDAY(TODAY())
Результат: 5 (при условии, что сегодня 12/20/2018)
Список номеров дней недели приведён на скриншоте ниже:
Формула 3:получить следующий рабочий день
=TODAY()+CHOOSE(WEEKDAY(TODAY()),1,1,1,1,1,3,2)
Пояснение:
Today():вернуть текущую дату
WEEKDAY(TODAY()):аргумент index_num в функции CHOOSE, получить номер дня недели для сегодняшнего дня; например, воскресенье — 1, понедельник — 2…
1,1,1,1,1,3,2: аргумент списка значений в функции CHOOSE. Например, если
Результат (при условии, что сегодня 12/20/2018):
=12/20/2018+CHOOSE(5,1,1,1,1,1,3,2)
=12/20/2018+1
=12/21/2018
Формула 4:получить следующий выходной день
=TODAY()+CHOOSE(WEEKDAY(TODAY()),6,5,4,3,2,1,1)
Пояснение:
6,5,4,3,2,1,1: аргумент списка значений в функции CHOOSE. Например, если WEEKDAY(TODAY()) возвращает 1 (воскресенье), выбирается значение 6 из списка, и формула преобразуется в =TODAY()+6 — то есть к текущей дате добавляются 6 дней, и результатом становится следующая суббота.
Результат:
=12/20/2018+CHOOSE(5,6,5,4,3,2,1,1)
=12/20/2018+2
=12/22/2018 
Лучшие инструменты для повышения продуктивности в Office
Kutools для Excel — Помогает Вам выделяться из толпы
Kutools для Excel предлагает более 300 функций,гарантируя, что всё необходимое всегда под рукой…
Office Tab — Включает вкладочное чтение и редактирование в Microsoft Office (включая Excel)
- Переключайтесь между десятками открытых документов всего за секунду!
- Сокращает сотни кликов мышью каждый день — забудьте о «мышечной руке» раз и навсегда!
- Повышает продуктивность на 50 % при одновременном просмотре и редактировании нескольких документов.
- Добавляет эффективность вкладок в Office (включая Excel) — как в Chrome, Edge и Firefox.
