ARTICLE · 1063568
Excel Power Pivot 入门:让数据模型、关系和 DAX 度量值为你所用
告别 VLOOKUP 套娃,用数据库思维重新定义 Excel 数据分析。
如果你经常和 Excel 打交道,一定遇到过这样的场景:销售数据在一张表里,客户信息在另一张表里,产品目录又在第三张表里。你想做一份综合分析,不得不用 VLOOKUP 把字段一张张地“搬”到同一张表上,公式套公式,表格越做越臃肿,打开速度越来越慢……
有没有一种方法,能像数据库那样把多张表“连”起来分析,而不必把数据强行挤到一张表里?
答案就是 Power Pivot。
一、Power Pivot 是什么?
Power Pivot 是 Excel 内置的数据建模引擎。它让你可以导入更大规模的数据集、在多张表之间建立关联,并在高性能环境中完成复杂的计算——这一切都在 Excel 里完成。
简单来说,Power Pivot 给你的是一个数据库式的体验,但界面依然是熟悉的 Excel。
它和传统 Excel 分析方式有三个关键区别:
突破行数限制。 普通工作表大约只能容纳一百万行,而且往往远未到上限就已经卡顿了。Power Pivot 将数据加载到 Excel 内部的数据模型中,通过压缩和独立管理数据,让你轻松处理数千万行的数据,同时保持工作簿性能稳定。
用关系代替 VLOOKUP。 数据进入模型后,你可以像操作轻量级数据库一样,通过关键字段将多张表关联起来。不必把所有数据“压扁”成一张巨型表,也不必写层层嵌套的 VLOOKUP 函数。
更强的计算能力。 Power Pivot 使用 DAX(Data Analysis Expressions)公式语言,专门为分析场景设计。你可以用它创建远超普通数据透视表能力的度量值,从简单的求和到时间对比、比率、滚动窗口等高级计算。
二、启用 Power Pivot
Power Pivot 不需要额外下载,它已经内置在 Excel 中,只需要手动激活:
打开 Excel,点击 文件 → 选项 → 加载项
在底部的“管理”下拉框中选择 COM 加载项,点击“转到”
勾选 Microsoft Power Pivot for Excel,点击确定
完成后,Excel 功能区就会出现 Power Pivot 选项卡。
💡 提示:在 Microsoft 365 版本中,很多数据模型功能已经直接集成到 Excel 主界面,你甚至不需要打开 Power Pivot 专用窗口就能创建关系和使用数据模型。Power Pivot 窗口更多用于高级建模和计算场景。
三、数据模型:把所有数据“装”进来
数据模型是 Power Pivot 的核心。它本质上是一个表或数据的集合,这些表之间通常定义了关系。
把表格添加到数据模型
数据要进入模型,首先需要是 Excel 表格(而非普通区域)。选中数据区域后按 Ctrl+T 创建表格,然后在 Power Pivot 选项卡中点击 “添加到数据模型” 。重复这个步骤,把所有需要的表都加入模型。
当然,你也可以通过 Power Query 从 CSV、数据库等外部来源直接导入数据到模型,这在数据量较大或需要定期刷新时更为高效。
为什么数据模型比“一张大表”更好?
想象你要分析销售情况,手里有三张表:订单表(记录每笔交易)、产品表(产品名称、类别、成本)、客户表(客户名称、地区、等级)。
传统做法是把三张表 VLOOKUP 合并成一张宽表。问题是:数据冗余严重,一旦源表更新就得重新合并,而且上百万行的 VLOOKUP 会让 Excel 几乎瘫痪。
在数据模型中,三张表各自独立存放,通过关键字段建立关系,分析时随时“按需关联”。数据不冗余、更新更方便、性能也更好。
四、创建关系:让表格之间“对话”
关系是 Power Pivot 的灵魂。有了关系,你才能跨表分析数据。
关系的基本规则
关系始终是 一对多 的:查找表(如客户表、产品表)中的连接列必须有唯一值,事实表(如订单表)中可以有多条匹配记录。
举个例子:客户表和订单表之间,一个客户可以有很多订单,但每个订单只属于一个客户。所以在创建关系时,订单表是“多”方,客户表是“一”方。
如何创建关系
在 Power Pivot 窗口中,切换到 关系图视图。你会看到每个表以方框形式展示,列出所有列名。直接用鼠标将一个表中的字段拖到另一个表的匹配字段上,关系线就会自动生成。
例如,把订单表的“客户ID”拖到客户表的“客户ID”上,两个表就通过客户ID建立了关联。之后在数据透视表中,你就可以同时使用两张表的字段——用客户表的“地区”来分组,用订单表的“金额”来汇总。
也可以用 设计 → 创建关系 打开对话框,手动选择表、列和相关查找表来完成。
⚠️ 注意事项:每个表与另一个表之间只能有一个关系。连接列中不能有重复值(查找表一侧)或空值,否则关系无法创建。
五、DAX 度量值:真正的分析引擎
关系让数据“连通”,DAX 让数据“说话”。
度量值 vs 计算列
DAX 中有两种常见的计算方式:
计算列是表中新增的一列,每一行都有一个计算结果。它适合用于对数据进行分类、拼接字段或逐行计算。比如,在订单表中新增一列“利润”,公式为 =[单价]-[成本],每一行都会得到一个利润值。
度量值则是专门为数据透视表设计的动态公式。它不存储在表中,而是在你拖入数据透视表的“值”区域时,根据当前的筛选上下文实时计算。度量值可以基于标准聚合函数(如 SUM、COUNT),也可以用 DAX 自定义复杂逻辑。
打个比方:计算列像是给每个学生打了一个“固定分数”,而度量值像是根据你选的筛选条件(哪个班级、哪个科目)实时计算“平均分”。
创建你的第一个度量值
在 Power Pivot 窗口中切换到 数据视图,在表格下方的计算区域输入:
总销售额 := SUM(订单表[金额])最基础也最常用的度量值。
订单数量
订单数量 := COUNTROWS(订单表)统计订单表中有多少行,即订单总数。
不重复客户数
客户数 := DISTINCTCOUNT(订单表[客户ID])统计有多少个不同的客户下过订单。
占比分析(进阶)
销售额占比 := DIVIDE([总销售额], CALCULATE([总销售额], ALL(订单表)))利用 CALCULATE 和 ALL 函数去掉所有筛选,计算当前筛选条件下的销售额占总体的比例。DIVIDE 函数比直接用除号更安全,能自动处理除零错误。
六、从模型到报表:把它们串起来
数据装进来了,关系建好了,度量值也写好了——最后一步就是出报表。
基于数据模型创建数据透视表的方法和普通数据透视表一样:点击 插入 → 数据透视表,在数据源中选择“使用此工作簿的数据模型”。然后你会看到字段列表中包含了所有表的字段,可以自由拖拽组合。
比如,把客户表的“地区”拖到行标签,订单表的“产品类别”拖到列标签,再把“总销售额”度量值拖到值区域——一张按地区和产品交叉汇总的销售报表瞬间就出来了。
再加上切片器,你就可以做出交互式的动态仪表板,所有数据实时联动。
七、写在最后:什么时候该用 Power Pivot?
Power Pivot 并不适合所有场景。如果你的数据只有几千行、只有一张表,普通数据透视表完全够用。
但当你遇到以下情况时,Power Pivot 就是你的最佳选择:
数据量超过几十万行,普通公式已经让 Excel 卡顿
数据分散在多张表中,需要频繁做跨表分析
需要做时间维度的对比分析(同比、环比、累计等)
不想每次都手动 VLOOKUP 合并数据
Power Pivot 的本质,是把数据库思维引入 Excel。一旦你习惯了用“数据模型 + 关系 + DAX”的方式来分析数据,你会发现,很多以前觉得麻烦的分析工作,原来可以这么简单。