💡 文末有福利:关注「慕慕进化论」,在公众号聊天框回复「Excel」领取《Excel全攻略》60期合集PDF,系统自动发送,随用随查。
上周帮朋友整理一份销售报表,她的工作表里密密麻麻写了几十个VLOOKUP公式,每个公式都横跨五六列去匹配数据。打开文件的时候Excel卡了将近一分钟,改一个数字又要重新算半天。她跟我吐槽:"每次做月报,光是等公式算完就能泡杯咖啡了。"
这个场景太常见了。手头有好几张表——订单表、客户表、产品表、区域表——要把它们关联起来查数据,第一反应就是用VLOOKUP。数据量小的时候还好,数据一多,几十个VLOOKUP同时运算,电脑就开始"思考人生"了。
上期我们聊了OneDrive协作,这期来聊一个能从根上解决多表关联问题的方案:Power Pivot数据模型。
01 什么是数据模型
数据模型听起来很高大上,其实概念很简单:把多张表之间的关系"画"出来,让Excel理解表与表之间怎么连接,然后就可以直接引用其他表的数据,不需要写VLOOKUP。
打个比方。VLOOKUP的方式就像每次做菜都要跑去超市买食材,而数据模型相当于提前把食材都买好放在冰箱里,用的时候直接拿就行。效率差别显而易见。
Excel从2013版本开始内置了Power Pivot功能,核心就是数据模型。在较新版本的Excel里,点击"数据"→"数据工具"→"关系",或者"Power Pivot"→"管理",就能看到数据模型的界面。
02 把表加入数据模型
第一步是把需要关联的表都加载到数据模型里。有两种方式:
方式一:创建Power Pivot查询。点击"数据"→"获取数据",导入数据时勾选"将此数据添加到数据模型"。这样数据就会同时存在于工作表和Power Pivot数据模型中。
方式二:直接在工作表里操作。先选中数据区域,按Ctrl+T转成超级表。然后到"Power Pivot"选项卡里点击"添加到数据模型"。每张表都要重复这个操作。
建议给每张表取一个有意义的名字。选中超级表,在"表格工具-设计"选项卡左上角的"表名称"里修改。比如"订单表"、"客户表"、"产品表",后面建立关系的时候一看就知道是哪张表。
03 建立表之间的关系
表都加入数据模型后,接下来就是建立关系。点击"Power Pivot"→"管理",会打开Power Pivot的窗口。切换到" diagram view"( diagram视图),能看到所有表以卡片形式排列,用线连起来。
建立关系的方法是拖拽:从一张表的某个字段(比如"客户ID")拖到另一张表的对应字段上,松开鼠标,关系就建好了。
最常见的关系类型是"一对多"。比如一个客户可以有多笔订单,但每笔订单只属于一个客户。这种情况下,客户表是"一"端,订单表是"多"端。在Power Pivot里,关系线靠近"一"端的那头有个"1",靠近"多"端有个"*"。
也可以在"数据"→"关系"里用对话框建立关系,效果一样。选择主表和相关列、从表和相关列,确认就好。
04 用RELATED函数跨表取值
关系建好之后,就可以在一张表里直接引用另一张表的数据了。用的函数叫RELATED,语法很简单:=RELATED(表名[列名])。
比如在订单表里想显示客户名称,不需要VLOOKUP,直接写 =RELATED(客户表[客户名称])。因为关系已经建好了,RELATED会自动通过"客户ID"这个桥梁去客户表里查找对应的名称。
RELATED跟VLOOKUP的区别在于:RELATED走的是数据模型内部的关系通道,不需要每次重新搜索匹配,计算速度比VLOOKUP快很多。尤其是在数据量大的时候,差距特别明显。
除了RELATED,还有RELATEDTABLE函数,用来从"多"端往"一"端取值,返回的是一张表。通常配合CALCULATE、COUNTROWS等函数使用,比如统计某个客户下了多少笔订单。
05 在数据透视表里用数据模型
数据模型最强大的地方,在于可以直接创建跨表的数据透视表。以前做数据透视表只能基于一张表,现在可以把多张表的数据放在一个透视表里分析。
操作方式:插入数据透视表时,勾选"使用此工作簿的数据模型"。创建后,在字段列表里能看到所有加入数据模型的表,可以随意拖拽不同表的字段到行、列、值区域。
比如行区域拖入客户表的"客户名称",值区域拖入订单表的"金额"(选择求和),就能直接算出每个客户的总消费金额。不需要先把客户名称匹配到订单表里再做透视——这在过去至少要三步操作,现在一步搞定。
切片器也能跨表使用。给数据透视表插入切片器后,可以在不同表的字段上创建筛选控件,实现多维度交互分析。
06 注意事项和踩坑提醒
使用数据模型有几个容易踩的坑,分享一下经验:
关系字段类型要一致:建立关系的两个字段,数据类型必须相同。一个是数字,另一个也必须是数字;一个是文本,另一个也必须是文本。类型不匹配的话关系建立不上。遇到这种情况,先在Power Query里把类型统一。
避免循环关系:A表连B表、B表连C表、C表又连回A表,这种循环关系会导致数据模型出错。设计关系的时候要注意方向,保持"星型结构"——一张核心事实表在中间,周围连着维度表。
文件大小会增加:数据模型会把数据压缩存储在文件里,Excel文件体积会比原来大一些。如果数据量特别大(百万行以上),建议用外部数据连接而不是把数据全部加载到模型里。
Power Pivot里还可以写DAX公式,功能比普通的Excel公式更强大,支持时间智能、上下文筛选等高级分析。这个内容比较深,有兴趣的话可以单独学习DAX,今天先掌握基础的关系建立和RELATED函数就够用了。
数据模型是从"公式思维"到"关系思维"的一次升级。习惯VLOOKUP之后切换到数据模型,一开始可能需要适应一下,但用过之后真的回不去。建议先拿一个现有的多表关联场景试试,把VLOOKUP替换成数据模型关系,对比一下速度和体验。
关注「慕慕进化论」,每周一个实用思维工具,把学过的东西变成自己的。