匹配标头和值的公式

匹配标头和值的公式

这个问题我可能很难解释,所以请耐心听我说。

在一张工作表中,我有一列包含多个单元格,其中一些单元格为空白,一些单元格只有一个值,一些单元格有多个值。在另一张工作表中,我列出了这些值,并为其指定了相应的位置。以下是我正在处理的示例:

工作表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 上的 Football 标题下。

需要补充的可能重要也可能不重要: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)))

相关内容