1

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

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

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

  2. Перейти к листу с этим номером.

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

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

1 ответ1

0

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

Похоже, вы можете использовать CHOOSE и INDIRECT для динамического построения пути к соответствующему рабочему листу на основе значения, помещенного в 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 в вашем списке ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .