Excel - 从多个值的列中查找一个值并返回与搜索值关联的值

问题描述 投票:0回答:1

我见过这个公式,手动添加值并返回值很好,但维护起来很费力:

=IFS(ISNUMBER(SEARCH("Hello",[@Column1])),"Welcome",(ISNUMBER(SEARCH("Hi",[@Column1]))),"Welcome",TRUE,"")

但我想要的是使其更易于维护,使用搜索词列表和表格中的预期文本结果,例如

  • 搜索最好不区分大小写
  • 搜索将在可搜索文本单元格中的任意位置查找文本

搜索和结果标准表

搜索 返回
是的
人类 没有
是的
宝贝 没有

要搜索的文本和预期返回值 - 将从搜索列表表值中查找任何值并填写上面返回列表中的值,例如

可搜索文本 退货
拉布拉多犬 是的
澳大利亚人 没有
拉布拉多猫 是的
奥地利宝宝 没有
拉布拉多狗男孩 是的

抱歉这个例子很糟糕 谢谢 院长

见上文

=IFS(ISNUMBER(SEARCH("Hello",[@Column1])),"Welcome",(ISNUMBER(SEARCH("Hi",[@Column1]))),"Welcome",TRUE,"")

可以工作,但对于大型搜索值和结果列表来说并不理想

excel find
1个回答
0
投票

尝试以下公式-

=IF(OR(XLOOKUP(TEXTSPLIT(A2,," "),$G$2:$G$5,$H$2:$H$5,"No")="Yes"),"Yes","No")

要使其成为动态溢出数组,请使用

MAP()
BYROW()
函数。

=MAP(A2:A6,LAMBDA(x,IF(OR(XLOOKUP(TEXTSPLIT(x,," "),$G$2:$G$5,$H$2:$H$5,"No")="Yes"),"Yes","No")))

编辑:如果您使用

TRUE/FALSE
那么我们可以像这样简化它 -

=OR(XLOOKUP(TEXTSPLIT(A2,," "),$G$2:$G$5,$H$2:$H$5,FALSE))

© www.soinside.com 2019 - 2024. All rights reserved.