私が使用したサンプルデータを以下で参照してください。
_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です。
2つのメジャーを追加しました。
_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)
の違い2つのメジャーの違いは、最初のメジャーは既存のフィルターコンテキスト(レポートで設定したもの)を無視し、2番目のメジャーは既存のフィルターコンテキストを保持することです。
レポートの(配信済み、保留中)のステータスのフィルターを追加すると、フィルターコンテキストに次のレコードが残ります。
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
2番目のメジャー(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")
)
そして、同じ結果になります。これにより、最初のメジャーが効果的にどのように動作するかがより明確に明らかになると思います。