この記事では、 PowerPivotでの 計算列 とメジャーの両方に対する計算式の作成の基本について説明 します 。 DAX を初めて使用する場合は、クイック スタート: 30 分で DAX の基本を学習するチェックしてください。
数式の基本
PowerPivot では、 PowerPivot テーブルと Excel ピボットテーブルでカスタム計算を作成するためのデータ分析式 (DAX) が提供されます。 DAX には、Excel 数式で使用される関数の一部と、リレーショナル データを操作して動的集計を実行するように設計された追加の関数が含まれています。
計算列で使用できる基本的な数式を次に示します。
数式 |
説明 |
|
列のすべての行に今日の日付を挿入します。 |
|
列のすべての行に値 3 を挿入します。 |
|
[Column1] と [Column2] の同じ行に値を追加し、結果を計算列の同じ行に配置します。 |
計算列の PowerPivot 数式は、Microsoft Excel で数式を作成する場合と同じように作成できます。
数式を作成するときは、次の手順に従います。
-
各数式は等号で始まる必要があります。
-
関数名を入力または選択するか、式を入力できます。
-
必要な関数または名前の最初の数文字を入力し、AutoComplete には使用可能な関数、テーブル、列の一覧が表示されます。 Tab キーを押して、オートコンプリート リストから数式に項目を追加します。
-
[ Fx ] ボタンをクリックすると、使用可能な関数の一覧が表示されます。 ドロップダウン リストから関数を選択するには、矢印キーを使用して項目を強調表示し、[OK] をクリックして関数を数式に追加 します 。
-
可能なテーブルと列のドロップダウン リストから引数を選択するか、値または別の関数を入力して、関数に引数を指定します。
-
構文エラーを確認する: すべてのかっこが閉じられ、列、テーブル、および値が正しく参照されていることを確認します。
-
Enter キーを押して式を確定します。
注: 計算列では、数式を受け入れるとすぐに、列に値が設定されます。 メジャーで Enter キーを押すと、メジャー定義が保存されます。
単純な数式をCreateする
単純な数式を使用して計算列を作成するには
その後、すべての行の新しい計算列に値が設定されます。 |
オートコンプリート使用のヒント
-
入れ子になった既存の関数の途中で、数式オートコンプリートを使用できます。 挿入ポイントの直前のテキストに基づいてドロップダウン リストの値が表示され、挿入ポイントの後のすべてのテキストは元のまま残ります。
-
PowerPivot には、関数の閉じかっこを追加する機能や、かっこを自動的に照合する機能はありません。 各関数が構文的に正しいことを確認するか、数式を保存または使用できないようにする必要があります。 PowerPivot ではかっこが強調表示されるため、適切に閉じている場合にチェックしやすくなります。
テーブルと列の操作
PowerPivot テーブルは Excel テーブルに似ていますが、データと数式の操作方法は異なります。
-
PowerPivot の数式は、個々のセル、範囲参照、配列ではなく、テーブルと列でのみ機能します。
-
数式では、リレーションシップを使用して関連テーブルから値を取得できます。 取得される値は、常に現在の行の値に関連します。
-
PowerPivot 数式を Excel ワークシートに貼り付けることはできません。その逆も同様です。
-
Excel ワークシートのように、不規則なデータや "不規則な" データを含めることはできません。 テーブル内の各行には、同じ数の列が含まれている必要があります。 ただし、一部の列には空の値を指定できます。 Excel データ テーブルと PowerPivot データ テーブルは互換性がありませんが、 PowerPivot から Excel テーブルにリンクし、Excel データを PowerPivotに貼り付けることができます。 詳細については、「 リンク テーブルを使用してワークシート データをデータ モデルに追加する 」および「Power Pivot のデータ モデルに行をコピーして貼り付ける」を参照してください。
数式と式のテーブルと列を参照する
任意のテーブルと列を参照するには、その名前を使用します。 たとえば、次の数式は、完全修飾名を使用して 2 つのテーブルの列を参照する方法を示しています。
=SUM('New Sales'[Amount]) + SUM('Past Sales'[Amount])
数式が評価されると、 PowerPivot 最初に一般的な構文がチェックされ、次に、現在のコンテキストで使用可能な列とテーブルに対して指定した列とテーブルの名前がチェックされます。 名前があいまいな場合、または列またはテーブルが見つからない場合は、数式 (エラーが発生したセルのデータ値ではなく #ERROR 文字列) でエラーが発生します。 テーブル、列、およびその他のオブジェクトの名前付け要件の詳細については、「 Power Pivot の DAX 構文仕様の名前付け要件」を参照してください。
注: コンテキストは、動的な数式を作成できる PowerPivot データ モデルの重要な機能です。 コンテキストは、データ モデル内のテーブル、テーブル間のリレーションシップ、および適用されたすべてのフィルターによって決定されます。 詳細については、「DAX の数式のコンテキスト」を参照してください。
テーブルリレーションシップ
テーブルは、他のテーブルと関連付けることができます。 リレーションシップを作成することで、別のテーブル内のデータを検索し、関連する値を使用して複雑な計算を実行できるようになります。 たとえば、計算列を使用して、現在のリセラーに関連するすべての出荷レコードを検索し、それぞれの送料を合計できます。 効果はパラメーター化されたクエリに似ています。現在のテーブル内の行ごとに異なる合計を計算できます。
多くの DAX 関数では、参照している列を見つけ、意味のある結果を返すために、テーブル間、または複数のテーブル間にリレーションシップが存在する必要があります。 他の関数はリレーションシップの識別を試みます。ただし、最良の結果を得るには、可能な限り常にリレーションシップを作成する必要があります。
ピボットテーブルを使用する場合は、サマリー データを正しく計算できるように、ピボットテーブルで使用されているすべてのテーブルを接続することが特に重要です。 詳細については、「ピボットテーブルでのリレーションシップの操作」を参照してください。
数式のエラーのトラブルシューティング
計算列を定義しているときにエラーが発生した場合、数式に構文エラーまたはセマンティック エラーが含まれている可能性があります。
一番簡単に解決できるのは構文エラーです。 多くの場合、かっこやカンマが抜けています。 個々の関数の構文に関するヘルプについては、「 DAX 関数リファレンス」を参照してください。
構文エラー以外のエラーは、構文は正しくても、値や参照されている列が、数式のコンテキストで意味をなしていないときに発生します。 このようなセマンティック エラーは、次のいずれかの問題によって発生する可能性があります。
-
数式が、存在しない列、テーブル、または関数を参照しています。
-
数式は正しいように見えますが、 PowerPivot がデータをフェッチすると、型の不一致が検出され、エラーが発生します。
-
数式から関数に、誤った数値または型のパラメーターが渡されています。
-
数式がエラーを含む別の列を参照しているため、その値が無効になっています。
-
数式は、処理されていない列を参照します。 これは、ブックを手動モードに変更し、変更を加えた後、データを更新したり、計算を更新したりしなかった場合に発生する可能性があります。
1 つめから 4 つめのケースでは、DAX により、列全体に無効な数式が含まれているというフラグが設定されます。 最後のケースでは、DAX はこの列を灰色で表示し、列が未処理の状態であることを示します。