Excel-dax-calculated-columns

提供:Dev Guides
移動先:案内検索

Excel DAX-計算列

  • 計算列*は、列値を定義するDAX式を使用して、ワークブックのデータモデルの既存のテーブルに追加する列です。 列の値をインポートする代わりに、計算列を作成します。

他のテーブル列と同様に、ピボットテーブル、ピボットグラフ、パワーピボットテーブル、パワーピボットグラフ、またはパワービューレポートで計算列を使用できます。

計算列について

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

たとえば、1つの計算列を作成して、既存の列から年を抽出することができます-日付、DAXの式で-

= YEAR ([Date])

YEARはDAX関数であり、Dateはテーブル内の既存の列です。 ご覧のように、テーブル名は括弧で囲まれています。 これについては、この章で詳しく説明します– link:/excel_dax/excel_dax_syntax [DAX構文]。

このDAX数式を使用してテーブルに列を追加すると、数式を作成するとすぐに列の値が計算されます。 年の値で満たされたヘッダーCalculatedColumn1を持つ新しい列が作成されます。

列の値は、基になるデータが更新されるときなど、必要に応じて再計算されます。 既存の列、計算フィールド(メジャー)、およびその他の計算列に基づいて計算列を作成できます。

計算列の作成

次のスクリーンショットに示すように、オリンピック結果のデータモデルを検討してください。

計算列の作成

  • データビューをクリックします。
  • [結果]タブをクリックします。

結果テーブルが表示されます。

結果テーブルの表示

上のスクリーンショットに見られるように、右端の列にはヘッダーがあります-列の追加。

  • リボンの[デザイン]タブをクリックします。
  • [列]グループの[追加]をクリックします。

列の追加

ポインターが数式バーに表示されます。 つまり、DAX数式を含む列を追加していることになります。

  • 数式バーに「= YEAR([日付])」と入力します。

フォーミュラバーのポインター

上記のスクリーンショットに見られるように、ヘッダーのある右端の列–列の追加が強調表示されています。

  • Enterを押します。

計算が完了するまでに少し(数秒)かかります。 お待ちください。

新しい計算列は、右端の[列の追加]の左側に挿入されます。

挿入された計算列

上記のスクリーンショットに示すように、新しく挿入された計算列が強調表示されます。 列全体の値は、使用されているDAX式に従って表示されます。 列ヘッダーはCalculatedColumn1です。

計算列の名前を変更する

計算列の名前を意味のある名前に変更するには、次のようにします-

  • 列ヘッダーをダブルクリックします。 列名が強調表示されます。

計算列の名前変更

  • 列名を選択します。
  • 年(新しい名前)と入力します。

列名とタイプ年を選択

上記のスクリーンショットに見られるように、計算列の名前が変更されました。

列を右クリックしてドロップダウンリストの[名前の変更]をクリックすることにより、計算列の名前を変更することもできます。

新しい名前がテーブル内の既存の名前と競合しないことを確認してください。

計算列のデータ型の確認

次のように計算列のデータ型を確認できます-

  • リボンの[ホーム]タブをクリックします。
  • データ型をクリックします。

データ型の確認

上記のスクリーンショットを見るとわかるように、ドロップダウンリストには列に使用できるデータ型があります。 この例では、デフォルト(自動)データ型、つまり 整数が選択されます。

計算列のエラー

エラーは、次の理由で計算列で発生する可能性があります-

  • テーブル間の関係の変更または削除。 これは、これらのテーブルの列を使用する数式が無効になるためです。
  • 式には、循環または自己参照の依存関係が含まれています。

パフォーマンスの問題

前にオリンピックの結果の例で見たように、結果テーブルには約35000行のデータがあります。 したがって、DAX数式を使用して列を作成すると、すべての35000+列の値を一度に取得しますが、少し時間がかかりました。 データモデルとテーブルは、数百万行のデータを処理するためのものです。 したがって、DAX数式の参照が多すぎる場合、パフォーマンスに影響する可能性があります。 次のことを行うことでパフォーマンスの問題を回避できます-

  • DAX数式に多くの複雑な依存関係が含まれている場合、一度に1つの大きな数式を作成するのではなく、新しい計算列に結果を保存する手順で作成します。 これにより、結果を検証し、パフォーマンスを評価できます。
  • データの変更が発生した場合、計算列を再計算する必要があります。 再計算モードを手動に設定して、頻繁な再計算を節約できます。 ただし、計算列の値が正しくない場合、データを更新して再計算するまで、列はグレー表示されます。