2

Используя INDEX и MATCH для выполнения VLOOKUP с несколькими условиями, я в настоящее время получаю результаты для нужного столбца, используя приведенную ниже формулу, но результат на 1 строку ниже, чем требуется.

{=INDEX($A$2:$E$1200,MATCH(1,(A:A=A2)*(E:E="WS01"),0),3)}

На прилагаемом изображении мы видим S/N строки 4, возвращенные для результата строки 3 в поиске записи "WS01". Если я заменю множитель (*) в MATCH на дополнение, я получу правильный результат для первого хранилища (# 2), но затем для всех последующих строк формула в итоге предоставит S/N для строки 4 (REG01), поэтому это тоже не правильный путь.

1 ответ1

2

Принцип работы этих функций заключается в следующем

Индекс принимает массив (A2, A3, A4 ...), а также число

= Index(A2:A4,2) вернет значение в A3, так как это вторая ячейка в массиве.

Match просматривает массив и возвращает номер ячейки, в которой он будет найден (2-я ячейка, 4-я ячейка и т.д.), Но не возвращает фактическую позицию ячейки.

Таким образом, не используя совпадающие массивы в двух функциях

  • Индекс использует C2:C1000
  • Матч использует A:A

Вы вызываете свое несоответствие. Функция соответствия находит, что в 3-й строке (A3) все совпадает, поэтому возвращает 3.

Индекс затем принимает (C2:C1000,3) и возвращает 3-ю ячейку, которая оказывается C4, а не C3.

Обратите внимание, что для функции массива вы можете просто использовать C2:C1000, а не A2:E1000, тогда вы можете опустить часть столбца функции.

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