DAXは数式言語(
手短に言えば、DAXはピボットテーブルの数式です。ほとんどのDAX関数は、通常のExcel関数と似た名前と特性を持っていますが、PowerPivot内でのみ使用できます。ご存知の通り、通常のピボットテーブルは計算フィールド(DAXにおける
全体として、DAXは、一見すると難解な言語ではありませんが、その動作原理を理解するだけで十分です。Excelの数式とDAXの数式の違いは、Excelでは個々のセルや範囲を操作するのに対し、DAXではテーブル全体とその列にのみ参照できるという点です。
DAXコードを使い始めるには、Excel 2010用のPowerPivotをインストールするか、Excel 2013で同名のタブに移動する必要があります。
Excelと同様に、DAX関数も特定のカテゴリに分類されます。
PowerPivotでは、ユーザーは2種類の計算フィールドを作成できます。
同じ数式でも、計算列またはメジャーのどちらで使用されるかによって、動作が異なる場合があります。数式が計算列で使用される場合、その列の各行にテーブル全体にわたって適用されます。値は行のコンテキストに依存する可能性があります。一方メジャーでは、計算結果はコンテキストにさらに依存します。これは、ピボットテーブルの構造や行および列のヘッダーの選択が、計算で使用される値に影響を与えることを意味します。
つまり、言い換えれば、ピボットテーブルを私たちが作成するとき、次のようになります。
DAX言語には、コンテキストという概念も存在します。これは数式の機能を理解するために非常に重要です。PowerPivotの数式は、ピボットテーブルに適用されるフィルター、テーブル間のリレーションシップ、および数式内に存在するフィルターによって影響を受ける可能性があります。コンテキストは、動的な分析を可能にします。数式を作成し、トラブルシューティングを行う際には、コンテキストの目的を理解することが重要です。
したがって、DAXには3種類のコンテキストがあります。フィルターコンテキスト、行コンテキスト、およびクエリコンテキストです。
フィルターコンテキストとは、各列で許可される値のセットで、行に適用されるフィルターの制限、または数式内で定義されているフィルター条件に応じて異なります。
行コンテキストは、事実上、現在の行の概念に対応します。計算列が作成されている場合、行コンテキストは、各個別の行の値と、現在の行に関連する列の値です。
クエリコンテキストは、ピボットテーブルの行と列のヘッダー(ピボットテーブルのレイアウト構造)に応じて、ピボットテーブルの各セルに対して暗黙的に作成されるデータサブセットを指します。