查看原文
其他

DAX是什么? | PowerBI星球

采悟 PowerBI星球 2022-12-17


DAX是英文Data Analysis Expression的缩写,意思是数据分析表达式,从名称上就可以看出,DAX公式是用作数据分析的,事实上也确实如此,从数据分析层面认识DAX会更有助于我们理解它.




01 | 认识DAX


数据分析就是从茫茫数据中提取有用的信息,执行一定的运算,形成结论的过程,而DAX的主要功能正是查询和运算,DAX查询函数负责筛选出有用的数据集合,然后利用DAX的聚合函数执行计算。

从前面的文章我们知道,度量值的运算依赖上下文,上下文又分为外部上下文和内部上下文,外部上下文就是外部可以看得见的筛选:标签和切片器,而内部上下文就是创建度量值的DAX公式,它的查询筛选函数可以扩大、限制或者重置外部上下文。利用外部上下文和DAX的有效配合,度量值的灵活性大大增强,可以筛选出真正需要的数据集合并执行聚合运算。如果说度量值是Power BI数据建模的灵魂,那么DAX就是度量值的灵魂。


02 | DAX的使用范围


DAX可以在Power BI Desktop 的数据建模和Power Pivot中使用,除了可以创建度量值,还可以新建列,比如想把这个日期表上的月用两位数字表示,即7月用07表示,新建列然后编辑栏输入:

月份 = format('日期表'[日期],"MM")

然后就增加了一列[月份],


不过除非特别有必要,不建议用新建列的方式做数据丰富,这样更占用内存,如果想增加一列,可以在源数据上,回到查询编辑器里面增加一列然后上载到数据模型中使用。


03 | DAX参数的基本格式


  • 表名用单引号' '括着 // '日期表'

  • 字段用中括号[ ]括着 //[日期]

  • 度量值也是用中括号[ ]

  • 引用字段始终要包含表名,以和度量值区分开



04 | DAX常用函数


聚合函数


  • SUM

  • AVERAGE

  • MIN

  • MAX


这几个函数的使用和在Excel中完全一致,DAX中还有一类特有的函数非常有用,和这几个函数很像,后面加个X,


  • SUMX

  • AVERAGEX

  • MINX

  • MAXX

  • RANKX


这几个函数可以循环访问表的每一行,并执行计算,所以也被称为迭代函数。


其他常见的聚合函数:


  • COUNT:计数

  • COUNTROWS:计算行数

  • DISTINCTCOUNT:计算不重复值的个数


时间智能函数


  • PREVIOUSYEAR/Q/M/D:上一年/季/月/日

  • NEXTYEAR/Q/M/D:下一年/季/月/日

  • TOTALYTD/QTD/MTD:年/季/月初至今

  • SAMEPERIODLASTYEAR:上年同期

  • PARALLELPERIOD:上一期

  • DATESINPERIOD:指定期间的日期


关于时间智能函数,会专门写篇文章介绍,利用它可以灵活的筛选出一段我们需要的时间区间,做同比、环比、滚动预测、移动平均等数据分析时,都会用到这类函数。


筛选函数


  • FILTER:筛选

  • ALL:所有值,可以清除筛选

  • ALLEXCEPT:保留指定列

  • VALUES:返回不重复值


这几个函数,就是典型的DAX查询函数,通过筛选来操纵上下文的范围。


最后放出DAX最重要也是最常用的函数:CALCULATE,这个函数简直就是DAX本身,学好这个函数就基本上掌握了DAX,它值得专门写篇文章好好介绍。


关于DAX的更多详情,可以参考微软的官方介绍:

https://docs.microsoft.com/zh-cn/power-bi/guided-learning/introductiontodax#step-3




提升技能 开拓视野





您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存