在Excel里做数据分析时,XML常常出现在接口报文、配置文件或旧系统的导出结果中。Power Pivot本身不擅长直接读XML,但我们可以借助Power Query把XML变成普通表,再送进数据模型,从而建立关系、写DAX度量值,完成高级建模。

为什么用Power Pivot处理XML
XML是一种树状结构文本,直接打开往往是嵌套节点。Power Pivot的核心是列式存储与关系引擎,它要求输入是平面表。通过ETL把XML展开,我们就能用Power Pivot做多表关联、层级聚合和复杂指标计算,比在单元格里写公式稳妥得多。
从XML到Power Pivot的基本流程
第一步:用Power Query导入XML
在Excel中选择数据选项卡,新建查询,从文件或Web加载XML。Power Query会自动识别节点,你可以展开list与record类型,把嵌套内容拉平。
第二步:清洗并加载到模型
删除无用列,改好字段类型,然后勾选加载到数据模型。这样表就进入了Power Pivot的缓存,可供建立关系。
第三步:建立关系与度量值
在Power Pivot关系图视图里,把订单表和客户表通过ID关联,再写DAX完成销售额汇总。
一个XML示例与解析思路
假设我们有如下简化的XML,记录了订单信息:
<orders>
<order>
<id>1001</id>
<customer>C01</customer>
<amount>200</amount>
</order>
<order>
<id>1002</id>
<customer>C02</customer>
<amount>350</amount>
</order>
</orders>
在Power Query中,对orders节点使用展开操作,可得到三列:id、customer、amount。之后把customer表也导入,便能在模型中建立关联。
用DAX构建高级指标
进入Power Pivot后,可以写如下度量值来计算总销售额:
总销售额 := SUM ( orders[amount] )
如果要做客户贡献度排名,可继续写:
客户销售排名 := RANKX ( ALL ( customer[name] ), [总销售额], , DESC )
常见注意事项
- XML命名空间可能导致Power Query找不到节点,需要在导航时确认前缀。
- 大文件XML建议先用工具拆分,避免Excel内存压力。
- 字段类型务必在加载前设定,进入模型后再改会影响计算效率。
小结
通过Power Query解析XML,再加载进Power Pivot,是把非结构化数据变成高级数据模型的实用路径。只要理清节点结构、做好ETL与关系设计,就能在Excel里完成轻量但专业的数据仓库工作。
ExcelPower_PivotXML数据模型ETL修改时间:2026-07-25 10:18:23