逻辑表达式的另类筛选

数据源:
file
计算列:

=CALCULATE(SUM('销售表'[数量]),FILTER('销售表','产品'[颜色]="蓝色"))

这个计算列如何理解
首先外部行转换为筛选上下文,被内部销售表覆盖了,扩充表包含所有的筛选器,所以外部看成没有筛选器,
其次:filter 的第二参数,'产品'[颜色]="蓝色",产品字段根据filter外部的产品表的当前行上下文取值,calculate外面的行上下文和filter内部行上下文二个行上下文没有直接关系,行上下文之间必须用relate 或者relatetable 建立表间关系,但是根据外部行的逻辑表达式产生true 和false ,用true或者false迭代销售表,所以
file
第一行表达式变成了

=CALCULATE(SUM('销售表'[数量]),FILTER('销售表',false))

file
结果完全正确
第二行表达式:

=CALCULATE(SUM('销售表'[数量]),FILTER('销售表',true))

file
结果完全正确,
file
从上面的推演看销售表迭代的true 或者false,但是表达式并没有迭代销售表,所有没有产生任何迭代筛选,
好了今天就分享到这里,这个题是文洲老师给我们的作业
文洲老师更多的视频请关注
https://study.163.com/course/courseMain.htm?courseId=1003801005