
這是一個我可能很難解釋的問題,所以請耐心等待。
在一張紙上,我有一列包含多個單元格,其中一些為空白,一些具有單一值,一些具有多個值。在另一張紙上,我列出了這些值以及適當的家。這是我正在使用的範例:
表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
Sheet1 上的預期輸出:
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 位於 Sheet2!A1 的橄欖球標題下。
新增的內容可能重要也可能不重要:Sheet1!C 中的任何值都不會包含位於另一個標題中的團隊。例如,Crimson-tide 只會位於 Sheet2 上的足球標題下方,而不是同時位於足球和籃球標題下方。到目前為止,如果 C 列中的團隊與 Sheet2 上的團隊匹配,我只能顯示 True/False 結果。我不知道如何顯示適當的標題。請幫忙!
答案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)))