从 Excel 中的单元格中提取多个代码
Extract multiple codes from cells in Excel
我想知道是否有人可以帮助我。我有一个元素列表(期刊文章)和一个包含类别的列。这些单元格中的每一个都包含一个基于描述和 ID 的分类。此外,有些单元格包含多个 codes.The 分隔符非常不同(有时是逗号、分号...)。我想提取 ID(例如 J32、E59...),但我不知道该怎么做。请参阅下面的示例:
我想要获得的输出(见结果列)如下:
我的第一次尝试是将文本分列,但分隔符不同。我也尝试过搜索代码(使用 FIND,因为我有一个列表)但我不知道如何使用多个代码进行搜索。
任何建议都非常宝贵!提前致谢,
既然你得到了 Excel2019/O365,你可以使用以下内容:
C2
中的公式:
=TEXTJOIN(", ",,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B2,";",","),","," ")," ","</s><s>")&"</s></t>","//s[string-length()=3][substring(., 2,2)*0=0][translate(substring(.,1,1),'JEF','')='']"))
SUBSTITUTE
用于更改可能的分隔符。如果需要,请添加更多内容。
- 使用的三个
XPATH
表达式可以解释为某种正则表达式,确保我们 select 元素是: Thee characters long,最后两个字符是数字,第一个字符是 upper-case J、E 或 F。如果需要,添加更多。
TEXTJOIN
将使用逗号将所有返回的元素重新组合在一起。
Excel 其他版本的另一个选项是 UDF,您可以在其中使用实际的正则表达式。例如通过模式:
\b[JEF]\d\d\b
有关示例,请参阅 this 在线演示。
我想知道是否有人可以帮助我。我有一个元素列表(期刊文章)和一个包含类别的列。这些单元格中的每一个都包含一个基于描述和 ID 的分类。此外,有些单元格包含多个 codes.The 分隔符非常不同(有时是逗号、分号...)。我想提取 ID(例如 J32、E59...),但我不知道该怎么做。请参阅下面的示例:
我想要获得的输出(见结果列)如下:
我的第一次尝试是将文本分列,但分隔符不同。我也尝试过搜索代码(使用 FIND,因为我有一个列表)但我不知道如何使用多个代码进行搜索。
任何建议都非常宝贵!提前致谢,
既然你得到了 Excel2019/O365,你可以使用以下内容:
C2
中的公式:
=TEXTJOIN(", ",,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B2,";",","),","," ")," ","</s><s>")&"</s></t>","//s[string-length()=3][substring(., 2,2)*0=0][translate(substring(.,1,1),'JEF','')='']"))
SUBSTITUTE
用于更改可能的分隔符。如果需要,请添加更多内容。- 使用的三个
XPATH
表达式可以解释为某种正则表达式,确保我们 select 元素是: Thee characters long,最后两个字符是数字,第一个字符是 upper-case J、E 或 F。如果需要,添加更多。 TEXTJOIN
将使用逗号将所有返回的元素重新组合在一起。
Excel 其他版本的另一个选项是 UDF,您可以在其中使用实际的正则表达式。例如通过模式:
\b[JEF]\d\d\b
有关示例,请参阅 this 在线演示。