请参考我使用的示例数据:
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
表名是员工。
我添加了两个措施:
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)
之间的区别
您的两个度量之间的区别是,第一个措施将忽略现有的过滤器上下文(您在报告中设置了它(,而第二个措施将保留现有的过滤器上下文。
当您在报告中添加过滤器(已交付,待处理(时,您将在过滤器上下文中留下以下记录:
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
*我已将"贬低的"值更改为"已交付"。
您的第一个度量(count_1(将忽略此过滤器上下文,因此在以下数据集中返回[id] s的计数:
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")
)
最终得到相同的结果。我认为这更清楚地暴露了您的第一个措施的有效行为。