如果符合条件,则尝试从文本字符串中提取两个可能的单词之一,或者完整地输入字符串

Attempting to extract one of two possible words from a text string if matches a criteria, or input the string in it's entirety

我正在尝试从文本字符串中取回两个可能的词(本地或国家)之一,如果这两个词都不在文本字符串中,则在整个单元格中取回该字符串

我遇到的问题是,当它们出现时我可以带回任何一个词,但当它们不出现时我会收到错误消息

我目前正在使用

  =IFERROR(IF(SEARCH("*local*",B2,1),"Local"),IF(SEARCH("*national*",B2,1),"National"))    

然而,如果单词不存在,这显然不会带回

我敢肯定这很容易,但我遗漏了一些东西,但我就是想不通。任何帮助都会很棒

大家干杯

您可以使用:

B1中的公式:

=IF(ISNUMBER(SEARCH("*local*",A1)),"Local",IF(ISNUMBER(SEARCH("*national*",A1)),"national",A1))

向下拖动

注:

请注意,您的通配符使得即使其中包含 'international' 的字符串也会 return 'national'。如果这不是您想要的,您应该删除通配符。

我建议使用正则表达式。

=IF(REGEXMATCH(A2,"(Local|National)"),REGEXEXTRACT(A2,"(Local|National)"),A2)

您也可以使用 INDEX/AGGREGATE:

=IFERROR(INDEX({"local","national"},AGGREGATE(15,7,ROW(:)/(ISNUMBER(SEARCH({"local";"national"},A1))),1)),A1)

这将允许将两个硬编码数组替换为一系列包含输出的单元格。如果 LocalNational 在 D1:D2 中,那么您可以使用:

=IFERROR(INDEX($D:$D,AGGREGATE(15,7,ROW($D:$D)/(ISNUMBER(SEARCH($D:$D,A1))),1)),A1)

如果列表变大,公式不会这样。