Индексировать и сопоставлять с несколькими строками и столбцами — вернуть ячейку ниже

#excel

#excel

Вопрос:

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

это изображение таблицы

Так, например, у меня есть ячейка на другом листе, которая имеет значение ‘P’. Что я хочу сделать, так это выполнить поиск этого значения и вернуть значение ячейки под ним, которое в данном случае равно «11».

Примечание: в таблице нет заголовков.

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

1. уникальны ли элементы для поиска?

2. Да, они уникальны

Ответ №1:

Попробуйте Sumproduct() с Index() помощью .

 =INDEX(A1:E6,SUMPRODUCT(ROW(A1:E6)*(A1:E6="P")) 1,SUMPRODUCT(COLUMN(A1:E6)*(A1:E6="P")))
  

Ответ №2:

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: речь идет о нашем инструменте esProc. Это более простой способ решить эту проблему.

 A1 = =clipboard().import@t() //copy the Data area in Excel,then import from the clipboard
A2 = A1.split@n("t")
A3 = A2.step(2,1).conj()
A4 = A2.step(2,2).conj()
A5 = A3.(~ "t" A4(#)).concat@n() //Paste the results to Excel
  

Дополнительные пояснения см. в разделе Преобразование многорядной таблицы в обычную таблицу по строкам

Ответ №3:

Используйте ИНДЕКС с двумя АГРЕГИРОВАННЫМИ:

 =INDEX(A1:E6,AGGREGATE(15,7,(ROW(A1:E6)-MIN(ROW(A1:E6)) 1)/(A1:E6=H2),1) 1,AGGREGATE(15,7,(COLUMN(A1:E6)-MIN(COLUMN(A1:E6)) 1)/(A1:E6=H2),1))
  

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


Для тех, у кого есть доступ к формуле динамического массива LET , мы можем уменьшить количество ссылок на диапазоны:

 =LET(rng,A1:E6,lkpVal,H2,INDEX(rng,AGGREGATE(15,7,(ROW(rng)-MIN(ROW(rng)) 1)/(rng=lkpVal),1) 1,AGGREGATE(15,7,(COLUMN(rng)-MIN(COLUMN(rng)) 1)/(rng=lkpVal),1)))
  

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

1. Большое вам спасибо, это именно то, что я хочу. Я ценю вашу помощь

2. Что Sumproduct нравится =INDEX(A1:E6,SUMPRODUCT(ROW(A1:E6)*(A1:E6="P")) 1,SUMPRODUCT(COLUMN(A1:E6)*(A1:E6="P"))) .