使用Excel公式查找并提取搜索词后的下一个单词

使用Excel公式查找并提取搜索词后的下一个单词,excel,excel-formula,Excel,Excel Formula,我正在查看长度可变的文本字符串,以查看应用了哪些化学品。化学名称通常在“应用”或“喷洒”后给出。因此,我想在使用术语“喷洒”或“应用”后提取下一个单词。搜索字符串长度可变,搜索词不在同一位置。如果文本位于单元格A1中,可以使用以下公式: =IF(ISERROR(SEARCH("Spray",A1,1))=TRUE,LEFT(RIGHT(A1,LEN(A1)-FIND("apply",A1)-5),FIND(" ",RIGHT(A1,LEN(A1)-FIND("apply",A1)-5))-1),

我正在查看长度可变的文本字符串,以查看应用了哪些化学品。化学名称通常在“应用”或“喷洒”后给出。因此,我想在使用术语“喷洒”或“应用”后提取下一个单词。搜索字符串长度可变,搜索词不在同一位置。

如果文本位于单元格A1中,可以使用以下公式:

=IF(ISERROR(SEARCH("Spray",A1,1))=TRUE,LEFT(RIGHT(A1,LEN(A1)-FIND("apply",A1)-5),FIND(" ",RIGHT(A1,LEN(A1)-FIND("apply",A1)-5))-1),LEFT(RIGHT(A1,LEN(A1)-FIND("spray",A1)-5),FIND(" ",RIGHT(A1,LEN(A1)-FIND("spray",A1)-5))-1))

公式将首先查找“喷洒”一词,如果未找到,将查找“应用”。公式返回“喷洒”/“应用”后的单词。

通过使用
Mid
search
函数,您可以找到下一个单词。这假设所有单词都由单个空格分隔,这可能不是真的

=IFERROR(MID(A2,SEARCH("apply",A2)+6,SEARCH(" ",A2,SEARCH("apply",A2)+6)-6-SEARCH("apply",A2)),MID(A2,SEARCH("spray",A2)+6,SEARCH(" ",A2,SEARCH("spray",A2)+6)-6-SEARCH("spray",A2)))

请提供一些示例数据、预期结果以及您迄今为止的尝试,谢谢!亲爱的凯撒,谢谢你的迅速回复。当“喷洒”是第一个术语时,该公式似乎有效,但当“应用”是搜索时,则不起作用term@reeder:我已经更新了公式,现在应该对这两个词都有效了。非常感谢你的回答,这似乎很有效。谢谢你救了我的命!有没有办法处理那些没有规则空格分隔的术语?很多人都感谢这个公式,因为它处理的情况越多,它很快就会变得很长。我建议在这一点上使用VBA自定义函数。谢谢Greg。非常感谢你的帮助