▶ 中間テーブルを作ってリレーションシップの設定をする方法はこちらをご覧ください
▶ カレンダーテーブルの作成方法はこちらの投稿をどうぞ
はじめに
今回はDAXの中で変数を扱う方法について基本から解説します。新しいメジャーを追加するときに、定義式の中で変数を使用したくなるケースがあります。複雑な式では変数を使うことによって、読みやすさも向上しますし、場合によってはパフォーマンスも向上します。早速見ていきましょう。
DAXでの変数の扱い
基本的な書式
まずは書式を確認しておきましょう。次のようになります。
簡単ですね。
- Returnステートメントまでには複数の変数を宣言できる
- 変数の再割り当てはできない(一度だけ割り当てられる)
が注意事項となります。実際に試してみたほうが理解しやすいので、早速やってみましょう。変数は「新しい列」「新しいメジャー」のどちらでも利用することができます。
▶「新しい列」や「新しいメジャー」については以下の投稿をどうぞ
DAX変数の基本
簡単な例で確認していきましょう。以下のサンプルデータを使ってみていくことにします。
どうぶつたちのテスト結果があります。英語・国語・数学の点数が記載されていますが、200点満点のテストのようです。「満点時の得点(200点)」と「100点換算時の得点」の列を作ってみることいしましょう。
まず①データ画面を開いて、②フィールドのテーブルの上で右クリックメニューを表示して「新しい列」を選択します。
今回はまず、「満点時の得点」の列をつくることにします。列名を「満点時の得点」として値を200とするだけなので、変数を使わなくても簡単にできます。ここでは、あえて変数を使ってみることにしましょう。
①列の定義のところで、変数を使って列を作ってみました。まず1行目は等号記号(=)の左側に列名を記載します。次に2行目でvarのあとに変数名を記載して、変数を宣言します。変数名には日本語は使えないので注意しましょう。次にこの変数に値をアサインします。ここでは200をアサインしています。最後に返り値を指定します。returnのあとに記載します。ここでは変数pointを指定します。
すると、②「満点時の得点」の列ができあがりました。次に「100点換算時の得点」を作っていきましょう。先と同じ要領で「新しい列」を選択してください。
先ほどと全く同じ手順です。今度は、複数の変数を宣言しています。2行目は満点時の得点、3行目は何点に換算するかを指定します。(今回は100点換算したいので100を指定)4行目で実際の得点を100に換算する演算をしてpoint_after_convという変数にアサインしています。5行目でこの変数を返り値に指定しています。
簡単ですね。このように変数の宣言、アサインは使ってみれば何も難しくはありません。定義式を書く際、改行時にカンマは不要、複数の変数もそのまま改行して羅列すればよい、変数の再割り当てはできない、といったことに注意するくらいですね。
まとめ
今回はDAXでの変数の基本を扱いました。書式さえ押さえておけば、難しいことはありませんね。こんかいは簡単な例を示しましたが、複座鵜に見えるものも基本的には同じ構造をしています。まずは、基本をしっかり押さえておきましょう。
コメント