夜雨聆风学习资料网

ARTICLE · 1063568

Excel Power Pivot 入门:让数据模型、关系和 DAX 度量值为你所用

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 中,只需要手动激活:

  1. 打开 Excel,点击 文件 → 选项 → 加载项

  2. 在底部的“管理”下拉框中选择 COM 加载项,点击“转到”

  3. 勾选 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”的方式来分析数据,你会发现,很多以前觉得麻烦的分析工作,原来可以这么简单。

相关学习资料