#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")))
.