Applies ToExcel for Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

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

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

この図は、 PowerPivotの計算列を示しています。

計算列

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

計算列について

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

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

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

使用例

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

次の数式を見てみましょう。

=EOMONTH([StartDate],0])

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

計算列の名前付け

既定では、新しい計算列が他の列の右側に追加され、列には CalculatedColumn1、CalculatedColumn2 などの既定の名前が自動的 割り当てられます。 列を作成した後、必要に応じて列の並べ替えと名前変更を行うことができます。

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

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

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

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

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

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

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

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

データ型の変更

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

計算列のパフォーマンス

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

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

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

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

  • 多くの複雑な依存関係を含む 1 つの数式を作成するのではなく、結果を列に保存して手順で数式を作成し、結果を検証してパフォーマンスの変化を評価できるようにします。

  • データを変更すると、多くの場合、計算列が更新されます。 再計算モードを手動に設定すると、この問題を回避できます。 ただし、計算列の値が正しくない場合、データを更新して再計算するまで列は無効になります。

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

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

タスク

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

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。