FILTERXML函数可解析XML数据,通过XPath提取指定节点内容。例如使用=FILTERXML(A1,"//name")可提取所有姓名;支持属性查询如"//book/@id",并能结合条件筛选如"//book[@category='小说']",但需确保XML格式正确且仅限Windows版Excel 2013及以上版本使用。

Excel 的 FILTERXML 函数可以从结构化的 XML 字符串中提取特定节点的数据。这个函数结合了 XPath 查询语言,能精准定位你想要的内容。只要 XML 格式正确,不需要 VBA 或外部工具就能直接解析。
基本语法
FILTERXML(xml, xpath)
- xml:有效的 XML 文本字符串
- xpath:XPath 表达式,指定要提取的节点路径
简单示例:提取姓名列表
假设 A1 单元格包含以下 XML:
张三 28 李四 32 王五 25
想提取所有 name 节点的值,使用公式:
=FILTERXML(A1,"//name")结果会返回一个数组:张三; 李四; 王五(在 Excel 中按列显示)
使用属性和更精确路径
如果 XML 包含属性,比如:
Python入门 三体
提取书名:
=FILTERXML(A2,"//book")提取 id 属性:
=FILTERXML(A2,"//book/@id")提取 category 为“小说”的书名:
=FILTERXML(A2,"//book[@category='小说']")注意事项与限制
- FILTERXML 只能在 Windows 桌面版 Excel 2013 及以上版本使用(Mac 不支持)
- XML 必须格式正确(闭合标签、正确嵌套)
- 不支持命名空间(namespace)复杂的 XML
- 返回结果是静态数组,不会自动扩展(除非使用动态数组功能)
基本上就这些。只要构造好 XML 和 XPath,FILTERXML 就能快速提取你需要的数据。不复杂但容易忽略细节,比如引号嵌套或路径写错。多试几次,熟悉常用 XPath 写法就好用了。










