首页 > 解决方案 > 如何仅在 Excel 中包含重复模式的单元格中的字符之间提取所需的文本?

问题描述

问题:

我有一个潜在客户数据列表,其中包含同一单元格中潜在客户的名字和姓氏。这个数据和其他我不需要提取的数据是在双引号之间找到的。

数据示例

}} LEAD FIRST NAME总是在第七和第八个引号之间,而 LEAD LAST NAME总是在第十五和第十六引号之间。当然,



每行(前导)的名字和姓氏值的长度不同,排除使用 mid 或 len 选项。

我已经搜索了很长时间,试图想出一个解决方案。不幸的是,我所尝试的一切都没有给我任何接近预期结果的东西。

标签: excelms-officetext-extraction

解决方案


如果您有该FILTERXML功能(Windows Excel 2013+),您可以使用:

=FILTERXML("<t><s>" & SUBSTITUTE(A1,"""","</s><s>") & "</s></t>","//s[position()=8 or position()=16]")

这将返回 FIRST 和 LAST 名称的 2 节点数组,不幸的是,在 Excel 2016 中,它不会像 Office 365 那样溢出到两个单元格中。

因此,您可以在两个单元格中输入(使用ctrl+shift+enter)公式,或者将其拆分为两个公式,分别用于名字和姓氏。

FIRST NAME: =FILTERXML("<t><s>" & SUBSTITUTE(A1,"""","</s><s>") & "</s></t>","//s[8]")
LAST NAME:  =FILTERXML("<t><s>" & SUBSTITUTE(A1,"""","</s><s>") & "</s></t>","//s[16]")

推荐阅读