Использование индекса и сопоставления для извлечения данных из таблицы без заголовка строки

#excel

#excel

Вопрос:

Мне нужно собрать значение SPL в следующей таблице:

В моей электронной таблице я требую, чтобы пользователь ввел две конкретные части информации: имя (заголовки), а затем расстояние, которое является числами в моей матрице (минус последние два столбца)… На основе пользовательского ввода мне нужно сопоставить имя и расстояние, чтобы найти SPL и PEL для этой комбинации.

Изначально я пытался сделать что-то вроде

 =INDEX(Wet_Suit_Un_Hooded9[SPL
(dB)],MATCH(Sheet1!C15,Wet_Suit_Un_Hooded9[[BSY-1]:[SQS-56]],1),MATCH(Sheet1!C13,Wet_Suit_Un_Hooded9[#Headers],0))
  

Однако я понял, что СОПОСТАВЛЕНИЕ не сработает, потому что я прошу его найти значение в матрице, а не в массиве. Мне было интересно, какие у меня есть варианты решения этой проблемы. Должен ли я воссоздать таблицу, чтобы каждое расстояние было в одном столбце, а данные SPL заменяли то место, где данные о расстоянии находятся в данный момент … таким образом, СОПОСТАВЛЕНИЕ ИНДЕКСА может найти правильную строку? Или есть другой способ обойти это, например, вложенный оператор IF в зависимости от выбранного имени?

Ответ №1:

Вы можете решить проблему, используя ИНДЕКС (ссылка, row_num, [column_num], [area_num])

В справочнике вы можете добавить такие области, как (A1: N100, B1: N100, C1: N100 … до M1: N100)

Окончательная формула будет примерно такой

VLOOKUP(,INDEX((A1:N100, B1: N100,….),0,0, СОВПАДЕНИЕ(,A1: M1,0)),<общее количество столбцов, т.е. 14> -СОВПАДЕНИЕ(,A1: N1,0) 1,0)

Здесь мы создаем несколько областей в формуле индекса и выбираем область для поиска по первому совпадению. Функция index вернет массив, который будет использоваться во ВПР.