请参阅下面我使用的样本数据:
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.但是当我在(已传递,待定)中为状态添加报表图层过滤器时,计数将更改为
Count_1
提供2
Count_2
提供blank
filter
,filter(all)
,filter(allexcept)
,filter(allselected)
答案 0 :(得分:5)
两个衡量标准之间的区别在于,第一个衡量标准会忽略现有的过滤器上下文(您已在报表中设置),而第二个将保留现有的过滤器上下文。
在报告中为状态添加(已传递,待处理)时,您将在过滤器上下文中保留以下记录:
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"值为"已交付"。
您的第一个度量(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")
)
最终得到相同的结果。我认为这更清楚地揭示了你的第一个衡量标准是如何有效行事的。