Функция CHOOSE в Excel

- Пример 1 - Базовое использование: использование функции CHOOSE для выбора значения из списка аргументов
- Пример 2 – Возвращение различных результатов на основе нескольких условий
- Пример 3 – Возвращение различных рассчитанных результатов на основе условий
- Пример 4 – Выбор случайного значения из списка
- Пример 5 – Комбинирование функций CHOOSE и VLOOKUP для возврата значения из левого столбца
- Пример 6 – Возвращение дня недели или месяца на основе заданной даты
- Пример 7 – Возвращение следующего рабочего дня/выходного дня на основе сегодняшней даты
Описание
Функция CHOOSE возвращает значение из списка значений аргументов на основе заданного номера индекса. Например, CHOOSE(3,”Apple”,”Peach”,”Orange”) возвращает Orange, так как номер индекса равен 3, и Orange является третьим значением после номера индекса в функции.
синтаксис и аргументы
Синтаксис формулы
CHOOSE(index_num, value1, [value2], …) |
Аргументы
|
Value1, value2… могут быть числами, текстами, формулами, ссылками на ячейки или определенным именем.
Возвращаемое значение
Функция CHOOSE возвращает значение из списка на основе заданной позиции.
Использование и примеры
В этой части я привожу несколько простых, но репрезентативных примеров, чтобы объяснить использование функции CHOOSE.
Пример 1 - Базовое использование: использование CHOOSE функции для выбора значения из списка аргументов
Формула 1:
=CHOOSE(3,"a","b","c","d")
Результат: c, что является третьим аргументом после index_num 3 в функции CHOOSE.
Примечание: используйте двойные кавычки вокруг значения, если это текст.
Формула 2:
=CHOOSE(2,A1,A2,A3,A4)
Результат: Kate, значение A2. Поскольку index_num равен 2, и A2 является вторым значением в функции CHOOSE.
Формула 3:
=CHOOSE(4,8,9,7,6)
Результат: 6, четвертое значение в списке аргументов функции.
Пример 2 – Возвращение разных результатов на основе нескольких условий
Предположим, у вас есть список отклонений для каждого продукта, которые нужно пометить на основе условий, как показано на скриншоте ниже.
Обычно вы можете использовать функцию IF для обработки, но здесь я покажу, как использовать функцию 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")
Как известно, True = 1, False = 0, поэтому формулу можно рассматривать как:
=CHOOSE(1+1+0,"Top","Middle","Bottom")
затем
=CHOOSE(2,"Top","Middle","Bottom")
Результат: Middle
Пример 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 =VLOOKUP (value, table, col_index, [range_lookup]) для возврата значения на основе заданного значения из диапазона таблицы. Но с помощью VLOOKUP функции она вернет ошибку, если возвращаемый столбец находится слева от столбца поиска, как показано на скриншоте ниже:
В этом случае вы можете комбинировать функцию CHOOSE с функцией VLOOKUP для решения проблемы.
Формула:
=VLOOKUP(E1,CHOOSE({1,2},B1:B7,A1:A7),2,FALSE)
Объяснение:
CHOOSE({1,2},B1:B7,A1:A7): как аргумент table_range в функции VLOOKUP. {1,2} означает отображение 1 или 2 как аргумента index_num на основе аргумента col_num в функции VLOOKUP. Здесь col_num в функции VLOOKUP равен 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": аргументы списка значений, начинаются с “Sunday”, потому что номер дня недели “1” указывает на “Sunday”.
Формула 2: возврат месяца по дате
=CHOOSE(MONTH(),"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
Объяснение:
MONTH(): аргумент index_num, который получает номер месяца из заданной даты, например, MONTH(A5) возвращает 3.
Пример 7 – Возвращение следующего рабочего дня/выходного дня на основе сегодняшней даты
В повседневной работе вы можете захотеть рассчитать следующий рабочий день или выходной на основе сегодняшней даты. Функция CHOOSE также может помочь вам в этом.
Например, сегодня 20.12.2018, четверг, теперь вам нужно получить следующий рабочий день и выходной.
Формула 1: получить дату сегодня
=TODAY()
Результат: 20.12.2018
Формула 2: получить номер дня недели сегодня
=WEEKDAY(TODAY())
Результат: 5 (пока сегодня 20.12.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. Например, если weekday(today()) возвращает 1 (воскресенье), он выбирает 1 из списка значений, тогда вся формула меняется на =Today()+1, что означает добавление 1 дня для возврата следующего понедельника. Если weekday(today()) возвращает 6 (пятница), он выбирает 3 из списка значений, потому что пятница находится на расстоянии 3 дней от следующего понедельника.
Результат (пока сегодня 20.12.2018):
=20.12.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 дней и возврат следующей субботы.
Результат:
=20.12.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.