PowerPivot の計算列

計算列を使うと、PowerPivot データ モデルのテーブルに新しいデータを追加できます。ただし、列に値を貼り付けたりインポートしたりするのではなく、列値を定義する Data Analysis Expressions (DAX) 式を作成します。たとえば、factSales テーブルの各行に販売利益の値を追加するとします。新しい計算列を追加して、式 =[SalesAmount]-[TotalCost]–[ReturnAmount] を使用すると、SalesAmount 列の各行の値から TotalCost 列と ReturnAmount 列の各行の値を減算して、目的の値が算出されます。Profit 列は、他のデータ列と同じように、ピボットテーブル、ピボットグラフ、または Power View レポートで使用できます。

PowerPivot での計算列

計算列

注: 計算列とメジャーは、どちらも数式に基づいている点で似ていますが、その使い方は異なります。メジャーは、多くの場合、ピボットテーブルやピボットグラフの [] 領域で使用されます。計算列は、ピボットテーブルの他の領域 (ピボットテーブルの列や行、またはピボットグラフの軸) に計算結果を配置するときに使用します。メジャーの詳細については「PowerPivot のメジャー」を参照してください。

計算列について

計算列の数式は、Excel で作成する数式とたいへんよく似ています。ただし、Excel とは異なり、テーブル内の異なる行に異なる数式を作成することはできません。代わりに列全体に自動的に DAX 数式が適用されます。

列に数式が含まれている場合は、各行について値が計算されます。数式を入力するとすぐに、その列に対する結果が計算されます。基になるデータが更新された場合など、列の値は必要に応じて再計算されます。

メジャーや別の計算列に基づいて、計算列を作成できます。たとえば、1 つの計算列を作成して文字列から数字を抽出し、その数字を別の計算列で使うことができます。

ページの先頭へ

計算列は、既存のテーブルに追加したデータを元にできます。 たとえば、値の連結、追加の実行、部分文字列の抽出、他のフィールドの値との比較などから選べます。 計算列を追加するには、少なくとも 1 つのテーブルが PowerPivot に追加されている必要があります。

次の式をご覧ください。

=EOMONTH([StartDate],0])

Contoso サンプル データを使用すると、この数式は Promotion テーブルの StartDate 列から月を抽出します。そして、Promotion テーブルの各行について月の最終日を計算します。2 番目のパラメーターは、StartDate の月より前または後の月数を指定します。この場合、0 は同じ月であることを表します。たとえば、StartDate 列の値が 6/1/2001 の場合、計算列の値は 6/30/2001 になります。

Contoso サンプル データの詳細については、「DAX およびデータ モデル チュートリアルのサンプル データの入手」を参照してください。

ページの先頭へ

計算列の名前付け

既定では、新しい計算列はその他の列の右側に追加され、CalculatedColumn1CalculatedColumn2 などの既定の名前が自動的に割り当てられます。計算列は、作成後に位置と名前を変更できます。ただし、計算列の名前の変更には、いくつかの制約事項があります。

  • それぞれの列名は、1 つのテーブル内で一意である必要があります。

  • 同じブック内のメジャーに使用されている名前は使わないでください。メジャーと計算列を同じ名前にすることはできますが、名前が一意でないと計算エラーが起きやすくなります。誤ってメジャーが呼び出されないようにするために、列を参照するときは常に完全修飾列参照を使ってください。

  • 計算列の名前を変更する場合、その列に依存する数式をすべて更新する必要があります。手動更新モードでない場合、数式の結果の更新は自動的に実行されます。ただし、この処理には時間がかかることがあります。

  • 列名をはじめ、PowerPivot の他のオブジェクトの名前には、使用できない文字もあります。詳しくは、「PowerPivot の DAX 構文の仕様」の「名前付けに関する要件」をご覧ください。

既存の計算列を名前変更または編集するには

  1. [PowerPivot] ウィンドウで、名前を変更する計算列の見出しを右クリックして、[列名の変更] をクリックします。

  2. 新しい名前を入力し、Enter キーを押して新しい名前を受け入れます。

ページの先頭へ

データ型の変更

計算列のデータ型は、非計算列のデータ型の場合と同じ方法で変更できます。テキスト型から 10 進型、整数型、通貨型、および日付型への変更はできません。テキスト型からブール型へは変更できます。

ページの先頭へ

計算列のパフォーマンス

計算列で使用される数式は、メジャーで使用される数式よりリソースを大量に消費する可能性があります。その理由の 1 つとして、計算列の結果が常にテーブルのすべての行を対象に計算されるのに対し、メジャーはピボットテーブルまたはピボットグラフに使用されているセルのみを対象として計算されることが挙げられます。

たとえば、テーブルに 100 万行含まれている場合、計算列には必ず 100 万個の結果が含まれるため、それだけパフォーマンスにも影響します。一方、ピボットテーブルでは、通常、行見出しおよび列見出しを適用してデータをフィルター処理します。したがって、メジャーは、ピボットテーブルの各セルに含まれているデータのサブセットのみを対象として計算されます。

数式は、値を評価する他の列や式など、数式で参照されるオブジェクトに依存しています。たとえば、別の列に基づいている計算列、つまり列参照を使用する式を含む計算は、その別の列が評価されるまで評価することができません。既定では、自動更新が有効になっています。したがって、値の更新時や数式の更新時にこうした依存関係すべてがパフォーマンスに影響する可能性があります。

計算列を作成するときにパフォーマンス上の問題を回避するには、次のガイドラインに従ってください。

  • 複雑な依存性を多く含む 1 つの数式を作成するのではなく、結果を列に保存しながら段階的に計算を行う複数の数式を作成することで、結果を検証し、パフォーマンスを評価できるようにします。

  • データを変更すると、多くの場合は計算列を再計算する必要があります。再計算が実行されないようにするには、再計算モードを手動に設定します。ただし、計算列の値が正しくない場合、データを更新して再計算するまで、その列はグレー表示されます。

  • テーブル間のリレーションシップを変更または削除すると、そのテーブル内の列を使用する数式が無効になります。

  • 循環依存や自己参照依存を含む数式を作成した場合、エラーが発生します。

タスク

次の各記事では、計算列の使用に関する追加情報について説明しています。

計算列を作成する

ページの先頭へ

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×