Индекс Excel: ошибка ссылки при использовании функции индекса

#excel #excel-formula

#excel #excel-формула

Вопрос:

введите описание изображения здесь

Я использую формулу как:

 =INDEX(B1:G1,H3)
  

Это не работает. даже при наличии жестких похожих сообщений я не смог найти проблему с этим.

На самом деле я выполняю максимальное количество всех объектов строки, таких как:

 =MAX(B2:G2)
  

и выполнение

 =INDEX(B1:G1,H2)
  

Это работает для первой строки, а не для другой

Комментарии:

1. Первый работает из-за совпадения, ничего больше. 6 — это максимальное значение, и это просто позиция значения, которое вы ищете. Третья строка #REF! потому что вы пытаетесь получить 8-ю ячейку в пределах 6 ячеек; она не может быть найдена. То же самое относится к четвертой строке с 77-й ячейкой в пределах 6 ячеек.

Ответ №1:

ИНДЕКСУ требуется относительная позиция, а не значение. Вам нужно добавить СООТВЕТСТВИЕ:

 =INDEX($B$1:$G$1,MATCH(H2,B2:G2,0))
  

Совпадение вернет относительное положение совпадения.

Комментарии:

1. =INDEX($B$1:$G$1,1, MATCH(H2,B2:G2,0))

2. какие значения здесь имеют 1 и 0.

3. @user11217663 поскольку диапазон составляет одну строку, ,1 он не нужен.

4. @MLLearner2 0 в моем заставляют его искать точное соответствие.

5. Спасибо @user11217663

Ответ №2:

Индекс использует H3 для определения возвращаемого столбца. Вот почему Row1 функционирует. Это поиск столбца 6 (между B1:G1) и возврат результата. Это всего лишь случайность, что это правильный ответ. Если бы вы заменили 5 в ячейку H2, это также вернуло бы столбец 5. В других показанных примерах функция max возвращает индекс столбца, который превышает то, что есть в массиве (B1: G1 имеет длину 6 столбцов).

Для исправления выполните сопряжение индекса с функцией сопоставления. Match выполнит поиск в массиве (B2: G2; B3: G3; и т.д.) и вернет номер соответствующего столбца, затем передаст его функции Index для возврата правильного результата.

Ваша окончательная формула будет выглядеть следующим образом: =INDEX($ B $1: $ G $ 1, MATCH(H2, B2: G2, 0))