MJo*_*Joy 2 calculated-field dax measures powerbi
请参考下面我使用的示例数据:
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
Run Code Online (Sandbox Code Playgroud)
表名是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"))
Run Code Online (Sandbox Code Playgroud)
如果没有任何报表图层过滤器,则两个度量都会返回值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
Run Code Online (Sandbox Code Playgroud)
*我已将"Devilered"值更改为"Delivered".
您的第一个度量(Count_1)将忽略此过滤器上下文,因此返回以下数据集中的[ID]的计数:
ID Name Status Dept.
6 Domnic Terminated LA
9 Kevin Terminated LA
Run Code Online (Sandbox Code Playgroud)
您的第二个度量(Count_2)将保留现有的过滤器上下文,然后将应用其他过滤器.由于没有记录满足这两个过滤器,因此该度量返回空值.
因为您的第一个度量忽略了现有的过滤器上下文,所以您可以有效地重写:
Count_1 =
CALCULATE(COUNT('Employee'[ID]),
'Employee'[Dept.]="LA",
'Employee'[Status]="Terminated")
Run Code Online (Sandbox Code Playgroud)
对此:
Count_1 =
CALCULATE(
COUNT('Employee'[ID]),
ALL('Employee'),
FILTER(
'Employee',
'Employee'[Dept.]="LA"
&& 'Employee'[Status]="Terminated")
)
Run Code Online (Sandbox Code Playgroud)
并最终获得相同的结果.我认为这更清楚地揭示了你的第一个衡量标准是如何有效行事的.
| 归档时间: |
|
| 查看次数: |
15054 次 |
| 最近记录: |