excel - 提取短语中的多个单词
问题描述
我有这个公式来提取以给定字符“CCLVL”开头的特定单词。它工作正常,但是,我还需要公式来提取以“GCFAC”或“CLINK”开头的单词</p>
我怎样才能让它找到这些其他词——在我从中提取的文本中,这个词的实例永远不应该超过一个。
=TRIM(LEFT(SUBSTITUTE(MID(A2,FIND("CCLVL",A2),LEN(A2))," ",REPT(" ",100)),100))
描述是否包含CCLVL123456
?如果是,这是第 3 方 CCLVL123456
描述是否包含GCFAC4567
如果是,这是第 3 方
描述中是否包含CLINK95182
如果是,这是第 3 方
解决方案
这里的一般想法是使用和一些 xpath 将一个字符串切割成一个单词数组,FILTERXML
以仅从该数组中返回我们感兴趣的那些单词。starts-with()
幸运的是,我们可以在 or 结构中使用一个名为的函数:
=FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s[starts-with(., 'CCLVL') or starts-with(., 'GCFAC') or starts-with(., 'CLINK')]")
在 Excel365 中,这将返回一个垂直数组,因此您可能希望使用TRANSPOSE()
或TEXTJOIN()
结合使用。另外,如果您没有 Excel365,您可以使用INDEX()
按顺序从数组中检索元素。
在下面的示例中,我使用了:
=TEXTJOIN(",",,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A1,"?","")," ","</s><s>")&"</s></t>","//s[starts-with(., 'CCLVL') or starts-with(., 'GCFAC') or starts-with(., 'CLINK')]"))
为了更好地理解上述内容,请参阅这篇文章。
推荐阅读
- angular - Angular 5 组合或重构多个订阅调用
- kotlin - kotlin 字段未设置值
- ruby-on-rails - 找不到带有可执行导轨 (Gem::GemNotFoundException) 的 gem railties (>= 0.a)
- javascript - JS - 使用 lodash 删除数组中的重复对象
- c - 将#define 创建的宏传递给函数/数组
- azure - 在 Azure 中创建 VM 时,虚拟网络可以位于不同的资源组中吗
- javascript - 使 javascript 方法在所有情况下都有效(在 ajax 调用之前和之后)
- javascript - 使用 giphy API 获取数据到空数组并显示搜索结果
- ios - Swift3 在 collectionView 中添加一个按钮 Select / View
- android - 如何使用代码在多个活动中处理自定义工具栏中的按钮的“onClick”