我们要统计一个表中产品6在渠道店面的销售金额,如果用DAX函数来写,有三种写法:
- 第一种写法:
产品6店面 = CALCULATE([金额合计],FILTER('销售记录','销售记录'[产品代码]=6&&'销售记录'[渠道]="店面"))
- 第二种写法:
产品6店面1 = CALCULATE([金额合计],'销售记录'[产品代码]=6,'销售记录'[渠道]="店面")
- 第三种写法:
产品6店面2 = CALCULATE([金额合计],FILTER('销售记录','销售记录'[产品代码]=6),FILTER('销售记录','销售记录'[渠道]="店面"))
第一种与第三种的写法,结果完全一致,这说明,CALCULATE函数的筛选条件之间是AND关系,多个筛选条件是同时成立的关系:
而第二种写法,有很大的不同:
相当于是产品代码列与渠道列失去了对这个度量值的筛选作用,对于所有的产品代码与渠道都显示的是相同的结果。
但是当我们,采用除了上述两列以外的筛选条件,所得到的结果与其他两个度量值的结果是完全一样的。
这是在CALCULATE函数编写度量值时一个需要注意的地方,不使用FILTER函数与使用FILTER函数编写筛选条件,其度量值结果,还是有一定的区别的。
更多关于CALCULATE函数的介绍请参阅: