![是否存在一个公式可以查找单元格中的部分文本?](https://linux22.com/image/1481965/%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8%E4%B8%80%E4%B8%AA%E5%85%AC%E5%BC%8F%E5%8F%AF%E4%BB%A5%E6%9F%A5%E6%89%BE%E5%8D%95%E5%85%83%E6%A0%BC%E4%B8%AD%E7%9A%84%E9%83%A8%E5%88%86%E6%96%87%E6%9C%AC%EF%BC%9F.png)
这就是我现在在公式中使用的:
=IF(E6="Mix Design Gr S","By Mix Design","")&IF(E6="R-Value","By Soils","")&IF(E6="PS Package","By Soils","")
有没有办法只查找单元格 E6 中的部分文本,例如“Mix”而不是“Mix Design Gr S”?
答案1
我将只关注您所询问的公式部分(第一个 IF 测试)。
使用关键字的部分文本
如果部分文本是唯一的单词或字符串,则可以查找其存在。Excel 没有“CONTAINS()”函数,但您可以通过一些嵌套来执行等效操作。
=IF(ISERROR(SEARCH("mix",E6)),"","By Mix Design")
SEARCH 在 E6 中查找目标文本(不区分大小写)(我使用小写字母“mix”来说明这一点)。如果找不到,则会返回错误。使用 ISERROR 对此进行测试会得出“contains”逻辑的逆向结果,因此我反转了 True 和 False 结果。
如果您想要区分大小写的测试,请使用 FIND 而不是 SEARCH。
根据位置的部分文本
Engineer Toast 在评论中提出了非常好的观点,我将在此添加以保证完整性。如果第一个单词(或一定数量的字符)是唯一的,则可以测试这些字符。要进行区分大小写的测试,请测试实际字符:
=IF(LEFT(E6,3)="Mix","By Mix Design","")
如果数据中的大小写可能不一致,请针对强制特定大小写的字符进行测试:
=IF(UPPER(LEFT(E6,3))="MIX","By Mix Design","")
综上所述,如果您的情况是部分文本总是出现在字符串中的特定位置,您可以通过在那里而不是字符串中的任何地方查找它来进行更精确的测试。假设您的关键字是“设计”,并且它总是从字符串中的第五个字符位置开始,您可以使用:
=IF(MID(E6,5,6)="Design","By Mix Design","")
请注意,如果数据不一致,例如缺少字符或多余空格,导致关键字不在第五位开始,则测试将失败。SEARCH/FIND 解决方案更宽容,因为关键字的位置无关紧要。