スキップしてメイン コンテンツへ

PowerPivot の数式での参照

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

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

PowerPivot の集計フィールド

PowerPivot の計算列

このセクションでは、lookup 用に用意されている DAX 関数と、それらの関数の使用例をいくつか紹介します。

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

検索関数について

他のテーブルの一致または関連データを検索する機能は、現在のテーブルに何らかの id しかない場合や、必要なデータ (製品価格、名前、その他の詳細な値など) が関連テーブルに格納されている場合に特に便利です。 また、現在の行または現在の値に関連する別のテーブルに複数の行がある場合にも便利です。 たとえば、特定の地域、店舗、または販売員に関連付けられたすべての売り上げを簡単に取得できます。

VLOOKUP などの Excel のルックアップ関数 (配列または LOOKUP に基づく) とは対照的に、複数の一致する値の最初の部分を取得するに対して、DAX はキーによって結合されたテーブル間の既存の関係を示します。 DAX は、現在のレコードに関連するレコードのテーブルを取得することもできます。

注: リレーショナルデータベースに精通している場合は、Transact-sql の入れ子になったサブセレクトステートメントと同様の PowerPivot の参照を考えることができます。

関連する1つの値を取得する

この関連関数は、現在のテーブルの現在の値に関連する別のテーブルから1つの値を返します。 必要なデータを含む列を指定します。また、この関数は、関連テーブルで指定された列の値を取得するために、テーブル間の既存のリレーションシップに従います。 場合によっては、関数がリレーションシップのチェーンに従ってデータを取得する必要があります。

たとえば、Excel で今日の出荷の一覧があるとします。 ただし、リストには従業員 ID 番号、注文 ID 番号、出荷業者 ID 番号のみが含まれており、レポートは読みにくくなります。 必要な追加情報を取得するには、そのリストを PowerPivot リンクテーブルに変換してから、従業員と販売業者のテーブルとの関係を作成し、EmployeeID と従業員のキーフィールドを一致させ、ResellerKey フィールドに ResellerID します。

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

= 関連 (' 従業員 ' [EmployeeName])
= 関連 (' 再販業者 ' [会社名])

検索前の今日の出荷

OrderID

コード

ResellerID

100314

230

445

100315

15

445

100316

76

108

Employees テーブル

コード

営業

パートナー

230

Kuppa Vamsi

モジュラー循環システム

15

Pilar Ackeman

モジュラー循環システム

76

Kim Ralls

関連する自転車

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

OrderID

コード

ResellerID

営業

パートナー

100314

230

445

Kuppa Vamsi

モジュラー循環システム

100315

15

445

Pilar Ackeman

モジュラー循環システム

100316

76

108

Kim Ralls

関連する自転車

この関数は、リンクテーブルと [社員] と [再販業者] のテーブル間の関係を使って、レポート内の各行に対して正しい名前を取得します。 また、関連する値を使用して計算を行うこともできます。 詳細と例については、「関連する関数」を参照してください。

関連する値のリストを取得する

関連テーブル関数は、既存のリレーションシップに従い、指定されたテーブルから一致するすべての行を含むテーブルを返します。 たとえば、各販売店がこの年に配置した注文の数を確認する必要があるとします。 [再販業者] テーブルに、ResellerSales_USD テーブルの各販売店のレコードを検索する次の数式を含む新しい計算列を作成し、各販売店による個々の注文の数をカウントします。 

= COUNTROWS (テーブル (ResellerSales_USD))

この数式では、ResellerKey 関数は、現在のテーブルの各販売店の値を最初に取得します。 ( PowerPivot は、テーブル間の既存のリレーションシップを使用しているため、数式の任意の場所に ID 列を指定する必要はありません)。 次に、関連テーブル関数によって、各販売店に関連する ResellerSales_USD テーブルのすべての行が取得され、それらの行がカウントされます。 2つのテーブルの間にリレーションシップ (直接的または間接的) がない場合は、ResellerSales_USD テーブルからすべての行が取得されます。

サンプルデータベースの販売店用モジュラー循環システムについては、sales テーブルに4つの注文があるため、この関数は4を返します。 関連する自転車については、販売店に販売されていないため、この関数は空白を返します。

パートナー

この販売店の売上テーブルのレコード

モジュラー循環システム

販売業者 ID

SalesOrderNumber

445

SO53494

445

SO71872

445

SO65233

445

SO59000

販売業者 ID

SalesOrderNumber

関連する自転車

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

ページの先頭へ

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

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

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

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

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

×