位置:首页 > 行业软件 > DAX公式入门教程数据模型高级计算实战指南

DAX公式入门教程数据模型高级计算实战指南

时间:2026-05-09  |  作者:318050  |  阅读:0

掌握DAX公式:数据模型的高级计算语言

想在Power BI或Analysis Services中实现动态聚合、跨表计算与时间分析?DAX公式是必须掌握的核心技能。它如同数据模型中的“高级编程语言”,用对方法,数据才能真正“活”起来。

以下五个核心操作路径,是从入门到精通的实战指南。

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

一、创建度量值:实现动态聚合计算

度量值是DAX的“灵魂”,其核心特点是“上下文敏感”。计算结果并非固定,而是随着报表中的筛选器、切片器或行列分组实时变化。

求和、求平均、计数等聚合场景是它的主要应用领域。

操作步骤:

  • 在Power BI Desktop的“模型”视图中,右键任意表,选择“新建度量值”。
  • 在公式栏按标准语法输入,例如:总销售额 = SUM(Sales[Amount])
  • 编辑器会提供智能提示与括号匹配检查。确认无误后回车,度量值将出现在字段窗格中,可直接拖入图表使用。

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

计算列是“静态”的,在数据刷新时一次性计算完成,结果直接存储在模型里,每行一个值。

它适用于基于本行数据的逻辑判断或格式转换,例如计算利润率、拼接字段。

操作步骤:

  • 在“数据”视图中,右键目标表,选择“新建列”。
  • 输入表达式,列名需用方括号括起。例如:销售利润率 = DIVIDE(Sales[Profit], Sales[Revenue], 0)
  • 如需引用关联表字段,需使用RELATED函数,例如:产品类别 = RELATED('Product'[Category])
  • 新列生成后,可像普通列一样用于筛选或分组。

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

计算表允许你用DAX公式“无中生有”,创建一个完整的表对象。

这在创建独立日期表、分类映射表或预聚合中间结果时非常有用,不受原始数据结构限制。

操作步骤:

  • 在“建模”选项卡中,点击“新建表”。
  • 在公式编辑框中使用CALENDAR、DATATABLE等表构造函数。例如创建日期表:日期表 = CALENDAR(DATE(2020,1,1), DATE(2025,12,31))
  • 可使用ADDCOLUMNS函数添加“年份”、“季度”等派生列。
  • 关键步骤:选中新建的表,在“表工具”中将其“标记为日期表”,并指定日期列。这是时间智能函数正确工作的前提。

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

同比、环比、累计至今等关键业务指标,都依赖时间智能函数。

使用前提:必须有一个已标记的日期表,且该表与事实表通过日期列建立了有效的(通常为单向)活动关系。

条件满足后,新建度量值直接调用函数即可:

  • 计算年累计销售额:年累计销售额 = TOTALYTD(SUM(Sales[Amount]), '日期表'[Date])
  • 计算去年同期数据:去年同期销售额 = CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR('日期表'[Date]))

将这些度量值与日期表的年、月字段一同放入矩阵或折线图,系统会根据所选日期范围自动计算。

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

当公式逻辑复杂时,嵌套函数会降低可读性。变量(VAR)可以解决此问题。

它不仅能避免重复计算、提升性能,更能让复杂逻辑清晰易懂,便于调试。

使用方法:在新建度量值或计算列时,用VAR关键字声明变量。可连续声明多个,后续变量可引用前面已定义的变量。

例如:

  • VAR CurrentYearSales = SUM(Sales[Amount])
  • VAR PriorYearSales = CALCULATE([CurrentYearSales], SAMEPERIODLASTYEAR('日期表'[Date]))

所有变量必须在RETURN语句前定义。最终在RETURN后写出返回的表达式,例如计算增长率:RETURN DIVIDE(CurrentYearSales - PriorYearSales, PriorYearSales)

执行时,每个变量仅计算一次,最终结果为RETURN后的值。

来源:整理自互联网
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多