Оглавление
В учебнике объясняется синтаксис и основные способы использования функции CHOOSE, а также приводится несколько нетривиальных примеров, показывающих, как использовать формулу CHOOSE в Excel.
CHOOSE - одна из тех функций Excel, которые сами по себе могут показаться бесполезными, но в сочетании с другими функциями дают ряд потрясающих преимуществ. На самом базовом уровне вы используете функцию CHOOSE для получения значения из списка, указывая позицию этого значения. Далее в этом руководстве вы найдете несколько расширенных вариантов использования, которые, безусловно, стоит изучить.
Функция Excel CHOOSE - синтаксис и основные способы использования
Функция 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, "Майк", "Салли", "Эми", "Нил")
Формула возвращает "Эми", потому что индексное_число равно 3, а "Amy" - это третье значение в списке:
Функция Excel CHOOSE - 3 вещи, которые нужно помнить!
CHOOSE - очень простая функция, и вы вряд ли столкнетесь с трудностями при ее применении в своих листах. Если результат, возвращаемый вашей формулой CHOOSE, неожиданный или не тот, который вы искали, это может быть вызвано следующими причинами:
- Количество значений для выбора ограничено 254.
- Если индексное_число меньше 1 или больше количества значений в списке, возвращается ошибка #VALUE!
- Если индексное_число аргумент является дробью, он усекается до наименьшего целого числа.
Как использовать функцию CHOOSE в Excel - примеры формул
Следующие примеры показывают, как CHOOSE может расширить возможности других функций Excel и обеспечить альтернативные решения некоторых распространенных задач, даже тех, которые многие считают невыполнимыми.
Excel CHOOSE вместо вложенных IF
Одна из наиболее часто встречающихся задач в 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), "Плохо", "Удовлетворительно", "Хорошо", "Отлично")
Как работает эта формула:
В индексное_число аргумент, вы оцениваете каждое условие и возвращаете TRUE, если условие выполнено, FALSE в противном случае. Например, значение в ячейке B2 удовлетворяет первым трем условиям, поэтому мы получаем такой промежуточный результат:
=CHOOSE(TRUE + TRUE + TRUE + FALSE, "Плохо", "Удовлетворительно", "Хорошо", "Отлично")
Учитывая, что в большинстве формул Excel значение TRUE равно 1, а FALSE - 0, наша формула подвергается такому преобразованию:
=CHOOSE(1 + 1 + 1 + 0, "Плохо", "Удовлетворительно", "Хорошо", "Отлично")
После выполнения операции сложения имеем:
=CHOOSE(3, "Плохо", "Удовлетворительно", "Хорошо", "Отлично")
В результате возвращается 3-е значение в списке, которое является "Good".
Советы:
- Чтобы сделать формулу более гибкой, вы можете использовать ссылки на ячейки вместо жестко заданных меток, например:
=CHOOSE((B2>0) + (B2>=51) + (B2>=101) + (B2>=151), $E$1, $E$2, $E$3, $E$4)
- Если ни одно из ваших условий не является ИСТИНОЙ, то индексное_число аргумент будет установлен в 0, что заставит вашу формулу вернуть ошибку #VALUE! Чтобы избежать этого, просто оберните CHOOSE в функцию IFERROR следующим образом:
=IFERROR(CHOOSE((B2>0) + (B2>=51) + (B2>=101) + (B2>=151), "Плохо", "Удовлетворительно", "Хорошо", "Отлично"), "")
Пример 2. Выполнение различных вычислений в зависимости от условия
Аналогичным образом можно использовать функцию Excel CHOOSE для выполнения одного вычисления в серии возможных вычислений/формул без вложения нескольких операторов 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)
Формула Excel CHOOSE для генерации случайных данных
Как вы, наверное, знаете, в Microsoft Excel есть специальная функция для генерации случайных целых чисел между нижним и верхним числами, которые вы задаете - функция RANDBETWEEN. Вложите ее в файл индексное_число аргумент CHOOSE, и ваша формула будет генерировать практически любые случайные данные, которые вы захотите.
Например, эта формула может выдать список случайных результатов экзамена:
=CHOOSE(RANDBETWEEN(1,4), "Плохо", "Удовлетворительно", "Хорошо", "Отлично")
Логика формулы очевидна: RANDBETWEEN генерирует случайные числа от 1 до 4, а CHOOSE возвращает соответствующее значение из заранее определенного списка из четырех значений.
Примечание. RANDBETWEEN является непостоянной функцией и пересчитывается при каждом изменении рабочего листа. В результате ваш список случайных значений также изменится. Чтобы этого не произошло, вы можете заменить формулы их значениями с помощью функции Специальная вставка особенность.
Формула CHOOSE для выполнения левого Vlookup
Если вы когда-нибудь выполняли вертикальный поиск в Excel, то знаете, что функция VLOOKUP может искать только в крайнем левом столбце. В ситуациях, когда вам нужно вернуть значение слева от столбца поиска, вы можете использовать комбинацию INDEX / MATCH или обмануть VLOOKUP, вложив в него функцию CHOOSE. Вот как это сделать:
Предположим, у вас есть список оценок в столбце A, имена студентов в столбце B, и вы хотите получить оценку конкретного студента. Поскольку столбец возврата находится слева от столбца поиска, обычная формула Vlookup возвращает ошибку #N/A:
Чтобы исправить это, используйте функцию CHOOSE, чтобы поменять местами позиции столбцов, сообщив Excel, что столбец 1 - это B, а столбец 2 - это A:
=CHOOSE({1,2}, B2:B5, A2:A5)
Поскольку мы предоставляем массив {1,2} в индексное_число аргумент, функция CHOOSE принимает диапазоны в диапазоне значение аргументы (обычно этого не происходит).
Теперь вставьте приведенную выше формулу в массив_таблиц аргумент VLOOKUP:
=VLOOKUP(E1,CHOOSE({1,2}, B2:B5, A2:A5),2,FALSE)
И вуаля - поиск слева выполняется без проблем!
ВЫБИРАЙТЕ формулу для возврата на следующий рабочий день
Если вы не уверены, стоит ли вам завтра идти на работу или можно остаться дома и насладиться заслуженными выходными, функция Excel CHOOSE может узнать, когда следующий рабочий день.
Если предположить, что ваши рабочие дни - с понедельника по пятницу, то формула выглядит следующим образом:
=TODAY()+CHOOSE(WEEKDAY(TODAY()),1,1,1,1,1,3,2)
Запутанная на первый взгляд, при ближайшем рассмотрении логика формулы становится понятной:
WEEKDAY(TODAY()) возвращает порядковый номер, соответствующий сегодняшней дате, в диапазоне от 1 (воскресенье) до 7 (суббота). Этот номер переходит к индексное_число аргумент нашей формулы 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 для возврата пользовательского имени дня/месяца из даты
В ситуациях, когда необходимо получить название дня в стандартном формате, например, полное название (понедельник, вторник и т.д.) или краткое название (пн, вт и т.д.), можно использовать функцию ТЕКСТ, как описано в данном примере: Получить день недели из даты в 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 для улучшения ваших моделей данных. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Скачать рабочую тетрадь для практических занятий
Примеры функций Excel CHOOSE