excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel技巧:根据指定关键词提取对应文本

收到粉丝提问:Excel中如何在已有关键词库的基础上,提取单元格中包含关键词库中已有的关键词?

想在A列中提取包含D列已有的关键词并将关键词填写在B列,如果A列单元格中没有包含D列的关键词则显示为空白或者其他标记。

难点:关键词在A列中的位置不固定,可能在开头也可能在结尾,关键词字数也不固定,并且可能是数字。想问如何实现这个提取功能?如图所示:

这种情况下,想要根据A列单元格是否包含D列中的关键词并返回到对应位置,可以使用这个函数公式:

=TEXTJOIN(", ",TRUE,IF(ISNUMBER(SEARCH($D$2:$D$6,A25)),$D$2:$D$6,""))

公式中用到了TEXTJOIN、IF、ISNUMBER、SEARCH多个函数,相关释义如下:

1、SEARCH($D$2:$D$6,A2)

SEARCH函数用于在单元格A2的内容中查找范围$D$2:$D$6中的每个关键词。

2、ISNUMBER(SEARCH($D$2:$D$6, A2))

ISNUMBER函数检查SEARCH函数的返回值是否为数字,如果找到关键词,会返回一个数字;如果没有找到关键词,会返回错误值。

3、IF(ISNUMBER(SEARCH(...)), $D$2:$D$6, "")

IF函数根据ISNUMBER的结果返回关键词。如果ISNUMBER返回的是数字,则返回关键词列表(即$D$2:$D$6),否则,则返回空字符串(“ ”)。

4、TEXTJOIN(", ", TRUE, ...)

TEXTJOIN函数将多个文本项连接成一个字符串,并用指定的分隔符分隔这些文本项。将IF函数返回的关键词(通过逗号分隔和空格)合并为一个单一的字符串。

倘若需要处理空值,用文本标识出来,如“未找到”,可以使用下面的公式:

=IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$6, A2)))=0, "未找到", TEXTJOIN(",",TRUE,IF(ISNUMBER(SEARCH($D$2:$D$6, A2)), $D$2:$D$6, "")))

在前面的公式前加上IF函数,借助IF来处理空值,返回文本“未找到”,增加的部分相关释义如下:

1.SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$6, A2)))

用于检查 $D$2:$D$6 范围内的值是否存在于 A2 中。

如果有任何匹配项,ISNUMBER(SEARCH(...)) 将返回 TRUE,然后 SUMPRODUCT 将计算出这些 TRUE 的数量。如果返回 0,表示没有找到任何匹配项。

2.IF(SUMPRODUCT(...) = 0, "未找到", ...)

用于判断是否没有找到匹配项,如果没有找到则返回 “未找到”。

想了解更多精彩内容,快来关注

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接