Формула для сопоставления заголовка со значением

Формула для сопоставления заголовка со значением

Это вопрос, который мне, возможно, будет трудно объяснить, поэтому отнеситесь ко мне с пониманием.

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

Лист1:

C1: Team Names
C2: crimson-tide, bulldogs
C3: bulldogs
C4: (blank)
C5: canucks

Лист2:

A1: Football          B1: Basketball        C1: Hockey
A2: crimson-tide      B2: celtics           C2: maple-leafs
A3: bulldogs          B3: mavericks         C3: oilers
A4: tigers            B4: gonzaga-bulldogs  C4: canucks
A5: longhorns         B5: warriors          C5: bruins

Ожидаемый результат на Листе 1:

D2: Football
D3: Football
D4: No Sport Found
D5: Hockey

Фактический результат:

D2: (blank)
D3: FootballBasketBall
D4: (blank)
D5: Hockey

Я хочу выполнить итерацию по Sheet1!C2:C5, и любое значение, которое имеет соответствие на Sheet2!A2:C5, отобразит соответствующий заголовок из Sheet2!A1:C1. Например, Sheet1!C2 скажет 'Football', поскольку crimson-tide или bulldogs находятся под заголовком football на Sheet2!A1.

Что может быть важно или неважно добавить: ни одно значение в Sheet1!C не будет иметь команду, которая будет в другом заголовке. Crimson-tide будет только под футбольным заголовком на Sheet2, а не под обоими заголовками футбола и баскетбола, например. До сих пор я мог показать результат True/False только если команда в столбце C совпадает с командой на Sheet2. Я не могу понять, как отобразить соответствующий заголовок. Пожалуйста, помогите!

решение1

Попробуйте ввести следующую формулу в ячейкуD2

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


=LET(
     _S2Sports, Sheet2!A$2:C$5,
     _Sports, TOCOL(IFS(_S2Sports<>"",Sheet2!A$1:C$1),2,1),
     _Teams, TOCOL(_S2Sports,1,1),
     _Match, XLOOKUP(TEXTSPLIT(C2,,", "),_Teams,_Sports,"No Team Found"),
     IFERROR(TEXTJOIN("|",1,UNIQUE(_Match)),"No Sport Found"))

Используя одну формулу динамического массива:

=LET(
     _S2Sports, Sheet2!A$2:C$5,
     _Sports, TOCOL(IFS(_S2Sports<>"",Sheet2!A$1:C$1),2,1),
     _Teams, TOCOL(_S2Sports,1,1),
     BYROW(C2:C12, LAMBDA(x, LET(_Match, XLOOKUP(TEXTSPLIT(x,,", "),_Teams,_Sports,"No Team Found"),
     IFERROR(TEXTJOIN("|",1,UNIQUE(_Match)),"No Sport Found")))))

Если у вас нет доступа к TOCOL()&, TEXTSPLIT()то:

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


=LET(
     _Sports, Sheet2!$A$2:$C$5,
     _Found, N(ISNUMBER(SEARCH(", "&_Sports&", ",", "&$C2&", "))),
     _MatrixCal, MMULT(SEQUENCE(,ROWS(_Sports))^0,_Found),
     _Output, FILTER(Sheet2!$A$1:$C$1,_MatrixCal,"No Team Found"),
     IF(C2="","No Sport Found",TEXTJOIN("|",,_Output)))

Связанный контент