Избегание длинных вложенных IF в функциях Excel

Избегание длинных вложенных IF в функциях Excel

У меня есть формула, которая опирается на два разных ввода: первый — это целое число от 0 до 5, а второй — округленная сумма значений в массиве. Я хотел бы, чтобы пользователи вводили значения для обоих из них, а затем формула определяла желаемый вывод. Проблема в том, что сейчас у меня есть 6 комбинаций для первой переменной, и каждая из них приводит к изменению способа использования второй переменной. Таким образом, мне понадобится очень большое количество операторов IF, чтобы это заработало.

У меня есть таблицы, настроенные в другом месте, по одной для каждого от 0 до 5, которые определяют правильные значения. Мой вопрос в том, есть ли способ заставить Excel сделать следующее?

  1. Проверьте, помещено ли число от 0 до 5, скажем, в ячейку A2.

  2. Перейдите к листу, содержащему это число.

  3. INDEX(...,MATCH())из таблицы на этом листе на основе как количества значений, размещенных в массиве, так и самих значений.

Мне интересно, может быть, было бы разумнее вообще избегать таблиц и вместо этого попытаться вычислять напрямую, но я не вижу способа сделать это, не приводя к огромному набору вложенных IFs. Дайте мне знать, если что-то здесь непонятно, и я постараюсь объяснить это как можно лучше.

решение1

Если я правильно понимаю, вам нужно создать формулу, которая выполняет операцию индексирования/сопоставления с таблицами, находящимися на разных листах, где пользователь выбирает, на каком листе следует выполнять поиск.

Похоже, вы, возможно, захотите использовать функции ВЫБОР и ДВУСМЫСЛЕННЫЙ для динамического построения пути к соответствующему рабочему листу на основе значения, помещенного в ячейку A2.

Например, ниже будет запущено сопоставление, использующее значение, найденное в B2, с ячейками в диапазоне A1:A3 на соответствующем рабочем листе, где рабочий лист основан на значении (1,2,3), которое пользователь ввел в A2.

=MATCH(A2,(INDIRECT(CHOOSE(B2,"Sheet1","Sheet2","Sheet3") & "!" & "A1:A3")),0)

Здесь CHOOSE используется для наблюдения за ячейкой (A2) и на основе введенного в нее значения выводит объект с соответствующим индексом, который в данном случае является именем рабочей книги.

Функция INDIRECT позволяет строить путь к ячейке «на лету» и, таким образом, встраивает правильное имя рабочего листа в путь, который будет использоваться функцией SUM.

Конечно, если ваши таблицы представляют собой именованные диапазоны или имеют разные размеры, вы всегда можете изменить статические «A1:A3» в примере выше на другой оператор CHOOSE, который выведет правильную часть пути на основе ввода пользователя в другой ячейке.

Извините, если это совсем не соответствует тому, что вы пытаетесь сделать — я не уверен, что понимаю шаг 3 в вашем списке...

Связанный контент