Пост до UPD
Часто вижу в таблицах констралябии из 10 ифов разной степени вложенности, когда проверяется одна переменная и, в зависимости от ее результата, используется разный код.
Не буду выдумывать сам, использую пример, который используют в учебниках по программированию - в зависимости от числа - менять окончание существительного. Считать будем пикабушников.
1, 21 и т.д. пикабушник
2,3,4, 22, 23, 24 и т.д. пикабушника
5, 6, 7, 8, 9, 10 и т.д. пикабушников
Т.е для всех чисел, которые заканчиваются на 1 - окончание [] (кроме 11)
Для всех чисел, которые заканчиваются на 2,3 и 4 - окончание [а].
Для всех чисел, которые заканчиваются на 5, 6, 7, 8, 9, 0 - окончание [ов].
В книжках по программированию для большинства языков этот кейс решается функцией switch case. Но в экселе и ГТ нет такой функции. Предлагаю заменить ее ВПРом внутри функции.
Логика следующая - мы смотрим остаток от деления на 10 и в зависимости от результата возвращаем то или иное окончание.
Осталось только решить вопрос с 11. Здесь лучше всего использовать деление на 100 и, т.к. варианта тут всего 2 - 11 или все остальное - нам подойдет обычный if.
Итог:
Здесь видно, что результатом, который возвращает ВПР может быть и формула.
Покажу еще один пример. Это уже из боевого. Когда используются фильтры по датам - иногда удобно использовать понятные конструкции ("Текущая неделя", "Текущий месяц") и дать при этом возможность пользователю выбрать произвольную дату.
Мы ограничимся тремя вариантами - "Текущий месяц", "Прошлый месяц" и "Произвольная дата".
Если пользователь выбирает "Текущий месяц" или "Прошлый месяц", то ВПР внутри фильтра возвращает ему значение даты, которая задается формулой "КОНЕЦМЕСЯЦА(СЕГОДНЯ())". В случае, если он выбирает "Произвольная дата", то ВПР возвращает ошибку и срабатывает функция "ЕСЛИОШИБКА", которая возвращает значение даты, выбранной пользователь в ячейках F2 и F3.
Вот и все, дорогие чатлане. Надеюсь этот пост был полезен. Вопросы и предложения, а также критику пишите в комменты.
Ссылка на таблицу:
https://docs.google.com/spreadsheets/d/1Q6xXFxfSWytAlcfY823i...