【DAX】FILTER関数で条件付きの計算、複数条件の設定

PowerBI DAX FILTER FILTER関数DAX関数
スポンサーリンク

PowerBIを使用中に「データにフィルターをかけた状態で計算させたい!」と思う場面がありますよね。今回はそんな場合に使う、DAX関数でも使用頻度上位のFILTER関数について説明します。

FILTER関数はその名の通り、データテーブルにフィルターをかける関数です。欲しいテーブルの抽出や、フィルター条件内での計算など活用の幅が広いです。

【本記事でできること】
・FILTER関数の使い方
・FILTER関数でフィルターをかけたテーブルの抽出
・FILTER関数で複数条件の設定(AND/OR関数)
・CALCULATE関数と組み合わせた計算

FILTER関数はテーブルにフィルターをかけられるので、条件付きの計算などが可能になります。DAX関数の中で必須レベルの重要な関数といえますので、ぜひマスターしてみてください!

PowerBIは参考本やサイト情報があまり充実していないので、Udemyで動画学習するのがおすすめです!(私も最初は活用しました!)

Udemyで学ぶ

FILTER関数とは?

FILTER関数はその名の通り、データテーブルにフィルターをかけられる関数です。

【FILTER関数】構文
 =FILTER(<table>,<filter>)

つまり
 =FILTER(テーブル,フィルター)
指定したデータテーブルにフィルターをかける関数

参考:Microsoft Docs FILTER関数

マウスクリックでかけられるフィルターはFILTER関数でもできる!と覚えておきましょう!

活用場面は
・フィルターをかけたテーブルを抽出したいとき
・フィルターをかけた条件で合計やカウントなどの計算をさせたいとき

など様々です。

特にCALCULATE関数やCOUNTROWS関数と組み合わせた合計や数のカウントの計算は活用場面も多いので、ぜひご参考ください!

【関連記事】
▶COUNT、CALCULATE、FILTER関数を組み合わせた条件付きのカウント計算
▶MAXX/MINX関数とFILTER関数を組み合わせた条件付き最大/最小値の計算
▶CALCULATE関数の使い方、条件付きの計算
▶フィルター機能であるPowerBIのスライサー機能
▶IF関数で複数条件を設定する方法まとめ

スポンサーリンク

FILTER関数でフィルターしたテーブルの作成

それでは、FILTER関数を用いてフィルターをかけたテーブルを作成していきます。

取り込むデータは下記の購入リストで、「日付」「製品」「性別」「地域」「購入数」「売上」などがのっているリストになります。

PowerBI 取り込みデータ FILTER関数

このデータから購入数が3つ以上の方をフィルターしたテーブルを作成していきます。

フィルターをかけたテーブルを新規に作成したいので、
PowerBIのデータテーブルで「新しいテーブル」をクリックし、
FILTER関数で購入数が3以上の指示をします。

FILTER関数 新しいテーブル 条件 DAX関数

FILTER関数は
=FILTER(テーブル,フィルター)
なので、

テーブル = FILTER(‘購入リスト’,[購入数]>=3)

とテーブルとフィルターの条件式を入力すればOKです!

これで、購入数が3つ以上のデータのみのテーブルを新たに作成できました!

【結論】
FILTER関数を使えば任意のフィルターしたテーブルを作成できる!

スポンサーリンク

FILTER関数で複数条件の設定

次にFILTER関数でAND関数、OR関数を用いて複数条件を設定する方法を紹介します。

=FILTER(テーブル,フィルター)

フィルターのところに下記の複数条件の設定をしていけばOKです。

【複数条件の設定】

・AND関数、&&
→すべての条件を満たす(AかつB)
・OR関数、||(パイプ)
→一つでも条件を満たす(AまたはB)
・NOT関数

→その条件を満たしていない(A以外)

例えば、
購入数が3以上かつ性別が女性
の場合は下記のように入力します。

FILTER関数 複数条件の設定 AND

複数条件テーブル = FILTER(‘購入リスト’,AND([性別]=”女性”,[購入数]>=3))
もしくは
複数条件テーブル = FILTER(‘購入リスト’,[性別]=”女性”&&[購入数]>=3)

FILTER関数の中に「AND関数」や「&&」ですべての条件を満たす複数条件を設定すればOKです。

同様に、購入数が3以上または性別が女性の場合は

FILTER関数 複数条件の設定 OR関数 DAX PowerBI

複数条件テーブル = FILTER(‘購入リスト’,OR([性別]=”女性”,[購入数]>=3))
もしくは
複数条件テーブル = FILTER(‘購入リスト’,[性別]=”女性”||[購入数]>=3)

FILTER関数の中に「OR関数」や「||」で一つでも条件を満たす複数条件を設定すればOKです。

【結論】
FILTER関数の複数条件の設定はAND、OR関数と組み合わせる!

【関連記事】
▶IF関数で複数条件を設定する方法

スポンサーリンク

FILTER関数を用いた計算(CALCULATE関数)

続いて、使用頻度が高いFILTER関数とCALCULATE関数を組み合わせたメジャーでの計算方法を説明します。

【関連記事】
▶「メジャー」と「新しい列」の違い、データ加工方法
▶SUM関数、SUMX関数でSUMIFS的な使い方
▶CALCULATE関数の使い方、条件付きの計算
▶メジャーで平均値の追加(AVERAGE/AVERAGEX関数)

CALCULATE関数は複数条件を指定した計算ができる関数になります。

【CALCULATE関数】構文
 =CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])

つまり
 
= CALCULATE(式,フィルター①,フィルター②,…)
とフィルター箇所に複数条件を追加して計算させる関数

CALCULATE関数のフィルター①②…のところにFILTER関数を指定すれば、フィルターをかえた条件で計算をさせることが可能になります。

例えば、男性のみの売上合計のメジャーを追加してみます。

FILTER関数 メジャー 条件 計算 CALCULATE関数 PowerBI

メジャー名:売上合計(男性)
関数:CALCULATE関数、FILTER関数
CALCULATE(式,フィルター①,フィルター②,…)
FILTER(テーブル,フィルター)

売上合計(男性)
= CALCULATE(SUM(‘テーブル'[売上]),FILTER(‘購入リスト’,[性別]=”男性”))

CALCULATE関数のフィルターの部分にFILTER関数で条件設定をしています。式にはSUM関数で売上の合計、フィルターにはFILTER関数で性別が女性をフィルターして抽出して計算しています。

レポート画面のカードで確認すると、きちんと男性だけの合計ができています!

PowerBI FILTER関数 CALCULATE関数 合計

CALCULATE関数と同じように、COUNTROWS関数とFILTER関数を組み合わせて行のカウントができます。例えば、性別が女性の数をメジャーで追加する場合は

COUNTROWS関数 FILTER関数 PowerBI 行 カウント

メジャー名:女性の数
関数:COUNTROWS関数、FILTER関数
COUNTROWS(テーブル)
FILTER(テーブル,フィルター)

女性の数
= COUNTROWS(FILTER(‘購入リスト’,[性別]=”女性”))

COUNTROWS関数はテーブルを引数にするので、そのままFILTER関数でフィルターしたテーブルをわたせばOKです。

こちらも、レポート画面のカードで確認すると、きちんと女性の数が計算できています!

PowerBI FILTER関数 COUNTROWS

COUNTROWS関数を用いた条件付きのカウントの詳細方法は下記で詳しく説明していますので、ご参考ください!

【結論】
CALCULATE関数とFILTER関数を組み合わせればフィルターをかけた状態の計算ができる!

スポンサーリンク

PowerBIでFILTER関数 まとめ

今回は必須のDAX関数であるFILTER関数の詳細な使い方を紹介しました。
・FILTER関数でフィルターをかけたテーブルの抽出
・FILTER関数で複数条件の設定(AND/OR関数)
・CALCULATE関数と組み合わせた計算

データを「フィルターがかかった状態で計算したい!」
と思った場合は、FILTER関数を使う
と覚えておきましょう!

CALCULATE関数、COUNTROWS関数と組み合わせたフィルターをかけた合計やカウントの方法は非常によく使うのでぜひマスターしてみてください!

応用編としてFILTER関数を使ってパレート図を作成する手順を下記で紹介しています。

これまでの記事のまとめとして、
PowerBIの便利機能やDAX関数を整理していますので、ぜひご参考下さい!

よく使うDAX関数まとめ

【PowerBI】便利機能9選と学習方法まとめ

最後まで読んでいただきありがとうございます!

記事が良ければ☟クリック応援よろしくお願いします!!

にほんブログ村 サラリーマン日記ブログへ
にほんブログ村

コメント

タイトルとURLをコピーしました