CALCULATE()函数是DAX数据分析表达式中最重要的函数!本文是关于CALCULATE()函数能力的几点总结 !学会DAX数据分析表达式,让你在PowerPivot透视表里为所欲为,领先职场下一个十年!

第一,基本规则:CALCULATE()函数最少需要要两个参数:第1个参数是进行数据汇总运算的DAX表达式,简称“汇总参数”;第2个参数是用于修改CALCULATE()函数所处当前筛选环境的DAX表达式,简称“筛选器参数”。

这里所谓的“修改当前筛选环境”,含义是:CALCULATE()函数的第2个参数(筛选器参数)能够在CALCULATE()所处当前筛选环境的基础上对现有筛选条件进行“增改删”操作。

筛选器参数可以有多个。这里特要别注意CALCULATE()函数的运算顺序:总是先执行筛选器参数,最后执行汇总参数。

第二,当CALCULATE()函数应用于“计算列”或者其他“行上下文”环境时,CALCULATE()能够识别“当前行”,并且,如果CALCULATE()的汇总参数所汇总的表格是所处外部“行上下文”环境表格的“下级表”时,那么,CALCULATE()函数还能够把“当前行”作为筛选条件,沿着数据模型表格间的“一对多”关系应用到下级表,也就是所谓的实现“行上下文转换为(对下级表的)筛选上下文”。

第三,除了CALCULATE()函数在运算时“先执行第2个参数,再执行第1个参数”的基本运算顺序外,CALCULATE()函数还有以下能力:CALCULATE()函数在执行运算时,首先识别其所处的当前筛选环境,即,CALCULATE()函数会判断自己是应用在了普通的筛选环境中,还是应用在了计算列或者其他“行上下文”环境中。。。CALCULATE()函数会根据不同的应用环境后,决定不同的运算策略。

第四,任何一个DAX度量值表达式(非计算列表达式),即便其最外部没有用CALCULATE()函数包裹,当该度量值表达式以其名称的形式引用至计算列、其他DAX表达式、或者拖拽到PowerPivot透视表值区域时,也相当于自动地DAX表达式外部包裹一个不可见的CALCULATE()函数,实现前述CALCULATE()函数的逻辑运算规则。

计算器中没有calc(DAX关于Calculate)(1)

,