FILTER関数は、指定された値でフィルターをかけます。
Excelの表で使用するフィルターと、動きのイメージは同じです。
一点だけ注意するのは、FILTER関数はテーブルを返すということです。
テーブルを返すFILTER関数
次のようなデータがあったとします。
COUNT関数を使えば、行数をカウントして「4」という値を返します。
また、SUM関数で販売個数を合計すると「100」という値を返します。
しかし、フィルター関数で「P0001」にフィルターをかけても、値としては返せません。
では、何を返すかというと、下図のテーブルを返します。
ですので、FILTER関数だけでメジャーを作成することはできません。
SUMX関数やCALCULATE関数などと組み合わせて使用します。
SUMX関数で使用する
SUMX関数の中で、FILTER関数を使用してみます。
P0001の売上 :=
SUMX( FILTER('販売テーブル',[商品コード]="P0001") , [単価]*[販売個数] )
FILTER関数により、「商品コード = P0001」のテーブルが返されるのは先述のとおりです。
さらに、SUMX関数が行ごとに売上を計算し、それらを合計して、「133,000」という値を返します。
CALCULATE関数で使用する
CALCULATE関数で販売個数を合計したい場合は、以下のようなDAX式を作成します。
販売個数合計:=
CALCULATE( SUM([販売個数]) , FILTER('販売テーブル',[商品コード]="P0001") )
FILTER関数で商品コード「P0001」に条件を絞り、SUM関数で販売個数を合計します。
コメント