DAX 是一门"写在表格里的分析语言"
DAX(Data Analysis Expressions,数据分析表达式)是微软为数据建模打造的公式语言, 2010 年随 Excel 加载项 Power Pivot 诞生,2016 起内置于 Microsoft 365, 后来也成为 Power BI 的官方语言——两者共用同一个列式内存引擎 VertiPaq。 它的任务只有一个:在多张相互关联的表之上,快速完成筛选、聚合与复杂指标计算。
它住在哪
Power Pivot 的度量值与计算列、Power BI 的模型里。Excel 2016+ 均内置,在「Power Pivot」选项卡中启用。
它算什么
订单表 × 商品表 × 用户表的跨表指标:转化率、客单价、同比环比、累计销量……
它凭什么快
VertiPaq 列式压缩引擎把数据装进内存,百万行级别依旧秒级响应,普通公式表望尘莫及。
它通向哪
学会 DAX = 同时拿到 Power BI 的入场券。概念、函数、建模思路 100% 互通。
同一道题,三种语言的答案
需求:算出「直播渠道」的销售额。点击下方标签,看三种语言各自的写法与脾气。
脾气:写在某个单元格里,答案就钉死在那里。明天想看"搜索渠道"?得再写一条公式。 换个角度、换张报表,公式跟着换——费时且易错。
脾气:公式只写一遍,放进透视表后,行是连衣裙就按连衣裙算,列是 3 月就按 3 月算—— 结果永远跟着当前筛选范围自动重算。这是 Excel 公式给不了的"活的计算"。
脾气:向数据库发一次查询,拿回一个静态结果。DAX 借用了它"筛选→聚合"的思维, 但把 WHERE 藏进了"筛选上下文",不用每次手写。
📌 血统补充:DAX 为 SQL Server 分析服务(SSAS)表格模型而生,继承了前辈 MDX(Multidimensional Expressions,多维表达式)的上下文求值与时间智能思想。MDX 是微软 1997 年前后为多维数据集(OLAP 立方体)设计的查询语言,长期服务于 SSAS 多维模型与早期的 Excel 数据透视表;DAX 则面向更新的「表格模型」,语法比 MDX 亲民得多——所以现在没人用 MDX 启蒙,大家都从 DAX 入门建模。
四个特点,一个灵魂
① 列式思维
操作对象是整列 销售[金额],不再有 A1、B2 单元格引用。
一句公式描述"整列怎么聚合",而不是"这个格子怎么算"。
② 筛选上下文
灵魂所在:同一个度量值,放进透视表的不同行列,自动在"当前这片筛选区域"里重新计算。 公式不变,结果随位置而变。
③ 度量值 + DIVIDE
比率类指标(转化率、客单价)用度量值定义,透视表每个角落都按正确口径重算, 永远不会犯"把各商品转化率直接加总"的错误。
④ 时间智能
TOTALYTD 累计至今、SAMEPERIODLASTYEAR 去年同期——
同比、环比、年度累计,一行公式搞定,Excel 公式要绕一大圈。
互动演示 A · 转化率之辨呼应讲义 2.2.5 口径重点
三个商品的访客与支付数据如下。切换两种算法,看看"合计行"的转化率差多少—— 这正是普通透视表和 DAX 度量值的本质区别。(教学演示数据)
| 商品 | 访客数 | 支付买家数 | 转化率 = 支付买家数 ÷ 访客数 |
|---|---|---|---|
| 连衣裙 | 8,000 | 640 | 8.00% |
| 休闲裤 | 5,000 | 250 | 5.00% |
| 凉鞋 | 2,000 | 60 | 3.00% |
| 合计 | 15,000 | 950 | 16.00% |
互动演示 B · 筛选上下文:公式不变,结果变
下面是 8 笔订单明细。先记住唯一的度量值定义:支付金额 := SUM(销售[金额])。 点击筛选按钮,观察两件事:① 匹配的订单被"圈进"当前上下文;② 右侧结果自动重算—— 但度量值公式从头到尾一个字都没改。
| 订单号 | 商品 | 渠道 | 金额 |
|---|
用的人不多,会用的很值钱
在十亿级 Excel 用户中,Power Pivot 属于小众高级功能——大多数人的它仍在"沉睡"; 但在数据分析岗位上,"高级 Excel"基本就是 Power Query + Power Pivot + DAX 的代名词。
最大用户群体。总账、预算、实际三表关联,月度合并报表几十万行,不想装 BI 工具——Power Pivot 是他们的"贴身数据仓库"。
Power Query 清洗 → Power Pivot 建模 → 透视表出数,是简历上"高级 Excel"的标准注脚,也是面试高频考点。
订单表 + 商品表 + 用户表 + 流量表跨表关联分析——正是本课程反复出现的场景,学完即可迁移上岗。
把 Power Pivot 当作 Power BI 的"训练场":DAX、数据模型、星型结构完全一致,迁移近乎零成本。
🎓 技能迁移地图:一份投入,多份回报
从 Excel 公式到 DAX 的四级台阶
函数迁移约 1–2 周
把认识的 SUM、AVERAGE、IF 直接搬进 DAX 用,建立"我会一半"的信心;
同时接受第一个新规则:引用整列 销售[金额],而不是单元格。
迭代与聚合约 2–4 周
认识 SUMX / DIVIDE 等"逐行计算再聚合"的迭代函数,理解"先乘后加"为什么必须用 X 结尾的函数。
吃透两种上下文约 1–2 月 · 最大的一坎
行上下文与筛选上下文,以及改变上下文的钥匙 CALCULATE。
建议把上方"演示 B"玩到能向同学讲明白为止。
度量值实战约 2–3 月
动手建一个电商模型:订单、商品、日期三表关联,写支付转化率、客单价、同比环比度量值, 全部对照本课程 2.2.5 节的指标口径逐个验证。
从 Power Pivot 到 Power BI,再到 Azure 分析服务,VertiPaq 引擎与 DAX 已是微软整个自助式 BI 体系的通用语。 今天在 Excel 里写下的每一条度量值,都是明天简历上的硬技能。