![b32f9d05a1e7ba3b02bb4ac7a0eb2429.png](https://img-blog.csdnimg.cn/img_convert/b32f9d05a1e7ba3b02bb4ac7a0eb2429.png)
“ALL”系列函数对比
*备注:数据为处理后的数据,非实际商业数据
ALL函数(删除筛选器):
【正选】返回表中的所有行或者返回列中的所有值,同时忽略可能已应用的任何筛选器。此函数可用于清除筛选器并对表中的所有行创建计算。
备注:
①就像REMOVEFILTERS一样,此功能从过滤器上下文中删除相应的过滤器。直接在CALCULATE或CALCULATETABLE的过滤器参数中调用时,它不会具体化结果表。
②当ALL具有至少一个参数时,可以将其用作表表达式。
③不带参数的ALL只能用作CALCULATE或CALCULATETABLE修饰符,并从过滤器上下文中删除所有过滤器。
![7ee9fa0d50825a9ac62439fc70a30c68.png](https://img-blog.csdnimg.cn/img_convert/7ee9fa0d50825a9ac62439fc70a30c68.png)
案例:
All就是删除省区筛选器,最总得到的是合计数据。
度量值:
完成单量:=CALCULATE(SUM('区域对照表'[完成单量]))
完成单量ALL:=CALCULATE(SUM('区域对照表'[完成单量]),ALL('区域对照表'[省区]))
结果:
![6a2ec0416c890223a27dd23a53db5a0a.png](https://img-blog.csdnimg.cn/img_convert/6a2ec0416c890223a27dd23a53db5a0a.png)
ALLEXCEPT函数(删除筛选器):
【反选】函数用于移除其他字段的所有过滤器,而保留参数指定的字段上的过滤器,与ALL()函数相反。
备注:此函数从过滤器上下文中删除相应的过滤器。直接在CALCULATE或CALCULATETABLE 的过滤器参数中调用时,它不会具体化结果表。
![05ba55aab6b094367cf982caed0629d2.png](https://img-blog.csdnimg.cn/img_convert/05ba55aab6b094367cf982caed0629d2.png)
案例(区别ALL与ALLEXCEPT):
度量值:
All,删除区域和省区筛选器,结果是按照大区筛选计算的结果;ALLEXCEPT,删除“除大区”外的筛选器(保留大区筛选器),最终结果一致。
完成单量(ALL【省区】【区域】)=CALCULATE(SUM('区域对照表'[完成单量]),ALL('区域对照表'[区域],'区域对照表'[省区]));
完成单量(ALL【省区】【区域】):=CALCULATE(SUM('区域对照表'[完成单量]),ALLEXCEPT('区域对照表','区域对照表'[大区]))
结果:
![14688ac484daa8797a3f818485191172.png](https://img-blog.csdnimg.cn/img_convert/14688ac484daa8797a3f818485191172.png)
ALLSELECETED函数(删除筛选器):
【正选】从当前查询的上下文中移除的行和列的过滤(即忽略行和列的过滤),而保留当前查询除行和列之外的上下文过滤器或显式定义的过滤器(例如切片器等)。
备注:
①此函数从过滤器上下文中删除相应的过滤器,还原最后一个阴影过滤器上下文。直接在CALCULATE或CALCULATETABLE的过滤器参数中调用时,它不会具体化结果表。
②当它具有至少一个参数时,ALLSELECTED可以用作表表达式。
③不带参数的ALLSELECTED只能用作CALCULATE或CALCULATETABLE修饰符,并从过滤器上下文中删除所有过滤器。
④自2019年5月以来,ALLSELECTED支持多列作为参数。
案例:(区别ALL与ALLSELETED)
All,删除省区筛选器,得出的结果是全部省区合计的结果(不受任何切片器的影响);ALLSELETED,删除省区筛选器,在有切片器的情况下,得出切片器选择的区域合计结果。
度量值:
完成单量ALL:=CALCULATE(SUM('区域对照表'[完成单量]),ALL('区域对照表'[省区]))
完成单量ALLSELETED:=CALCULATE(SUM('区域对照表'[完成单量]),ALLSELETED('区域对照表'[省区]))
结果:
![ad3c091e4348cf69be6fb67d3564d4c9.png](https://img-blog.csdnimg.cn/img_convert/ad3c091e4348cf69be6fb67d3564d4c9.png)
![1429978bd26d676859d3904cbe70ad6c.png](https://img-blog.csdnimg.cn/img_convert/1429978bd26d676859d3904cbe70ad6c.png)
ALLNOBLANKROW:
返回表中除空白行或列中的所有值以外的所有行,而忽略可能已应用的所有过滤器。
备注:此函数从过滤器上下文中删除相应的过滤器。直接在CALCULATE或CALCULATETABLE 的过滤器参数中调用时,它不会具体化结果表。
![725f9c39642e947621a54f080b363ae7.png](https://img-blog.csdnimg.cn/img_convert/725f9c39642e947621a54f080b363ae7.png)
案例:
ALLNOBLANKROW忽略现有的全部筛选器。
度量值:
完成单量ALL:=CALCULATE(SUM('区域对照表'[完成单量]),ALL('区域对照表'[省区]))
完成单量(ALLNOBLANKROW):=CALCULATE(SUM('区域对照表'[完成单量]),ALLNOBLANKROW('区域对照表'))
结果:
![60c62a2f067a8c3f7e86f3bdc7dd7cc1.png](https://img-blog.csdnimg.cn/img_convert/60c62a2f067a8c3f7e86f3bdc7dd7cc1.png)
ALLCROSSFILTERED:
用于清除应用到表上的所有过滤器,该函数不返回任何值,仅仅用于清除表上的过滤器。
备注:
①ALLCROSSFILTERED只能用作CALCULATE修饰符,而不能用作表函数。
②ALLCROSSFILTERED删除在扩展表(如ALL)以及由于直接或间接连接到扩展表的关系上设置的双向交叉过滤器而被交叉过滤的列和表上的所有过滤器。