FILTER関数

パワーピボット 基本

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関数で販売個数を合計します。

POINT

販売個数合計 := CALCULATE( SUM([販売個数]) , '販売テーブル'[商品コード]="P0001" )

と記述しても、実は同じ結果が得ることができます。

これは、CALCULATE関数における省略形、特別ルールのようなものです。

仕事の生産性の人気オンラインコース

コメント