逻辑表达式的另类筛选
数据源:
计算列:
=CALCULATE(SUM('销售表'[数量]),FILTER('销售表','产品'[颜色]="蓝色"))
这个计算列如何理解
首先外部行转换为筛选上下文,被内部销售表覆盖了,扩充表包含所有的筛选器,所以外部看成没有筛选器,
其次:filter 的第二参数,'产品'[颜色]="蓝色",产品字段根据filter外部的产品表的当前行上下文取值,calculate外面的行上下文和filter内部行上下文二个行上下文没有直接关系,行上下文之间必须用relate 或者relatetable 建立表间关系,但是根据外部行的逻辑表达式产生true 和false ,用true或者false迭代销售表,所以
第一行表达式变成了
=CALCULATE(SUM('销售表'[数量]),FILTER('销售表',false))
结果完全正确
第二行表达式:
=CALCULATE(SUM('销售表'[数量]),FILTER('销售表',true))
结果完全正确,
从上面的推演看销售表迭代的true 或者false,但是表达式并没有迭代销售表,所有没有产生任何迭代筛选,
好了今天就分享到这里,这个题是文洲老师给我们的作业
文洲老师更多的视频请关注
https://study.163.com/course/courseMain.htm?courseId=1003801005
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)