Да, это может быть достигнуто только с помощью формул:
Поиск ярлыков (столбец A):
=IFERROR(INDEX(Table1[#Headers],SMALL(IF(OFFSET(Table1[#Headers],MATCH($B$8,Table1[vendorname],0),0)="","",COLUMN(Table1[#Headers])),ROW()-ROW($A$7))),"")
MATCH($B$8,Table1[vendorname],0)
находит строку, содержащую выбранный контакт
OFFSET(Table1[#Headers],MATCH(...),0)
получает адрес выбранной строки
IF(OFFSET(...)="","",COLUMN(Table1[#Headers]))
проверяет, какие столбцы выбранного элемента содержат данные (пустое значение для пустых, номер столбца для остальных)
SMALL(IF(...),ROW()-ROW($A$7)
выбирает следующий столбец, который будет использоваться
INDEX(Table1[#Headers],SMALL(...))
получает заголовок
=IFERROR(INDEX(...),"")
показывает пустую ячейку после отображения всех данных
Поиск данных (столбец B):
=IFERROR(INDEX(OFFSET(Table1[#Headers],MATCH($B$8,Table1[vendorname],0),0),SMALL(IF(OFFSET(Table1[#Headers],MATCH($B$8,Table1[vendorname],0),0)="","",COLUMN(Table1[#Headers])),ROW()-ROW($A$7))),"")
Единственным отличием от предыдущего является первый параметр INDEX()
, который является той же формулой OFFSET()
используется в small для поиска данных в выбранной строке, а не в заголовке.
Обе формулы являются формулами массива, поэтому вам нужно ввести их, нажав CTRL+SHIFT+ENTER.