DAX関数を理解するためのコツ

DAX(Data Analysis Expressions)とは、データを分析するための計算手段です。Power BIやExcelパワーピボットなど、Microsoft製品の中で使用できます。DAX関数と呼ばれる関数もあり、これはExcelのワークシート関数に似ていますが、計算対象となるものが異なるため挙動がわかりにくく、学び初めに躓いてしまう方も多いようです。どうしたらDAX関数を理解しやすくなるか、コツを解説します。

DAX関数を学ぶ前に知っておきたいこと

実はDAX関数を理解するためには、その前に理解しておくべきことが2つあります。1つは「ピボットテーブルの挙動」について、もう一つは「データモデル」についてです。

DAX関数が使われる場である、ピボットテーブルとは

DAX関数にはいくつかの使い方がありますが、最も活用場面が多いのは、Power BIやExcelパワーピボットの「メジャー」です。

メジャーを使うことで、複雑な集計や分析を容易に行うことができるようになりますが、その基本は「ピボットテーブル」での利用です。Power BIではテーブル以外の複数の「ビジュアル」を利用できますが、ここでは最も理解がしやすいピボットテーブルを使って解説します。

ピボットテーブルはExcelの標準的な機能として使った経験のある方も多いはずですが、その表がどのように集計されているのかを知っておくことが、DAX関数を理解するために非常に重要です。

上図のようなピボットテーブルを見ると、多くの人は「各商品の販売価格を合計して総計を求めている表」とイメージしますが、実際は「総計の値を各商品ごとに分割したものを各行目に求めて」います

「どっちでも良くない?」と思われるかもしれませんが、この2つは明確に異なります。なぜなら、DAX関数を使って作成されるメジャーは、この例の「各商品ごとに分割」のように、ピボットテーブルによって「アイテムごとにフィルタリング」されることを前提に作成するからです。つまりDAX関数では、ピボットテーブルに合わせて結果が変化する式を作成することになります。

DAX理解のためにはまず、上図のような表を見たらすぐに「ガムやクッキーといったアイテムごとに、元データ(レコード)をフィルタリングして、各行にはその集計(この図の場合は合計)を求めているんだな」というイメージを持てるようになっておきましょう。

DAX関数の計算対象となるデータモデルとは

Excelワークシート関数では、計算対象となるのは主にワークシート上のセルやセル範囲でした。

それに対しDAX関数では「データモデル」を対象として計算を行います。

データモデルとは、複数のテーブルで構成されたデータの集まりです。それぞれのテーブルを「リレーションシップ」という機能を使って繋ぎ合わせ、大きな一つのデータの集まりを作ります。

上図は、Excelパワーピボットで作成したデータモデルの例です。「T_売上データ」というテーブルに、「M_顧客」「M_商品」「M_担当者」という名前のテーブルをリレーションさせています。元々は4つのテーブル(データの集まり)だったものが、リレーションシップによって1つの大きなデータモデルになっています。各テーブルには「フィールド」と呼ばれる列がありますが、「顧客コード」「商品コード」「担当者コード」といった共通の項目をキーとして、データを繋ぎ合わせることができるからです。

DAX関数はこのデータモデルを対象に計算を行います。複数のテーブルがつながっているので、別のテーブルにある項目同士でも計算ができるのです。例えば、「T_売上データ」のテーブルにある「数量」列の値に、「M_商品」テーブルにある「売価」を掛け算して新たに「販売価格」を求め、さらに「顧客名」ごとに集計結果を求める、といったことができるようになります。

通常のピボットテーブルであれば、一度全体を大きな一つの表にしなければいけませんが、DAXを利用できるExcelパワーピボットやPower BIでは、それぞれの表は別に管理したまま集計を行います。そのため、DAX関数の挙動はもちろん、引数の指定も複雑になるものが多いのです。

DAX関数を使用する時は、対象となるデータモデルがどのように構成されているかを明確にイメージできることが重要です。

まとめ

DAX関数は大量のデータを元に、複雑な集計・分析を一気に行うことができる非常に強力な機能です。初めはとっつきにくい印象があるかもしれませんが、普段からExcelでデータ集計を行っている方であれば、一つずつステップを踏んで学ぶことで必ずスキルを身に着けることができます。データ集計・分析がますます楽しくなりますので、ぜひ頑張って学んでみてくださいね!

弊社では、パワークエリ・パワーピボットの研修をご提供しています。社内研修等のご相談がございましたら、お気軽にお問い合わせください。