检查 Excel 单元格中的特定文本部分

检查 Excel 单元格中的特定文本部分

我正在尝试创建一个函数,如果“BoardRole”列中的某个部分包含“Independent”,并且其前后的内容无关紧要,则将 1 分配给“independent”列,否则将 0 分配给该列。有人能帮我吗?

为了澄清起见,我在此帖子中添加了一个截图。

Excel 屏幕

答案1

你缺少的信息是寻找()或者搜索()函数。它们非常相似,但也有一些区别。SEARCH() 较新,不区分大小写,并接受通配符。我建议在这里使用 SEARCH(),因为您可能不关心大小写。

=SEARCH(E3673,"Independent")

这将返回一个数字,表示单词的起始位置,或者,如果未找到,则返回错误。但是,您需要的是 或10因此我们可以这样做:

=IF(ISERROR(SEARCH(E3673,"Independent")),0,1)

0如果找不到文本则返回该值,1如果找到了则返回该值。有更奇特的方法可以做到这一点,但这种方法最直接。


E3673注意:我在公式中使用了单元格,因为这是屏幕截图中显示的第一行。如果将此公式放入单元格中I2,则应将单元格引用更改为E2。一旦您将其复制/粘贴下来以填充数据,它将自动更新。

答案2

这只有通过变通方法才有可能,因为 Excel 不允许 IF 函数使用通配符。

Excel SEARCH 函数返回一个文本字符串在另一个文本字符串中的位置。SEARCH 以数字形式返回 find_text 在 within_text 中的位置。SEARCH 支持通配符有限地,并且不区分大小写。

ISNUMBER 对数字返回 TRUE,对其他任何内容返回 FALSE。如果 SEARCH 找到子字符串,它会将位置返回为数字,而 ISNUMBER 返回 TRUE。

=IF(ISNUMBER(SEARCH("Independent",E2)),1,0)

或者用于特殊用途:

=IF(ISNUMBER(SEARCH("Ind?pendent",E2)),1,0)

您仍然需要根据您的需要进行定制。

在此处输入图片描述

有关使用通配符的更多信息,请参阅Dave 的 ExcelJet

答案3

Excel 中有两个搜索功能:Search()其他答案中已经描述了,但这是一个基于FIND()Excel 函数的公式:

=IF(ISERROR(FIND("INDEPENDENT",UPPER(A1))),"whatever",0)

如您所见,FIND()区分大小写,因此您需要使用大写字母才能确保不区分大小写地找到它。

示例截图:

在此处输入图片描述

相关内容