[英]Power BI - Using of filters in calculate function
请参考以下我使用的示例数据:
ID Name Status Dept.
1 Austin Pending MES
2 Roy Devilered DHA
3 Steven Terminated DHA
4 Peter Pending MES
5 Sanjay Pending MES
6 Domnic Terminated LA
7 Leon Devilered MES
8 Sanal Devilered LA
9 Kevin Terminated LA
10 Binoy Pending DHA
表名称是Employee。
我添加了两个措施:
Count_1 =
CALCULATE(COUNT('Employee'[ID]),
'Employee'[Dept.]="LA",
'Employee'[Status]="Terminated")
Count_2 =
CALCULATE(COUNT('Employee'[ID]),
FILTER('Employee','Employee'[Dept.]="LA"),
FILTER('Employee','Employee'[Status]="Terminated"))
没有任何报表层过滤器,这两个度量均返回2的值。但是,当我在(Delivered,Pending)中为Status添加报表层过滤器时,计数更改为
Count_1
给出2
Count_2
为blank
filter
, filter(all)
, filter(allexcept)
, filter(allselected)
filter(allexcept)
之间的区别 两种措施之间的区别在于,第一种措施将忽略现有的过滤器上下文(已在报表中设置),而第二种措施将保留现有的过滤器上下文。
在报表的(已交付,待处理)中添加状态过滤器时,过滤器上下文中将保留以下记录:
ID Name Status Dept.
1 Austin Pending MES
2 Roy Delivered DHA
4 Peter Pending MES
5 Sanjay Pending MES
7 Leon Delivered MES
8 Sanal Delivered LA
10 Binoy Pending DHA
*我已将“ Devilered”值更改为“ Delivered”。
您的第一个度量(Count_1)将忽略此过滤器上下文,因此返回以下数据集中的[ID]的计数:
ID Name Status Dept.
6 Domnic Terminated LA
9 Kevin Terminated LA
您的第二个度量(Count_2)将保留现有的过滤器上下文,然后将应用其他过滤器。 由于没有记录满足这两个筛选器,因此该度量将返回空白值。
因为您的第一个度量会忽略现有的过滤器上下文,所以您可以有效地重写以下内容:
Count_1 =
CALCULATE(COUNT('Employee'[ID]),
'Employee'[Dept.]="LA",
'Employee'[Status]="Terminated")
对此:
Count_1 =
CALCULATE(
COUNT('Employee'[ID]),
ALL('Employee'),
FILTER(
'Employee',
'Employee'[Dept.]="LA"
&& 'Employee'[Status]="Terminated")
)
并最终得到相同的结果。 我认为这可以更清楚地揭示您的第一项措施的有效行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.