怎样使用DAX公式_数据模型高级计算语言【BI进阶】

雨涛酱_5560

雨涛酱_5560

2026-05-08

907人浏览

原创

必须掌握dax公式编写以实现动态聚合、跨表计算和时间分析:一、建度量值用于上下文敏感的实时聚合;二、建计算列实现行级静态派生;三、建计算表生成衍生维度;四、用时间智能函数做周期对比;五、用var提升公式可读性与性能。

怎样使用dax公式_数据模型高级计算语言【bi进阶】

如果您希望在Power BI或Analysis Services中对表格数据模型执行动态聚合、跨表关联计算或时间维度分析,则必须掌握DAX公式的正确编写方式。以下是实现数据模型高级计算的具体操作路径:

一、创建度量值进行动态聚合计算

度量值是上下文敏感的动态计算,其结果随报表筛选器、切片器或行列分组变化而实时重算,适用于SUM、AVERAGE、COUNT等聚合场景。

1、在Power BI Desktop的“模型”视图中,右键单击任意表,选择“新建度量值”。

2、在公式栏中输入标准语法:度量名称 = 聚合函数(表名[列名]),例如:总销售额 = SUM(Sales[Amount])。

3、确认公式无语法错误(IntelliSense将高亮提示函数参数与括号匹配),按Enter完成创建。

4、该度量值将自动出现在字段窗格对应表下,可直接拖入可视化对象中使用。

二、定义计算列实现行级静态派生

计算列在数据刷新时一次性计算并物理存储于模型中,每行生成一个标量值,适用于基于本行其他列的逻辑判断或格式转换。

1、在“数据”视图中,右键目标表,选择“新建列”。

2、输入含列引用的表达式,列名必须用方括号包裹,例如:销售利润率 = DIVIDE(Sales[Profit], Sales[Revenue], 0)。

3、公式中若涉及多表字段,需通过RELATED函数显式调用关联表列,如:产品类别 = RELATED('Product'[Category])。

4、回车后列立即填充全部行值,并可在后续建模中作为筛选或分组依据。

三、构建计算表生成衍生维度或汇总结果

计算表由DAX公式返回完整表对象,常用于创建独立日期表、分类映射表或预聚合中间结果,不依赖源数据结构。

1、在“建模”选项卡中点击“新建表”,打开DAX公式编辑框。

2、使用CALENDAR或DATATABLE等表构造函数,例如:日期表 = CALENDAR(DATE(2020,1,1), DATE(2025,12,31))。

3、配合ADDCOLUMNS添加派生列,如年份、季度、工作日标识等,确保日期列为唯一连续值。

4、选中新建表,在“表工具”中点击“标记为日期表”,并指定日期列,以启用时间智能函数支持。

四、应用时间智能函数处理周期对比

时间智能函数依赖已标记的日期表及有效关系,用于实现同比、环比、累计等业务关键指标,其结果严格受视觉对象中的日期字段上下文约束。

1、确认模型中存在已标记的日期表,且与事实表通过日期列建立单向活动关系。

2、新建度量值,调用TOTALYTD函数实现年累计,例如:年累计销售额 = TOTALYTD(SUM(Sales[Amount]), '日期表'[Date])。

3、使用SAMEPERIODLASTYEAR进行同期比较,例如:去年同期销售额 = CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR('日期表'[Date]))。

4、在报表中将该度量值与‘日期表’[年]、[月]等字段共同置于矩阵或折线图中,系统将自动按上下文切片计算。

五、利用变量提升公式可读性与复用性

DAX变量通过VAR声明局部命名值,避免重复计算相同子表达式,同时使复杂逻辑更易理解与调试,所有变量必须在RETURN语句前定义。

1、在新建度量值或计算列中,以VAR开头声明变量,例如:VAR CurrentYearSales = SUM(Sales[Amount])。

2、可连续声明多个变量,每个变量均可引用前序变量,例如:VAR PriorYearSales = CALCULATE([CurrentYearSales], SAMEPERIODLASTYEAR('日期表'[Date]))。

3、在RETURN后调用最终表达式,例如:RETURN DIVIDE(CurrentYearSales - PriorYearSales, PriorYearSales)。

4、公式执行时,各变量仅计算一次,RETURN结果即为该计算单元的输出值。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

120

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

100

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

80

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

60

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

80

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

280

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

180

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

140

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

80

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习