Скажем, у меня есть стол:

Описание изображения

Я хочу найти ячейку и вернуть заголовок ее столбца. Например, если я ищу Orange , результат будет Fruit . Я могу добиться этого, используя вложенный if (E2 здесь Orange ):

=IF(NOT(ISERROR(MATCH(E2,A1:A4,0))),A1,IF(NOT(ISERROR(MATCH(E2,B1:B3,0))),B1,C1))

Но в большом столе это невозможно. Плюс, что я не могу знать, происходит ли ошибка. Есть ли лучший способ получить результат? Я не знаю, сколько строк в каждом столбце. В таблице нет дублированных данных. Таблица не начинается в A1 , и в будущем ее можно переместить в другую электронную таблицу.

2 ответа2

3

Если Aggregate не находится между функциями, которые вы можете использовать:
=OFFSET(A1,0,SUMPRODUCT(--(A2:C4=E2)*COLUMN(A2:C4))-1)
Sumproduct определит номер столбца для соответствующего значения, которое вы ищете.
Смещение вернет заголовок эквивалентного столбца.

1

Используйте AGGREGATE(), чтобы вернуть номер столбца в функцию INDEX():

=INDEX(1:1,AGGREGATE(15,6,COLUMN($A$2:$C$4)/($A$2:$C$4=E2),1))

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