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

社員 Id

ResellerID

100314

230

445

100315

15

445

100316

76

108

[社員] テーブル

社員 Id

従業員

販売店

230

Kuppa Vamsi

Modular Cycle Systems

15

Pilar Ackeman

Modular Cycle Systems

76

Kim Ralls

Associated Bikes

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

OrderID

社員 Id

ResellerID

従業員

販売店

100314

230

445

Kuppa Vamsi

Modular Cycle Systems

100315

15

445

Pilar Ackeman

Modular Cycle Systems

100316

76

108

Kim Ralls

Associated Bikes

関数では、リンクされている従業員と再販業者のテーブルとの間のリレーションシップを使用して、レポートの行ごとに、正しい名前を取得します。計算に関連する値を使用することもできます。詳細および例については、関連する関数を参照してください。

一連の関連する値の取得

RELATEDTABLE 関数では、依存して、既存のリレーションシップを指定したテーブルから一致するすべての行を含むテーブルを返します。たとえば、次のような数の注文ごとの再販業者の年が配置を確認するとします。表内の販売店をごとの再販業者 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 という再販業者については売上がないので、関数は空白を返します。

販売店

この再販業者の売上テーブル内のレコード

Modular Cycle Systems

Reseller ID

SalesOrderNumber

445

SO53494

445

SO71872

445

SO65233

445

SO59000

Reseller ID

SalesOrderNumber

Associated Bikes

注: RELATEDTABLE 関数は、単一値ではなく、テーブルを返すために、テーブルでの操作を実行する関数に引数として使用する必要があります。詳細については、 RELATEDTABLE 関数を参照してください。

ページの先頭へ

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

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

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

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

×