クイック スタート: 30 分で学ぶ DAX の基礎

このクイック スタートは、Excel の PowerPivot または SQL Server Data Tools によって作成されたテーブル モデル プロジェクトを初めて使うユーザー向けに用意されています。 このクイック スタートは、Data Analysis Expressions (DAX) を使っていくつかの基本的なデータ モデリングと分析に関する問題を解決する方法をわかりやすく手短に説明することを目的としています。 このトピックには、概念情報、一連の演習タスク、および学習内容を確認するためのいくつかの問題が含まれています。 このトピックを完了すると、DAX の最も基本的な概念を理解したことになります。

DAX とは

DAX は、計算を実行して 1 つ以上の値を返すために数式 (式) 内で使用できる関数、演算子、および定数のコレクションです。 つまり、DAX を使用すると、モデル内に既にあるデータから新しい情報を作成できます。

DAX が重要な理由

ブックを作成し、その中にデータをインポートするのは簡単です。 DAX 数式を使用しなくても、重要な情報を表示するピボットテーブルやピボットグラフを作成することができます。 しかし、日付範囲が異なる複数の製品カテゴリにわたって重要な販売データを分析する必要がある場合はどうしたらよいでしょうか。 また、複数のデータ ソースの複数のテーブルから重要な在庫データを結合する必要がある場合はどうしたらよいでしょうか。 DAX の数式は、こうした機能に加え、数多くの重要な機能を提供します。 効果的な DAX 数式の作成方法を学習することで、データを有効に活用できます。 必要な情報を入手したら、最終的な収益に影響を与える実際のビジネス上の問題を解決する作業に着手できます。 これがビジネス インテリジェンスであり、DAX がこれを使うための手助けとなります。

前提条件

Microsoft Excel では、数式の作成について既に理解している場合があります。 この知識は DAX の理解に役立ちますが、Excel の数式を使用していない場合でも、ここで説明する概念は、DAX の数式を作成して、現実の BI の問題を即座に解決するのに役立ちます。

ここでは、計算で使用される DAX 数式の理解に重点を置いています。 計算列メジャー (計算フィールドとも呼ばれます) の基本的な概念については、 PowerPivot のヘルプで説明されています。 また、Excel のオーサリング環境とツールの PowerPivot についても理解している必要があります。

サンプル ブック

DAX を学習するにあたって最善の方法は、基本的な数式を作成し、実際のデータを使い、自分で結果を確認することです。 ここで使う例およびタスクでは、Contoso Sample DAX Formulas.xlsx ブックを使います。 このブックは、http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409 からダウンロードできます。 コンピューターにダウンロードしたブックを開き、PowerPivot ウィンドウを開きます。

作業の開始

ここでは、DAX の構文、関数、およびコンテキストの 3 つの重要かつ基本的な概念について説明します。 DAX にはこれ以外にも重要な概念がありますが、この 3 つの概念を理解することが DAX のスキルを得るための最適な基盤となります。

構文

数式を作成する前に、DAX の数式の構文を見てみましょう。 構文には、数式を構成するさまざまな要素、つまり記述方法が含まれています。 例として、FactSales テーブル内の計算列 (Margin 列) の各行の新しいデータ (値) を作成するための単純な DAX 式を見てみましょう (わかりやすくするために数式の文字に色を付けてあります)。

計算列の数式

この数式の構文には、次の要素が含まれています。

  1. 等号演算子 (=) は、数式の開始を示し、この数式が計算されると、結果または値を返します。 値を計算するすべての数式は、等号 (=) で始まります。

  2. 参照されている列 [SalesAmount] には、減算する値が含まれています。 数式内の列参照は、常に角かっこ [] で囲みます。 セルが参照される Excel の数式とは異なり、DAX の数式では常に列が参照されます。

  3. 減算 (-) 数学演算子。

  4. 参照されている列 [TotalCost] には、[SalesAmount] 列の値から減算する値が含まれています。

DAX 数式の読み方を理解するにあたり、それぞれの要素を分解し、日常で使用している言語で読み替えると効果的です。 たとえば、この数式は次のように読むことができます。

FactSales テーブルの Margin 計算列の各行について、[TotalCost] 列の値を [salesamount] 列の値から減算 (-) して値を計算します (=)。

次に、メジャーで使用される別の種類の数式を見てみましょう。

計算列の数式

この数式には、次の構文要素が含まれています。

  1. メジャー名売上金額の合計。 メジャーの数式には、メジャー名の後にコロンを付けると共に、計算式を指定できます。

  2. 等号演算子 (=) は、計算式の開始を示します。 式が計算されると、結果が返されます。

  3. SUM 関数は、[SalesAmount] 列のすべての数値を合計します。 関数については、後で説明します。

  4. 1 つまたは複数の引数を囲むかっこ ()。 すべての関数で少なくとも 1 個の引数が必要です。 引数は、値を関数に渡します。

  5. 参照される FactSales テーブル。

  6. FactSales テーブル内の参照される [SalesAmount] 列。 この引数により、SUM 関数は合計する列を識別します。

この数式は次のように読むことができます。

売上金額の合計という名前メジャーについては、 FactSalesテーブルの [salesamount] 列の値の合計を計算します (=)。

[ピボットテーブルのフィールドリスト] の [値] ドロップエリアに配置されると、このメジャーは、米国の携帯電話などのピボットテーブルの各セルで定義された値を計算して返します。

この数式と Margin 計算列に使用された数式とを比較するといくつかの点が異なります。 特に、この数式には SUM 関数が使用されています。 関数は事前に作成された数式で、複雑な計算や数値、日付、時間、文字列などの操作を行う場合に便利です。 関数については、後で説明します。

上記の Margin 計算列とは異なり、[SalesAmount] 列の前に、列が属している FactSales テーブルが記述されています。 これは、列名の前にテーブル名が記述されていることから、完全修飾列名と呼ばれます。 同じテーブル内で参照される列の場合は、数式にテーブル名を含める必要はありません。 これにより、多数の列が参照されている長い数式がより短く読みやすくなります。 ただし、同じテーブルに含まれている場合でも、メジャーの数式に常にテーブル名を含めることをお勧めします。

注: テーブルの名前に空白や予約されたキーワード、または無効な文字が含まれる場合、テーブル名を単一引用符で囲む必要があります。 使用しているロケールで文字セットがサポートされているかどうかに関係なく、名前に ANSI 英数文字の範囲にない文字が含まれている場合も、テーブル名を引用符で囲む必要があります。

数式を正しい構文で指定することは重要です。 ほとんどの場合、構文が正しくないと、構文エラーが返されます。 また、構文が正しい場合でも、返される値が期待した値と異なる場合があります。 PowerPivot (および SQL Server Data Tools) には、ユーザーが適切な要素を選ぶのをサポートして構文的に正しい数式を作成するための IntelliSense 機能が用意されています。

それでは単純な数式を作成しましょう。 このタスクでは、数式の構文を理解し、数式バーの IntelliSense 機能がいかに便利であるかを体験します。

タスク: 計算列のための単純な数式を作成する

  1. [ PowerPivot ] ウィンドウが表示されていない場合は、Excel の [ PowerPivot ] リボンで [ PowerPivotウィンドウ] をクリックします。

  2. PowerPivot ウィンドウで、FactSales テーブル (tab) をクリックします。

  3. 右端までスクロールし、列ヘッダーの [列の追加] をクリックします。

  4. モデル デザイナー ウィンドウの上部にある数式バー内をクリックします。

    Power Pivot 数式バー

    カーソルが数式バーに表示されます。 数式バーは、計算列や計算フィールドの数式を入力できる場所です。

    ここで、数式バーの左側にある 3 つのボタンについて説明します。

    数式バー

    数式バー内でカーソルがアクティブになると、これらの 3 つのボタンがアクティブになります。 左端のボタン (X) は、キャンセル ボタンです。 実際にクリックしてみましょう。 カーソルが数式バーから消え、キャンセル ボタンとチェックマーク ボタンも表示されなくなります。 もう一度数式バー内をクリックします。 キャンセル ボタンとチェックマーク ボタンが再び表示されます。 これは、新しい数式の入力を開始する準備ができたことを示します。

    チェックマーク ボタンは、式の確認用のボタンです。 数式を入力するまでは意味を持ちません。 これについては、後で説明します。

    [Fx] をクリックします。 新しい [関数の挿入] ダイアログ ボックスが表示されます。 [関数の挿入] ダイアログ ボックスは、DAX 数式の入力に慣れるのに最も簡単な方法です。 メジャーを後で作成するときに、数式に関数を追加しますが、現時点では、集計列の数式に関数を追加する必要はありません。 先へ進み、[関数の挿入] ダイアログ ボックスを閉じます。

  5. 数式バーで、等号 = に続けて左角かっこ [ を入力します。 FactSales テーブルのすべての列が含まれた小さなウィンドウが表示されます。 これが、IntelliSense の機能です。

    計算列は常に作業中のアクティブ テーブルに作成されるため、列名の前にテーブル名を記述する必要はありません。 先へ進み、下へスクロールしたら、[SalesQuantity] をダブルクリックします。 任意の列名までスクロールした後 Tab キーを押す方法もあります。

    カーソルが [SalesQuantity] の右側でアクティブになります。

  6. スペースを入力し、減算演算子 (-) を入力したら、もう一度スペースを入力します。

  7. もう一度左角かっこ [ を入力します。 [ReturnQuantity] 列を選び、Enter キーを押します。

    エラーが発生する場合は、構文が正しいことを確認してください。 必要に応じて、前に説明した Margin 計算列の数式と比較します。

    Enter キーを押して数式を完成させると、PowerPivot ウィンドウの下部のステータス バーに "計算しています" と表示されます。 300 万行を超える新しい値を計算するときでも、この処理はすぐに完了します。

  8. 列ヘッダーを右クリックし、列の名前を NetSales に変更します。

これで完成です。 単純でありながら強力な DAX 数式を作成できました。 NetSales 数式により、FactSales テーブルのそれぞれの行について、[ReturnQuantity] 列の値を [SalesQuantity] 列の値から減算した値が計算されます。 ここで、"それぞれの行について" という表現に注目してください。 これは、DAX におけるもう 1 つの重要な概念である行コンテキストに関係します。 行コンテキストについては、後で説明します。

DAX 数式に演算子を入力するときは、使用している引数のデータ型を理解することが重要です。 たとえば、「= 1 & 2」という数式を入力した場合に返される値は、文字列値の "12" です。 これは、アンパサンド (&) 演算子が文字列を連結するための演算子であるためです。 DAX によるこの数式の解釈は、"値 1 を文字列として受け取り、値 2 を文字列として追加した結果を計算する" となります。 また、「= 1 + 2」と入力した場合、この数式は、"数値 1 を受け取り、数値 2 を加算した結果を計算する" と解釈されます。 結果は、数値の "3" になります。 DAX では、引数で使用されている列のデータ型ではなく、数式内の演算子に応じて結果の値を計算します。 DAX のデータ型は重要ですが、このクイック スタートの範囲外です。 DAX 数式のデータ型と演算子の詳細については、オンライン ブックの「Data Analysis Expressions (DAX) リファレンス」(http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) を参照してください。

例をもう 1 つ試してみましょう。 今回は、数式を入力して IntelliSense を使用して、メジャーを作成します。 数式を完全に理解できなくても心配する必要はありません。 ここで重要なのは、複数の要素を正しい構文で使用して数式を作成する方法を理解することにあります。

タスク: measure 式を作成する

  1. FactSales テーブルで、計算領域の任意の空白セルをクリックします。 これは、PowerPivot ウィンドウのテーブルの下の空白セルの領域です。

PowerPivot 計算領域

  1. 数式バーに、「Previous Quarter Sales:」という名前を入力します。

  2. 計算式を開始する等号 (=) を入力します。

  3. 最初の数文字として「CAL」を入力し、使用する関数をダブルクリックします。 この数式では、CALCULATE 関数を使用します。

  4. CALCULATE 関数に渡す引数を開始する左かっこ ( を入力します。

    左かっこを入力すると、IntelliSense により、CALCULATE 関数に必要な引数が表示されます。 引数については後で説明します。

  5. FactSalesテーブルの最初の数文字を入力して、ドロップダウンリストでFactSales[Sales]をダブルクリックします。

  6. コンマ (,) を入力して最初のフィルターを指定します。次に、「PRE」と入力し、PREVIOUSQUARTER 関数をダブルクリックします。

    PREVIOUSQUARTER 関数を選ぶと、左かっこがもう 1 つ表示されます。これは、PREVIOUSQUARTER 関数用に別の引数が必要であることを示しています。

  7. 最初の数文字として「Dim」を入力し、DimDate[DateKey] をダブルクリックします。

  8. 2 つの右かっこ )) を入力して、PREVIOUSQUARTER 関数と CALCULATE 関数に渡される 2 つの引数を閉じます。

    数式は次のようになります。

    Previous Quarter Sales:=CALCULATE(FactSales[Sales], PREVIOUSQUARTER(DimDate[DateKey]))

  9. 数式バーの式の確認用のボタンをクリックして、数式を検証します。 エラーが発生する場合は、構文の各要素を確認します。

これで完成です。 DAX を使ってメジャーを作成したばかりですが、これでは簡単ではありません。 この数式には、ピボットテーブルまたはピボットグラフに適用されるフィルターに応じて前の四半期の売上合計を計算することが指定されています。

ここでは、DAX 数式のいくつかの重要な側面が示されました。 最初に、この数式には、2 つの関数が含まれています。 注この QUARTER 関数は、 CALCULATE関数に渡される引数として入れ子にされています。 DAX の数式には、最大で 64 個の関数を入れ子にして含めることができます。 ただし、そのような深いレベルに入れ子にされた関数を数式に含めることはあまりありません。 実際、このような数式は作成およびデバッグするのが困難で、処理速度も速くなりません。

この数式では、フィルターも使用しました。 フィルターを使用すると、計算の対象を絞り込むことができます。 この場合、1 つのフィルターを引数として選択しましたが、これは実際は別の関数です。 フィルターについては、後で説明します。

最後に、CALCULATE 関数を使用しました。 これは DAX の最も強力な関数の1つです。 データモデルを作成し、より複雑な数式を作成する場合、この関数は何度も使用されます。 CALCULATE 関数についての話し合いは、この QuickStart の範囲外ですが、DAX の知識が大きくなったら、この点に特に注意してください。

注: 通常、DAX 数式でタイム インテリジェンス関数を使用するには、[日付テーブルとしてマーク] ダイアログ ボックスを使用して一意の日付列を指定する必要があります。 Contoso DAX Formula Samples.xlsx ブックでは、DimDate テーブルの DateKey 列が一意の日付列として選択されています。

特別課題

「作成できる最も簡単な DAX 式は何ですか?」というメッセージが表示されることがあります。 これに対する答えは、"持っていない数式" です。 これは、メジャーで標準の集計関数を使用することによって可能になります。 ほとんどのデータモデルでは、集計データをフィルター処理し、計算する必要があります。 たとえば、前に示した売上金額の合計メジャーの SUM 関数を使用して、特定の列内のすべての数値を合計することができます。 DAX には、値を集計する他のいくつかの関数も含まれています。 オート Sum 機能を使用すると、標準の集計を使用して自動的に数式を作成できます。

追加クレジットタスク: オート Sum 機能を使用してメジャー式を作成する

  1. FactSales テーブルで、ReturnQuantity 列までスクロールし、列ヘッダーをクリックして列全体を選びます。

  2. [ホーム] タブのリボンにある [計算] グループで、[オート sum ] ボタンをクリックします。

PowerPivot のオート SUM

[オート sum] の横にある下矢印をクリックして、[平均] をクリックします (その他の標準集計関数も使用できることに注意してください)。

ただちに、"ReturnQuantity" という名前で、その後に数式 = AVERAGE ([ReturnQuantity]) を使用して、新しいメジャーを作成します。

このように、操作は簡単です。 もちろん、作成するすべての数式がこのように単純であるとは限りません。 しかし、オート SUM 機能により、標準の集計計算を使用して数式をすばやく簡単に作成できます。

これで、DAX の数式で使用される構文をよく理解できることでしょう。 ここでは、IntelliSense、オート SUM など、正確な数式をすばやく簡単に作成できるようにするいくつかの機能についても説明しました。 当然ですが、構文について学習できるリソースはたくさんあります。 構文の詳細については、DAX リファレンスや SQL オンライン ブックを参照してください。

構文に関するクイズ

  1. 数式バーにあるこのボタンはどのようなものですか?
    [関数] ボタン

  2. DAX の数式では必ず列名を特定の文字で囲む必要があります。その文字とは何ですか。

  3. 次の数式を作成するには、 DimProductテーブルunitmargin計算列の各行について、[単価 ] 列値からUnitCost列の値を減算して値を計算ます。

正解はこのトピックの最後にあります。

関数

関数は、引数と呼ばれる特定の値を特定の順序または構造で使用して計算を実行する定義済みの式です。 引数には、他の関数、他の数式、列参照、数値、文字列、論理値 (TRUE、FALSE など)、または定数を指定できます。

DAX に用意されている関数のカテゴリには、日付と時刻、情報、論理、数学、統計、文字列、およびタイム インテリジェンスがあります。 DAX の関数の多くは Excel の数式に使用される関数とよく似ていますが、DAX の関数には次の特徴があります。

  • DAX 関数は、常に列全体またはテーブル全体を参照します。 テーブルまたは列の特定の値のみを使用する場合は、数式にフィルターを追加できます。

  • 集計を行ごとにカスタマイズする必要がある場合、DAX には、現在の行の値または関連する値を引数として使用して、コンテキストによって異なる計算を実行できる関数が用意されています。 コンテキストの詳細については、後で説明します。

  • DAX には、値ではなくテーブルを返す多くの関数が含まれています。 テーブルは表示されませんが、他の関数の入力として使用されます。 たとえば、テーブルを取得して、含まれる個別値をカウントしたり、フィルター処理されたテーブルまたは列における動的な合計を計算したりできます。

  • DAX には、さまざまなタイム インテリジェンス関数が含まれます。 これらの関数を使用すると、日付範囲を定義または選択して、それに基づいて動的な計算を実行できます。 たとえば、並列期間の合計を比較できます。

ときには、数式内でどの関数を使う必要があるかを判断するのが難しいことがあります。 PowerPivot と SQL Server Data Tools のテーブル モデル デザイナーに用意されている関数の挿入機能のダイアログ ボックスでは、関数をカテゴリ別に選ぶことができ、また各関数の簡単な説明が表示されます。

関数の挿入

それでは、新しい数式を作成しましょう。ここでは、関数の挿入機能を使用して関数を選びます。

タスク: 関数の挿入機能を使用して数式に関数を追加する

  1. FactSales テーブルで、右端の列までスクロールし、列見出しの [列の追加] をクリックします。

  2. 数式バーに等号 (=) を入力します。

  3. [関数の挿入] ボタンをクリックします。 関数の挿入 、[関数の挿入] ダイアログボックスが開きます。

  4. [関数の挿入] ダイアログボックスで、[分類の一覧] ボックスをクリックします。 既定では [すべて] が選択されており、[すべて] カテゴリのすべての関数が下に表示されています。 これには多くの関数が含まれているため、目的の関数の種類を簡単に見つけられるように関数をフィルター処理する必要があります。

  5. この数式では、別のテーブルに既に存在するデータを返す必要があります。 これにより、フィルターカテゴリで関数を使用することになります。 [フィルター ] カテゴリをクリックし、[関数の選択] で下にスクロールして、関連する関数をダブルクリックします。 [ Ok]をクリックして、[関数の挿入] ダイアログボックスを閉じます。

  6. IntelliSense を使用して、DimChannel[ChannelName] 列を見つけ、選択します。

  7. 数式を閉じ、Enter キーを押します。

  8. Enter キーを押して数式を完成させると、PowerPivot ウィンドウの下部のステータス バーに "計算しています" と表示されます。 FactSales テーブルに、DimChannel テーブルのチャネル情報を使う新しい列が作成されます。

  9. 列の名前を Channel に変更します。

    数式は次のようになります: =RELATED(DimChannel[ChannelName])

これは、DAX、関連する関数の、非常に重要な関数の1つです。 RELATED 関数は、別のテーブルの値を返します。 RELATED は、現在開いているテーブルと取得する値が含まれているテーブルとの間にリレーションシップが存在する場合に使用できます。 RELATED 関数には大きな可能性があります。 このケースでは、FactSales テーブルの各販売に対して販売チャネルを含めることができるようになりました。 ここでピボットテーブルのフィールド リストの DimChannel テーブルを非表示にすると、移動が容易になり、本当に必要な重要な情報のみが表示されるようになります。 前に説明した CALCULATE 関数と同様、RELATED 関数は重要であり、何度も使うことになるでしょう。

これまで見てきたように、DAX の関数を使用すると、強力な数式を作成できます。 ここで触れたのは、関数の基礎にすぎません。 DAX のスキルが向上するのに応じて、多くの異なる関数を使用して数式を作成できるようになります。 すべての DAX 関数について詳しく知るための最適な場所の1つとして、 Data Analysis 式 (DAX) のリファレンスがあります。

関数に関するクイズ

  1. 関数が必ず参照するものは何ですか。

  2. 数式に複数の関数を含めることはできますか。

  3. 2 つのテキスト文字列を 1 つの文字列に連結する場合、どのカテゴリの関数を使用しますか。

正解はこのトピックの最後にあります。

コンテキスト

コンテキストは、理解しておく必要がある最も重要な DAX の概念の 1 つです。 DAX には、行コンテキストとフィルター コンテキストの 2 種類のコンテキストがあります。 最初に、行コンテキストについて説明します。

行コンテキスト

行コンテキストは、現在の行として最も簡単に考えることができます。 たとえば、構文については、前に説明した Margin 計算列を覚えておいてください。 数式 = [SalesAmount]-[TotalCost] テーブルの各行の Margin 列の値を計算します。 各行の値は、同じ行の2つの列 [SalesAmount] と [TotalCost] の値から計算されます。 DAX では、各行について、[TotalCost] 列の値を受け取り、[SalesAmount] 列の値から減算して、[Margin] 列の各行の値を計算できます。

次の図の選択されたセルの値に注目してください。現在の行の値 $49.54 は、[SalesAmount] 列の値 $101.08 から [TotalCost] 列の値 $51.54 を減算した結果です。

Power Pivot の行コンテスト

行コンテキストが適用されるのは、計算列に限りません。 行コンテキストは、テーブル内の単一の行を識別するフィルターを適用する関数が数式に含まれるときはいつでも適用されます。 関数は、フィルターを適用するテーブルのそれぞれの行に対して本質的に行コンテキストを適用します。 この種類の行コンテキストは、メジャーに最もよく適用されます。

フィルター コンテキスト

フィルター コンテキストは、行コンテキストよりも理解することが少し難しい概念です。 フィルター コンテキストは、"結果または値を決定する計算で適用される 1 つまたは複数のフィルター" と最も容易に考えることができます。

フィルター コンテキストは、行コンテキストの代わりに存在するのではなく、行コンテキストに追加する形で適用されます。 たとえば、計算に含める値を絞り込むために、行コンテキストを指定するだけでなくその行コンテキストの特定の値 (フィルター) も指定するフィルター コンテキストを適用できます。

フィルター コンテキストは、ピボットテーブルで容易に見ることができます。 たとえば、TotalCost を [値] 領域に追加し、Year と Region を [行] 領域または [列] 領域に追加した場合、特定の年および地域に基づいてデータのサブセットを選ぶフィルター コンテキストを定義することになります。

DAX にとってなぜフィルター コンテキストがこれほどまで重要なのでしょうか。 フィルターコンテキストは、ほとんどの場合、列と行のラベルとスライサーをピボットテーブルに追加することで適用することができるため、フィルターコンテキストは DAX 式で適用することもできます。たとえば、ALL、RELATED、FILTER、CALCULATE、リレーションシップなどの関数を使用してフィルターを定義することができます。その他のメジャーと列。 たとえば、Storesales とそれという名前のメジャーで次の数式を見てみましょう。

数式

この数式は、これまでに見てきた他のいくつかの数式より明らかに複雑です。 ただし、他の数式と同様に、この数式も分解することでわかりやすくなります。

この数式には、次の構文要素が含まれています。

  1. メジャー名 Storesales とそれの後にコロン (:) が続いています。

  2. 等号演算子 (=) は、数式の開始を示します。

  3. CALCULATE 関数は、指定されたフィルターによって修飾されたコンテキストで、引数として式を評価します。

  4. 1 つまたは複数の引数を囲むかっこ ()。

  5. 式と同じテーブルの measure [Sales]。 売上メジャーには、= SUM (FactSales [SalesAmount]) という数式が含まれています。

  6. コンマ (,) は、各フィルターを区切ります。

  7. 参照されている列と、フィルターとしての特定の値 DimChannel[ChannelName] ="Store"。

この数式では、売上メジャーで定義された売上額のみをフィルターとして、DimChannel [ChannelName] 列の行に対してのみ、フィルターとして "Store" という値が含まれていることを確認します。

想像できるように、数式内でフィルター コンテキストを定義できると、強大な能力が得られます。 関連テーブル内の特定の値のみを参照できることは、その一例にすぎません。 この段階でコンテキストを完全に理解できなくても、心配する必要はありません。 自分で独自に数式を作成する経験を積むことで、コンテキストをさらに理解でき、DAX においてコンテキストが重要である理由も理解できます。

コンテキストに関するクイズ

  1. コンテキストの種類を 2 つ挙げてください。

  2. フィルター コンテキストとは何ですか。

  3. 行コンテキストとは何ですか。

正解はこのトピックの最後にあります。

概要

DAX で最も重要な概念の基本を理解したので、独自の計算列とメジャーの DAX 数式の作成を開始できます。 実際、DAX は習得するのがやや難しいものの、さまざまなリソースを利用できます。 このトピックを何度か読み返し、自分で数式を作成する経験を積んだ後は、DAX の他の概念やビジネス上の問題を解決するのに役立つ数式について学習してみましょう。 利用できる DAX のリソースとしては、PowerPivot ヘルプ、SQL Server オンライン ブック、ホワイトペーパー、Microsoft および一流の BI プロフェッショナルのブログ記事があります。 出発点としては、DAX リソース センター Wiki (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) が最適です。 Data Analysis 式 (DAX) 参照も優れたリソースです。 これをぜひお気に入りに登録しておいてください。

ダウンロード (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409) して入手できる "DAX in the BI Tabular Model" ホワイトペーパーには、ここで紹介した概念の詳しい説明に加え、その他の高度な概念および数式が数多く紹介されています。 このホワイトペーパーでは、既にお持ちのものと同じ Contoso DAX Sample Formulas.xlsx DAX ブックも使用されます。

クイズの回答

構文:

  1. 関数の挿入機能を開きます。

  2. 角かっこ []。

  3. =[UnitPrice] - [UnitCost]

関数:

  1. テーブルと列。

  2. はい。 1 つの数式に最大で 64 個の関数を入れ子にして含めることができます。

  3. Text 関数

コンテキスト:

  1. 行コンテキストとフィルター コンテキスト。

  2. 単一の値を決定する計算内の 1 つまたは複数のフィルター。

  3. 現在の行。

注:  このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。 私たちの目的は、このコンテンツがお客様の役に立つようにすることです。 情報が役に立ったかどうか、ご意見をお寄せください。 参考までに、こちらから英語の記事をお読みいただけます。

ヘルプを表示

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

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

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

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

×