Dax StudioはDax関数のテストに便利なツールです。
オープンソースで無料でインストール可能です。
におすすめのツールです。
Power BI以外にも使えますがこの記事ではPower BIに絞ってます。
実際に私が使っている手順のコマンドを紹介します。
私が使っていて感じるメリットは
・動作が早い
・結果のデータをすぐに見れる
ということです。
こちらのDax Studioのホームページからダウンロードしてください。
Dax関数を使いたいPower BIのファイルを開きます。
外部ツールの中にDAX Studioのアイコンが追加されていますので、それを選択します。
次にPower BIのテーブルのデータをそのまま出してみます。
Dax関数の実行結果のデータをすぐに確認できるのがメリットです。
ショートカットキーを使うとさらに手早く実行できます。
Format Query : F6
Run : F5
次にDax関数のテストでDax Studioをどのように使うかを紹介します。
Dax Studioに書く内容はDax Queryといってプログラムです。
プログラムといっても覚えるのは2つだけです。
Dax Studioで出す内容はテーブルです。
例えば売上テーブルの金額の集計をテストするためにこのように書きます。
EVALUATE SUM ( '売上'[金額] )
この結果はエラーとなります。
テーブルの結果を出しているのではなくて項目の値を出しているからです。
項目の値のチェックをする時に次の3パターンがありますので、目的にあったのを利用してください。
EVALUATE
ROW ('売上'
, "合計", SUM('売上'[金額]))
ROW関数を使うことで、1行の結果を出すことができます。
パラメータ
第1:テーブル名
第2-1:追加の項目名
第2-2:Dax関数
*第2パラメータは複数設定可
EVALUATE
ADDCOLUMNS (
'売上',
"合計", MAX ( '売上'[金額] )
)
ADDCOLUMNSで既存のテーブルに項目を追加して結果を確認します。
パラメータ
第1:テーブル名
第2-1:追加の項目名
第2-2:Dax関数
*第2パラメータは複数設定可
EVALUATE
SUMMARIZECOLUMNS(
'売上'[商品],
'売上',
"合計", MAX('貸借対照表明細1'[金額])
)
SUMMARIZECOLUMNSを使うことで特定項目での集計結果を返します。
パラメータ
第1:集計グループ項目
第2:テーブル名
第3-1:追加の項目名
第3-2:Dax関数
*第1,3パラメータは複数設定可
DEFINEを使うのは
というときです。
それぞれについて説明します。
商品単位の合計金額の式についてテストしているとします。
EVALUATE
SUMMARIZECOLUMNS(
'売上'[商品],
'売上',
"合計", MAX('貸借対照表明細1'[金額])
)
「画面上から売上日の条件を指定された時にどのようにデータが変わるか?」
を確認したい時にDEFINEを使うとわかりやすくなります。
緑色の部分が今回変更した箇所です。
2月を抽出した時の結果を確認することができます。
DEFINE VAR FILTER_TABLE = FILTER ('売上', '売上'[売上日] = "2月" ) EVALUATE SUMMARIZECOLUMNS( '売上'[商品], FILTER_TABLE, "合計", MAX('貸借対照表明細1'[金額]) )
今回はMAX関数を使用しているので便利さがわかりにくいですが、
「ALL」「ALLSELECTED」「ALLEXCEPT」
といった抽出条件に関係する関数を使っている場合に便利です。
カテゴリ別の売上比率を出したいとします。
出すためには
・全体の合計金額
・カテゴリ別の合計金額
が必要です。
縦のレコードが違うものどうしの計算は複雑になります。
この時DEFINEは便利です。
緑がDEFINEを使って全体の合計金額を出した式です。
EVALUATEで各売上金額を合計金額で割っているので売上比率を出すことができます。
DEFINE VAR Total = SUM('売上'[金額]) EVALUATE SUMMARIZECOLUMNS ( '売上'[商品], '売上', "比率", SUMX('売上','売上'[金額] / Total) )
Dax関数のテストと修正が終わったらPower BIに反映します。
DEFINEとEVALUATEはPower BIでは使えないので変換が必要です。
Power BIで「新しいメジャーの作成」から、式の部分のみ貼り付けます。
*今までのサンプルで赤の部分です
合計金額 = SUM('売上'[金額])
という形になります。
式を次のように変換します。
・DEFINEを削除
・EVALUATEをRETURNに変更
・EVALUATEを式(赤色)の部分のみとする
変換後Power BIの「新しいメジャーの作成」をして、式を貼り付けます。
サンプルはこのようになります
DEFINE売上比率 = VAR Total = SUM('売上'[金額])EVALUATERETURNSUMMARIZECOLUMNS ( '売上'[商品], '売上', "比率",SUMX('売上','売上'[金額] / Total))
結果だけ書くとこのようになります。
売上比率 = VAR Total = SUM('売上'[金額]) RETURN SUMX('売上','売上'[金額] / Total)
Dax Studioを使うとメジャーのテストスピードが早くなります。
ただし追加で式を書く必要があります。
そのためある程度Dax関数を書ける人でないと逆に難しくなってしまいます。
この記事では汎用的に使えるサンプルを紹介しました。
開発やテストするまジャーによって使うテンプレートをを固定すれば、作りたいメジャーのロジックだけに集中できます。
紹介したパターンは次となります。
EVALUATE
DEFINE
複雑なメジャーを作成する場合はご利用ください。