テーブル モデルの計算列を使用すると、モデルに新しいデータを追加できます。 列に値を貼り付けたりインポートしたりする代わりに、列の行レベルの値を定義する DAX 数式を作成します。 計算列は、他の列と同様に、レポート、ピボットテーブル、またはピボットグラフで使用できます。
注
DirectQuery モードの表形式モデルでは、計算列はサポートされていません。 詳細については、「 DirectQuery モード (SSAS テーブル)」を参照してください。
このトピックのセクション:
メリット
計算列の数式は、Excel の数式とよく似ています。 ただし、Excel とは異なり、テーブル内の行ごとに異なる数式を作成することはできません。代わりに、DAX 数式が列全体に自動的に適用されます。
列に数式が含まれている場合、値は各行に対して計算されます。 有効な数式を入力すると、列の結果が計算されます。 その後、基になるデータが更新された場合など、列の値は必要に応じて再計算されます。
メジャーやその他の計算列に基づく計算列を作成できます。 たとえば、1 つの計算列を作成してテキストの文字列から数値を抽出し、その数値を別の計算列で使用できます。
計算列は、既存のテーブルに既に存在するデータ、または DAX 数式を使用して作成されたデータに基づいています。 たとえば、値の連結、追加の実行、部分文字列の抽出、または他のフィールドの値の比較を選択できます。 計算列を追加するには、モデルに少なくとも 1 つのテーブルが必要です。
この例では、計算列の単純な数式を示します。
=EOMONTH([StartDate],0])
この数式は、StartDate 列から月を抽出します。 次に、テーブル内の各行の月の終わりの値を計算します。 2 番目のパラメーターは、StartDate の月の前または後の月数を指定します。この場合、0 は同じ月を意味します。 たとえば、StartDate 列の値が 2001 年 6 月 1 日の場合、計算列の値は 2001 年 6 月 30 日になります。
計算列の名前付け
既定では、テーブル内の他の列の右側に新しい計算列が追加され、列には CalculatedColumn1、CalculatedColumn2 などの既定の名前 が自動的に割り当てられます。 列を右クリックし、[列の挿入] をクリックして、既存の 2 つの列の間に新しい列を作成することもできます。 同じテーブル内の列をクリックしてドラッグして並べ替えたり、作成後に列の名前を変更したりできます。ただし、計算列の変更に関する次の制限事項に注意する必要があります。
各列名は、テーブル内で一意である必要があります。
既に同じモデル内のメジャーで使用されている名前は使用しないでください。 メジャーと計算列に同じ名前を付けることもできますが、名前が一意でない場合は、計算エラーが発生する可能性があります。 誤ってメジャーを呼び出さないように、列を参照するときは常に完全に修飾された列参照を使用します。
計算列の名前を変更する場合は、列に依存する数式を手動で更新する必要があります。 手動更新モードでない限り、数式の結果の更新は自動的に行われます。 ただし、この操作には時間がかかる場合があります。
列の名前内で使用できない文字がいくつかあります。 詳細については、「 PowerPivot の DAX 構文仕様」の「名前付け要件」を参照してください。
計算列のパフォーマンス
計算された列の数式は、メジャーに使用される数式よりもリソースを多く消費することがあります。 1 つの理由は、計算列の結果は常にテーブルの各行に対して計算されるのに対し、メジャーはレポート、ピボットテーブル、またはピボットグラフで使用されるフィルターによって定義されたセルに対してのみ計算されるためです。 たとえば、100 万行のテーブルには、常に 100 万の結果を含む計算列があり、パフォーマンスに対応する影響があります。 ただし、ピボットテーブルでは通常、行見出しと列見出しを適用してデータをフィルター処理します。そのため、メジャーはピボットテーブルの各セルのデータのサブセットに対してのみ計算されます。
数式には、他の列や値を評価する式など、数式で参照されるオブジェクトへの依存関係があります。 たとえば、別の列に基づく計算列や、列参照を含む式を含む計算は、他の列が評価されるまで評価できません。 既定では、ブックの自動更新が有効になっているため、更新時や数式の再計算中に、これらの依存関係がパフォーマンスに影響を与える可能性があります。
計算列を作成するときにパフォーマンスの問題を回避するには、次のガイドラインに従います。
多くの複雑な依存関係を含む 1 つの数式を作成するのではなく、結果を列に保存して、結果を検証してパフォーマンスを評価できるように、手順で数式を作成します。
多くの場合、データを変更するには、計算列を再計算する必要があります。 これは、再計算モードを手動に設定することで回避できます。ただし、計算列の値が正しくない場合、データを更新して再計算するまで、列は淡色表示されます。
テーブル間のリレーションシップを変更または削除すると、それらのテーブルの列を使用する数式が無効になります。
循環依存関係または自己参照依存関係を含む数式を作成すると、エラーが発生します。
関連タスク
トピック | 説明 |
---|---|
計算列の作成 (SSAS テーブル) | このトピックのタスクでは、新しい計算列をテーブルに追加する方法について説明します。 |