鷹尾祥(アキラ)のExcel BI ブログ

Excelの革新的機能であるパワーピボット/パワークエリ/DAXについて紹介します。

EXCELでDAXクエリを使うには

EXCELDAXクエリを使うには

f:id:modernexcel7:20210403202827p:plain

DAXSQLなどと同じようにクエリ言語として使用することができます。

メジャーの結果はいわゆるスカラーといった1つの値ですが、そこにたどり着くまでの途中経過のテーブル関数の動作などメジャーでは見えにくい部分を検証する上で役に立ちます。

DAXクエリを呼び出すための準備

EXCELではちょっと変わった呼び出し方をします。

データモデルが組んであるEXCELブックを開く

まずパワーピボットでデータモデルが組んであるEXCELブックを開きます。
今回は『EXCELパワーピボット』のサンプルファイルを開きます。

f:id:modernexcel7:20210403200929p:plain

データモデルに読み込むダミーのクエリを作る

EXCELシートの何もないセルを選択し、データからテーブルまたは範囲からをクリックします。

f:id:modernexcel7:20210403200213p:plain

テーブルの作成が現れるので、そのままOKを押して次に進みます。

f:id:modernexcel7:20210403200312p:plain

PowerQueryエディターが開いたら、そのまま閉じて読み込む→閉じて次に読み込む…に進みます。

f:id:modernexcel7:20210403200400p:plain

このデータをデータモデルに追加するにチェックを入れて、OKを押します。

f:id:modernexcel7:20210403200533p:plain

何もない空のテーブルが読み込まれます。

f:id:modernexcel7:20210403200651p:plain

ダミーのテーブルからDAXの編集を開く

ダミーで作成したクエリを右クリックし、テーブル→DAXの編集を選択します。

f:id:modernexcel7:20210403200740p:plain

以下のような画面が表示されます。

f:id:modernexcel7:20210403201434p:plain

コマンドの種類テーブルからDAXに変え、以下の式を入力します。

EVALUATE
'F_売上明細'

f:id:modernexcel7:20210403201849p:plain

データモデルの中からF_売上明細テーブルがそのまま読み出されました。

f:id:modernexcel7:20210403202125p:plain

構文

式はEVALUATEで始めます。

例1: FILTER関数

FILTER関数を使って、売上が100万円以上のデータを取得します。

EVALUATE
FILTER (
    'F_売上明細',
    'F_売上明細'[売上] > 1000000
)

売上が100万円以上のF_売上明細テーブルです。

f:id:modernexcel7:20210403203846p:plain

例2: FILTER関数 と RELATEDでリレーションショップによるフィルター

RELATED関数を使ってリレーションショップを介したフィルタリングを行います。

EVALUATE
FILTER (
    'F_売上明細',
    RELATED ( 'カレンダー'[会計年度] ) = 2017
)

会計年度が2017のF_売上明細テーブルです。

f:id:modernexcel7:20210403203550p:plain

例3: ADDCOLUMNS関数とメジャーで集計

以下の構文では年度ごとの「売上合計」メジャーを参照して集計しています。

EVALUATE
ADDCOLUMNS (
    VALUES ( 'カレンダー'[会計年度] ),
    "Sales", [売上合計]
)

会計年度ごとの売上合計を集計しました。

f:id:modernexcel7:20210403202518p:plain

まとめ

EXCELの標準機能でDAXを呼び出すのは今回の手順になりますが、インテリセンスが無いので構文やテーブル、列名などが誤っていても気が付かないことがあります。その場合は、DAX Studioをインストールして使うのが良いでしょう。

daxstudio.org