Похоже, вопрос это . Однако в моем случае мне нужен дополнительный шаг (я думаю). Что я не могу сделать, так это объединить эти два шага.
Допустим, структура данных выглядит следующим образом:
Col A | Col B | Col C | Col D | Col E |
Row 1 Val1 | Val2 | Val3 |
Row 2 Val4 | Val5 | Val6 |
Row 3 Val7 | Val8 | Val9 | Val10 | Val11
Формула, которую я ищу, должна возвращать результаты в соответствии с приведенными ниже сценариями.
1) В отдельной ячейке, если я введу значение (Val4);Выполните VLOOKUP для Val4 в Col A (который находится в строке 2), а затем верните самое правое значение, равное Val6 из Col C
2) В отдельной ячейке, если я введу значение (Val7);Сделайте VLOOKUP для Val7 в Col A (который находится в строке 3) и затем верните самое правильное значение, которое Val10 из Col D
В основном значения столбцов могут увеличиваться вправо. Поэтому мне нужно найти первое значение -> получить строку -> получить самое правильное значение в той же строке ....
Любая помощь очень ценится.
РЕДАКТИРОВАТЬ -1
После приведенных здесь указаний я на полпути пришел к решению. Первое, что нужно упомянуть, это то, что значения в строке могут увеличиваться (в моем примере данных он поднимается до столбца D. Но он может расти до столбца E, F и т. Д. ... в любой строке)
Теперь,давайте предположим, что значение, которое я ищу, находится в H1 . Я помещаю Val4 в H1 и формулу:
OFFSET(A1,MATCH($H$1,$A:$A,0),2,1,1). //Since I have hard coded 3rd parameter to 2; it'll give me Val6 (the last column in that row)
Здесь по MATCH ($ H $ 1, $ A: $ A, 0) возвращает строку,В моем примере он вернет строку 2, так как я ищу Val4 (в H1)
Теперь я должен найти столбцы в строке 2 и остановиться на ColC , поскольку это последнее значение вСтрока 2.
В функции OFFSET третий параметр ищет количество столбцов. Так что, если я могу изменить это значение в зависимости от строки;Проблема решена. Например;если я ищу Val7, в моей формуле OFFSET он сначала найдет строку 3. Но теперь в OFFSET 3-й параметр должен 4 (чтобы получить последнее значение - Val11).
Поскольку я ищу строки, используя MATCH($ H $ 1, $ A: $ A, 0);если я могу передать эту строку в CountA (), проблема решается следующим образом:
CountA(MATCH($H$1,$A:$A,0) : MATCH($H$1,$A:$A,0))
Это неверно. Поэтому теперь пытаюсь использовать функцию INDIRECT (), например:
COUNTA(INDIRECT(MATCH($H$1,$A:$A,0)&":"&MATCH($H$1,$A:$A,0)))
, которая в основном строит row: row как строку и передает ее CountA ()
. Это работает само по себе, но когда япоместите это в 3-й параметр функции OFFSET (), он не будет работать так, как должен.
РЕДАКТИРОВАТЬ - 2 (ОТВЕТ)
Получил для работы с формулой
OFFSET(A1,MATCH($H$1,$A:$A,0)-1,COUNTA(INDIRECT(MATCH($H$1,$A:$A,0)&":"&MATCH($H$1,$A:$A,0)))-1,1,1)
Единственная проблема заключается в поиске столбцов в строке, если у вас есть пустая ячейка, она не будет искать дальше с помощью COUNTA () .... но в противном случае она работает так, как я хочу