Power Pivot における DAX シナリオ

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

ここでは、次のシナリオで DAX の数式を使用する例へのリンクを示します。

  • 複雑な計算の実行

  • テキストと日付の操作

  • 条件値とエラーのテスト

  • タイム インテリジェンスの使用

  • 値の順位付けと比較

この記事の内容

作業の開始

サンプル データ

その他のリソース

シナリオ: 複雑な計算の実行

ピボットテーブルにカスタム計算を作成する

式にフィルターを適用する

フィルターを選択的に削除して動的な比率を作成する

外部ループからの値を使用する

シナリオ: テキストと日付の操作

連結によってキー列を作成する

テキストの日付から抽出した日付要素を基に日付を構成する

カスタムの日付または数値書式を定義する

式を使用してデータ型を変更する

シナリオ: 条件値とエラーのテスト

条件に基づいた値を作成する

式内のエラーをテストする

シナリオ: タイム インテリジェンスの使用

累計売上を計算する

値を時系列で比較する

カスタムの日付範囲の値を計算する

シナリオ: 値の順位付けと比較

ピボットテーブルで上位 10 個のアイテムだけを表示する

式を使用してアイテムの順序を動的に変更する

作業の開始

サンプル データ

DAX の数式を初めて使用する場合は、まず PowerPivot 向けのサンプル データの例を確認することをお勧めします。詳しくは、「DAX およびデータ モデル チュートリアルのサンプル データの入手」をご覧ください。

その他のリソース

DAX リソース センター Wikiのあらゆる種類のブログ、サンプル、ホワイト ペーパー、先頭の専門家と Microsoft から提供されたビデオを含む DAX についての情報を入手できる場所にアクセスすることもできます。

シナリオ: 複雑な計算の実行

DAX の数式を使用すると、カスタム集計、フィルター処理、条件値の使用などを伴う複雑な計算を行うことができます。ここでは、カスタム計算を使用する方法の例を紹介します。

ピボットテーブルにカスタム計算を作成する

CALCULATE および CALCULATETABLE は、計算フィールドを定義するための強力で柔軟な関数です。これらの関数を使用して、計算が実行されるコンテキストを変更できます。集計の種類または実行する数学的演算をカスタマイズすることもできます。例については、次のトピックを参照してください。

式にフィルターを適用する

DAX 関数が引数としてテーブルを受け取るほとんどの場合、テーブル名の代わりに FILTER 関数を使用するか、関数の引数の 1 つとしてフィルター式を指定することによって、テーブルではなくフィルター選択されたテーブルを渡すことができます。次のトピックでは、フィルターの作成方法とフィルターが式の結果に及ぼす影響の例を紹介します。詳しくは、「DAX の数式内でのデータのフィルター処理」をご覧ください。

FILTER 関数では、式を使用してフィルターの条件を指定できます。その他の関数は、空白値の除外専用に設計されています。

フィルターを選択的に削除して動的な比率を作成する

式内に動的フィルターを作成することによって、次のような質問に簡単に答えることができます。

  • 現在の製品の売上が年間の合計売上に占める割合は?

  • 他の部門と比較して、この部門が全営業年度の総利益に占める割合は?

ピボット テーブルで使用する数式は、ピボット テーブルのコンテキストの影響を受けることができますが、選択的を追加または削除フィルター コンテキストを変更することができます。すべてのトピックの例では、これを行う方法を示します。特定の販売店の売り上げ高の比率を検索すべて再販業者販売の上にするには、すべてのコンテキストの値で除算の現在のコンテキストの値を計算メジャーを作成します。

ALLEXCEPT のトピックでは、式のフィルターを選択的にクリアする方法の例を紹介します。どちらの例でも、ピボットテーブルの設計方法によって結果がどのように変化するかを紹介します。

比率とパーセンテージを計算する方法の他の例については、次のトピックを参照してください。

外部ループからの値を使用する

DAX では、計算に現在のコンテキストからの値を使用するだけでなく、一連の関連する計算の作成に以前のループからの値も使用できます。次のトピックでは、外部ループからの値を参照する式の作成方法を紹介します。EARLIER 関数では、最大 2 レベルの入れ子になったループがサポートされています。

行のコンテキストと関連テーブルの詳細、および数式内でこの概念を使用する方法について詳しくは、「DAX の数式のコンテキスト」をご覧ください。

シナリオ: テキストと日付の操作

ここでは、テキストの操作、日付と時刻の値の抽出および構成、条件に基づいた値の作成などの一般的なシナリオの例を紹介した DAX の参照トピックへのリンクを示します。

連結によってキー列を作成する

PowerPivot では、複合キーを使用できません。このため、使用するデータ ソースに複合キーが含まれている場合は、単一のキー列に結合する必要があります。次のトピックでは、複合キーを基に計算列を作成する方法の一例を紹介します。

テキストの日付から抽出した日付要素を基に日付を構成する

PowerPivot では、日付の操作に SQL Server の日付/時刻データ型が使われます。このため、使用する外部データに異なる形式の日付が含まれている場合 (たとえば、PowerPivot データ エンジンで認識されない地域別日付形式で書かれた日付が使用されている場合、またはデータに整数の代理キーが使用されている場合)、DAX の数式を使用して日付要素を抽出し、その上でその要素から有効な日付時刻表現を構成することが必要になる場合があります。

たとえば、元は整数として表されていた日付の列をテキスト文字列としてインポートした場合、次の式を使うことによってその文字列を日付/時刻値に変換できます。

=DATE(RIGHT([Value1],4),LEFT([Value1],2),MID([Value1],2))

値 1

結果

01032009

1/3/2009

12132008

12/13/2008

06252007

6/25/2007

次のトピックでは、日付の抽出と構成に使用する関数についてより詳しく説明します。

カスタムの日付または数値書式を定義する

使用するデータに Windows の標準のテキスト書式で表されていない日付または数値が含まれている場合は、値が正しく処理されるようにカスタム書式を定義することができます。これらの書式は、値を文字列に変換したり、その逆の変換を行うときに使用します。次のトピックでも、日付と数値の操作に使用できる定義済み書式について詳しく紹介します。

式を使用してデータ型を変更する

PowerPivot では、出力のデータ型はソース列によって決定し、結果のデータ型を明示的に指定することはできません。PowerPivot によって最適なデータ型が自動的に決定されます。ただし、PowerPivot によって実行される暗黙的なデータ型変換を使用して、出力のデータ型を操作できます。型変換については、「DAX およびデータ モデル チュートリアルのサンプル データの入手」をご覧ください。

  • 日付または数値を表す文字列を数値に変換するには、1.0 を乗算します。たとえば、次の式によって、現在の日付から 3 日引かれてから、対応する整数値が出力されます。

    = (TODAY()-3) * 1.0

  • 日付、数値、または通貨の値を文字列に変換するには、その値を空の文字列に連結します。たとえば、次の式は、今日の日付を文字列として返します。

    =""& TODAY()

次の関数を使用しても、特定のデータ型が返されるようにすることができます。

実数を整数に変換する

シナリオ: 条件値とエラーのテスト

DAX では、excel を使用すると、データの値をテストし、別の条件に基づいて値を返します関数があります。たとえば、年の年間の売り上げ高によってリセラー優先またはのいずれかのラベルを付ける計算列を作成できませんでした。値をテストする関数も範囲またはデータが予期しないエラーが計算の分割されないようにするための値の種類を確認するのに便利です。

条件に基づいた値を作成する

条件に基づいた値のテストや新しい値の生成に、入れ子になった IF 条件を使用できます。次のトピックでは、条件処理および条件値の簡単な例をいくつか紹介します。

式内のエラーをテストする

Excel と異なり、計算列の行によって有効な値と無効な値を持つことはできません。つまり、PowerPivot 列のどこかにエラーがある場合、列全体にエラーのフラグが設定されるので、結果が無効な値になる式のエラーは常に修正する必要があります。

たとえば、ゼロで割る式を作成すると、結果が無限、つまりエラーになります。また、式によっては、数値を想定した値が空白の場合に失敗します。データ モデルの開発中は、メッセージをクリックして問題に対処できるように、エラーを表示すると便利です。ただし、ブックをパブリッシュするときは、エラー処理を組み込んで、予期しない値によって計算が失敗しないようにする必要があります。

計算列のエラーが返されないようにするには、論理関数と情報関数を組み合わせて使用して、エラーをテストして常に有効な値が返されるようにします。次のトピックでは、DAX でこれを実現する簡単な例を紹介します。

シナリオ: タイム インテリジェンスの使用

DAX タイム インテリジェンス関数には、データから日付または日付範囲を取得するのに役立つ関数が含まれています。取得した日付または日付範囲を使用して、同種の複数期間に関する値を計算できます。タイム インテリジェンス関数には、標準の日付間隔を扱う関数も用意されていて、月、年、四半期の値を比較できます。また、指定した期間の最初と最後の日付の値を比較する式を作成することもできます。

すべてのタイム インテリジェンス関数の一覧については、「タイム インテリジェンス関数 (DAX)」をご覧ください。PowerPivot の分析で日付と日時を効率的に使用する方法のヒントについては、「Power Pivot で使用する日付」をご覧ください。

累計売上を計算する

次のトピックでは、決算残高と期首残高を計算する方法の例を紹介します。この例によって、日、月、四半期、年などのさまざまな間隔で当座残高を作成できます。

値を時系列で比較する

次のトピックでは、さまざまな期間の総計を比較する方法の例を紹介します。DAX でサポートされている既定の期間は、月、四半期、および年です。

カスタムの日付範囲の値を計算する

セールス プロモーションの開始後 15 日間など、カスタムの日付範囲を取得する方法の例については、次のトピックを参照してください。

タイム インテリジェンス関数を使用して日付のカスタム セットを取得する場合は、計算を実行する関数への入力値としてその日付セットを使用して、期間のカスタム集計を作成できます。これを行う方法の例については、次のトピックを参照してください。

  • PARALLELPERIOD 関数

    注: カスタムの日付範囲を指定する必要はなく、月、四半期、年など標準の事業単位を使用して作業している場合は、この目的のために設計された TOTALQTD、TOTALMTD、TOTALQTD などのタイム インテリジェンス関数を使用して計算を行うことをお勧めします。

シナリオ: 値の順位付けと比較

列またはピボットテーブルで上位から任意の数のアイテムだけを表示するには、いくつかの方法があります。

  • Excel 2010 の機能を使用して、上位フィルターを作成できます。または、ピボットテーブルで上位または下位から複数の値を選べます。このセクションの前半では、ピボットテーブルでフィルター処理を行って上位 10 個のアイテムを表示する方法について説明します。詳細については Excel のドキュメントを参照してください。

  • 値の順位付けを動的に行う式を作成してから、順位値によってフィルター処理を行うか、または順位値をスライサーとして使用することができます。後半では、この式を作成してからその順位付けをスライサーで使用する方法について説明します。

どちらの方法にも利点と欠点があります。

  • Excel の上位フィルターは簡単に使用できますが、このフィルターは表示目的だけのためにあります。ピボットテーブルの基になるデータが変更された場合は、変更を反映するため、手動でピボットテーブルを更新する必要があります。順位付けを動的に使用する必要がある場合は、DAX を使用して、列内の値を比較する数式を作成できます。

  • DAX の数式はより強力で、スライサーに順位値を追加することによって、スライサー上をクリックするだけで表示する上位の値の数を変更できます。ただし、この計算は計算コストが高いので、行が多数あるテーブルには適さない可能性があります。

ピボットテーブルで上位 10 個のアイテムだけを表示する

ピボットテーブルで上位または下位の値を表示するには

  1. ピボットテーブルで、[行ラベル] 見出しの下矢印をクリックします。

  2. [値フィルター][トップテン] をクリックします。

  3. トップテン フィルター < 列名 > ] ダイアログ ボックスで、次のように、順位付けと値の数の列を選択します。

    1. 最高値のセルを表示するには [上位] を選び、最低値のセルを表示するには [下位] を選びます。

    2. 表示する上位または下位の値の数を入力します。既定値は 10 です。

    3. 値の表示方法を選びます。

名前

説明

[アイテム]

ピボットテーブルをフィルター処理して、値が上位または下位のアイテムのみを含む一覧を表示します。

[パーセント]

ピボットテーブルをフィルター処理して、合計が指定したパーセンテージになるまでアイテムを表示します。

[合計]

上位または下位のアイテムの値の合計を表示します。

  1. 順位付けする値が格納されている列を選びます。

  2. [OK] をクリックします。

式を使用してアイテムの順序を動的に変更する

次のトピックでは、DAX を使用して順位付けを作成し計算列に格納する方法の例を紹介します。DAX 数式は動的に計算されるため、基になるデータが変更された場合でも、常に正しい順位が返されます。また、式は計算列内で使用されるため、順位付けをスライサーで使用して、上位 5 件、上位 10 件、さらに上位 100 件の値を選べます。

注: 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

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

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

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

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

×