前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FILTERXML函数的妙用

FILTERXML函数的妙用

作者头像
fanjy
发布2022-06-04 10:04:52
1.3K0
发布2022-06-04 10:04:52
举报
文章被收录于专栏:完美Excel

学习Excel技术,关注微信公众号:

excelperfect

在单元格A1中有一个包含“|”符号的字符串:

1|A|2|B|33|CC|4D|5CCC|1F|6YY43F5|9CD

现在,要求在单元格A2中输入一个公式,将其解析成由字符串构成的数组:

{1;"A";2;"B";33;"CC";"4D";"5CCC";"1F";"6YY43F5";"9CD"}

这个公式有一些限制:

1.不能使用VBA自定义函数,只能使用Excel内置函数。

2.不能使用MID函数。

在单元格A2中输入的公式为:

=FILTERXML("<a><b>"&SUBSTITUTE(A1,"|","</b><b>")&"</b></a>","//b")

在公式中,使用了不常见的FILTERXML函数来达到了我们的目的,如下图1所示。

图1

我们先来看看FILTERXML函数。

FILTERXML函数解析XML字符串,返回参数xpath提供的单个元素(节点或属性)。其语法为:

FILTERXML(xml,xpath)

其中,xml是有效的xml格式字符串,xpath是标准xpath格式字符串。

有些网站开发基础的朋友可能会知道,xml是用于编码文档的标记语言,有着严格的解析/验证;xpath是一种用于选择XML元素(如节点和属性)的查询语言,适用于XML和HTML。

对于本示例来说,公式中的:

"<a><b>"&SUBSTITUTE(A1,"|","</b><b>")&"</b></a>"

生成标准的XML:

"<a><b>1</b><b>A</b><b>2</b><b>B</b><b>33</b><b>CC</b><b>4D</b><b>5CCC</b><b>1F</b><b>6YY43F5</b><b>9CD</b></a>"

而参数xpath指定:

//b

表明接受标签b,并返回其节点内容。

很巧妙!

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档