PowerPivot の計算列

適用先
Excel for Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

集計列を使用すると、PowerPivot データ モデルのテーブルに新しいデータを追加できます。 列に値を貼り付けたりインポートしたりする代わりに、列の値を定義する データ分析式 (DAX) 数式を作成します。

たとえば、 factSales テーブルの各行に売上利益の値を追加する必要がある場合。 新しい集計列を追加し、数式 =[SalesAmount]-[TotalCost]–[ReturnAmount] を使用することにより、[売上高] 列の各行から [合計コスト] 列と [返品金額] 列の値を減算し、新しい値が計算されます。 これで、[利益] 列は、他の列と同様に、ピボットテーブル、ピボットグラフ、または Power View レポートで使用できます。

この図は、Power Pivot の集計列を示しています。

集計列

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

計算列について

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

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

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

使用例

既存のテーブルに追加するデータを含む集計列をサポートできます。 たとえば、値の連結、追加の実行、部分文字列の抽出、他のフィールドの値との比較などから選べます。 集計列を追加するには、Power Pivot に少なくとも 1 つのテーブルが既にある必要があります。

次の式を見てください。

=EOMONTH([StartDate],0])

Contoso のサンプル データを使用して、この数式は Promotion テーブルの StartDate 列から月を抽出します。 次に、プロモーション テーブルの各行の月末値が計算されます。 2 番目のパラメーターは、StartDate の月の前後の月数を指定します。この場合、0 は同じ月を意味します。 たとえば、"開始日" 列の値が 2001/6/1 の場合、集計列の値は 2001/6/30 になります。

計算列の名前付け

既定では、新しい集計列は他の列の右側に追加され、その列には CalculatedColumn1CalculatedColumn2 などの既定の名前が自動的に割り当てられます。 列を作成した後、必要に応じて列の配置や名前を変更できます。

集計列の変更にはいくつかの制限があります。

  • それぞれの列名は、1 つのテーブル内で一意である必要があります。
  • 同じブック内のメジャーに使用されている名前は使わないでください。 メジャーと計算列を同じ名前にすることはできますが、名前が一意でないと計算エラーが起きやすくなります。 誤ってメジャーを呼び出さないように、列を参照するときは必ず完全修飾列参照を使用してください。
  • 集計列の名前を変更するときは、既存の列に依存する数式も更新する必要があります。 手動更新モードでない限り、数式の結果は自動的に更新されます。 ただし、この処理には時間がかかることがあります。
  • 列の名前や Power Pivot の他のオブジェクトの名前では使用できない文字がいくつかあります。 詳しくは、「PowerPivot の DAX 構文の仕様」の「名前付けに関する要件」をご覧ください。
既存の集計列の名前を変更または編集するには:
  1. [Power Pivot] ウィンドウで、名前を変更する集計列の見出しを右クリックし、[列名の変更] をクリックします。
  2. 新しい名前を入力し、Enter キーを押して新しい名前を受け入れます。

データ型の変更

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

計算列のパフォーマンス

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

たとえば、100 万行のテーブルには 100 万行の結果とそれに対応するパフォーマンスへの影響が常にある集計列があります。 ただし、ピボットテーブルでは通常、行見出しと列見出しを適用してデータをフィルター処理します。 つまり、ピボットテーブルの各セルのデータのサブセットについてのみメジャーが計算されます。

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

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

  • 多くの複雑な依存関係を含む 1 つの数式を作成するのではなく、結果を列に保存して数式を段階的に作成することで、結果を検証し、パフォーマンスの変化を評価することができます。
  • 多くの場合、データを変更すると、集計列が更新されます。 これを回避するには、再計算モードを手動に設定します。 ただし、計算列の値に誤りがある場合は、データを更新して再計算するまでその列は無効になるので注意してください。
  • テーブル間のリレーションシップを変更または削除すると、そのテーブル内の列を使用する数式が無効になります。
  • 循環依存や自己参照依存を含む数式を作成した場合、エラーが発生します。

タスク

集計列の操作の詳細については、「 集計列の作成」を参照してください。