PowerPivot の数式での参照

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

PowerPivot の最も強力な機能の 1 つに、テーブル間のリレーションシップを作成してから関連テーブルを使用して、関連するデータを参照またはフィルター処理する機能があります。関連する値をテーブルから取得するには、 PowerPivot に用意されている数式言語である DataAnalysis Expressions (DAX) を使います。DAX  はリレーショナル モデルを使っているため、他のテーブルまたは列の関連値や対応する値を簡単かつ正確に取得できます。PowerPivotのこの機能は Excel の VLOOKUP と似ていますが、実装がはるかに簡単です。

集計列の一部として、またはピボット テーブルまたはピボット グラフで使用するメジャーの一部として参照する数式を作成することができます。詳細については、次のトピックを参照してください。

PowerPivot の集計フィールド

PowerPivot の計算列

ここでは、参照用の DAX 関数と、それらの関数の使用方法の例を紹介します。

注: 使用する参照操作または参照式の種類によって、先にテーブル間のリレーションシップを作成する必要がある場合があります。

参照関数について

別のテーブルの一致するデータや関連データを参照する機能が特に役立つのは、現在のテーブルに何らかの識別子だけが含まれており、必要とするデータ (製品の価格、名前、その他の詳しい値など) が関連テーブルに保存されている場合です。また、現在の行や現在の値に関連付けられている行が別のテーブルに複数存在する場合にも役立ちます。たとえば、特定の地域、店舗、または販売員に関連付けられた総売上を簡単に取得できます。

Excel の参照関数には、VLOOKUP のように配列に基づいて参照する方法と、LOOKUP のように一致する複数の値のうちの最初の値を取得する方法がありますが、DAX はこれとは異なり、キーによって結合されたテーブル間の既存のリレーションシップに従って、正確に一致する 1 つの関連値を取得します。また、DAX は現在のレコードに関連付けられているレコードのテーブルを取得することもできます。

注: リレーショナル データベースについて熟知している場合、PowerPivot における参照は、Transact-SQL における入れ子にされたサブセレクト ステートメントと同様のものと考えることができます。

単一の関連する値の取得

RELATED 関数は、別のテーブルから、現在のテーブルの現在の値に関連する単一の値を返します。目的のデータが格納された列が指定されると、関数はテーブル間の既存のリレーションシップを追跡し、関連テーブル内の指定された列から値をフェッチします。場合によっては、関数がデータを取得するために、連鎖したリレーションシップの追跡が必要になることもあります。

たとえば、Excel 形式で本日の出荷の一覧があるとします。ところが、一覧に含まれているのは従業員 ID 番号、注文 ID 番号、および再販業者 ID 番号のみであり、わかりにくいレポートになっています。追加情報を取得するには、この一覧を PowerPivot リンク テーブルに変換し、Employee テーブルと Reseller テーブルへのリレーションシップを作成して、EmployeeID を EmployeeKey フィールドに、ResellerID を ResellerKey フィールドに照合します。

リンク テーブル内の参照情報を表示するには、次の数式を使用して新しい計算列を 2 つ追加します。

= RELATED('Employees'[EmployeeName])
= RELATED('Resellers'[CompanyName])

今日の出荷をルックアップする前に

OrderID

EmployeeID

ResellerID

100314

230

445

100315

15

445

100316

76

108

Employees テーブル

EmployeeID

Employee

Reseller

230

Kuppa Vamsi

Modular Cycle Systems

15

Pilar Ackeman

Modular Cycle Systems

76

Kim Ralls

Associated Bikes

今日の出荷のルックアップ

OrderID

EmployeeID

ResellerID

Employee

Reseller

100314

230

445

Kuppa Vamsi

Modular Cycle Systems

100315

15

445

Pilar Ackeman

Modular Cycle Systems

100316

76

108

Kim Ralls

Associated Bikes

この関数では、リンク テーブルと Employees テーブルおよび Resellers テーブルとの間のリレーションシップを使用して、レポート内の各行に正しい名前を取得しています。関連する値を計算に使用することもできます。詳細および例については、「RELATED 関数 (DAX)」をご覧ください。

一連の関連する値の取得

RELATEDTABLE 関数は、既存のリレーションシップに従って、指定されたテーブルから、一致しているすべての行を取得し、テーブルとして返します。たとえば、各再販業者からの今年の注文数を調べる必要があるとします。Resellers テーブルに、次の数式が格納された新しい計算列を作成できます。この数式は、各再販業者のレコードを ResellerSales_USD テーブル内で参照し、再販業者ごとに個々の注文数をカウントします。これらのテーブルは、DAX サンプル ブックに含まれています。サンプル データについて詳しくは、「DAX およびデータ モデル チュートリアルのサンプル データの入手」をご覧ください。

=COUNTROWS(RELATEDTABLE(ResellerSales_USD))

この数式では、まず RELATEDTABLE 関数が現在のテーブル内の再販業者ごとに ResellerKey の値を取得します (数式内で ID 列を指定する必要はありません。PowerPivot が、テーブル間の既存のリレーションシップを使うためです)。次に RELATEDTABLE 関数が、各再販業者に関連付けられているすべての 行を ResellerSales_USD テーブルから取得し 、行数をカウントします。2 つのテーブルの間に (直接的にも間接的にも) リレーションシップがない場合は、ResellerSales_USD テーブルの行がすべて取得されます。

サンプル データベースに登録されている Modular Cycle Systems という再販業者の場合は、ResellerSales_USD テーブルに 4 件の注文があるので、関数から 4 が返されます。Associated Bikes という再販業者については売上がないので、関数は空白を返します。

Reseller

この Reseller に対応する ResellerSales_USD テーブル内のレコード

Modular Cycle Systems

Reseller ID

SalesOrderNumber

445

SO53494

445

SO71872

445

SO65233

445

SO59000

Reseller ID

SalesOrderNumber

Associated Bikes

注: RELATEDTABLE 関数が返すのは単一の値ではなくテーブルであるため、テーブルに関する演算を実行する関数の引数として使用する必要があります。詳しくは、「RELATEDTABLE 関数 (DAX)」をご覧ください。

ページの先頭へ

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

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

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

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

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

×