今天要要细谈的是DAX表达式!至于这个因为涉及比较广而细,我只能整理我看过比较好的文章分享给大家!
此篇文章着重的讲了
1.常用操作符
2.过滤函数
3.统计函数
4.文本函数
5.逻辑函数
6.关系
六个方面很好很细致的诠释了DAX相关知识
当然这里我们要着重的讲一下Conculate函数,他可以是左手拿计算器,右手拿筛选器的圣人,在右边的漏斗筛选完毕左边的计算才会执行!
conculate详细解说:https://www.jianshu.com/p/d07b257d3590
CALCULATE的语法结构
语法:
CALCULATE(,,…)
第一个参数是计算表达式,可以执行各种聚合运算
从第二个参数开始,是一系列筛选条件,可以为空;如果多个筛选条件,用逗号分隔
所有晒选条件的交集形成最终的筛选数据集合
根据筛选出的数据集合执行第一个参数的聚合运算并返回运算结果
前文提到DAX函数可以更改外部上下文,现在通过实例来理解DAX中最精髓的函数CALCULATE的计算原理,并看看它是如何更改外部上下文的。
实例
Total Profit = SUM('订单'[利润])
复印机利润 = CALCULATE([Total Profit],'订单'[子类别]="复印机")
profit(ALL) = CALCULATE([Total Profit],ALL('订单'[子类别]))
利润占比 = [Total Profit]/[profit(ALL)]
Calculate 的老伙计:Filter
这里牢记杀鸡焉用牛刀,如果在calculate能单独解决的时候当然就不必要用filter来处理,因为filter是一个迭代函数,如同后面要讲到的sumx等函数它们对所筛选的表进行逐行的横向扫描,针对每一行循环地执行设定的筛选程序
FILTER语法
FILTER(,)
第一个参数是要筛选的表
第二个参数是筛选条件
返回的是一张表,不能单独使用,需要与其他函数结合使用
FILTER用例