次の方法で共有


RELATED 関数

別のテーブルから関連する値を返します。

構文

RELATED(<column>)

パラメーター

項目

定義

column

取得する値が格納されている列。

戻り値

現在の行に関連する単一の値。

説明

RELATED 関数を使用するには、現在のテーブルと、関連する情報が格納されているテーブルとの間にリレーションシップが存在している必要があります。 目的のデータがある列を指定すると、既存の多対一のリレーションシップに従って、関連テーブル内の指定された列から値がフェッチされます。

リレーションシップが存在しない場合は、リレーションシップを作成する必要があります。 詳細については、「2 つのテーブル間のリレーションシップの作成」を参照してください。

RELATED 関数は参照を実行する際、仮にフィルターが適用されていても、指定されたテーブル内のすべての値を調べます。

注意

RELATED 関数は、行コンテキストを必要とするため、現在の行コンテキストに曖昧性のない計算列式の中での使用か、テーブル スキャン関数を使った式の中で入れ子になった関数としての使用のみが可能です。 テーブル スキャン関数 (SUMX など) は、現在の行の値を取得した後、別のテーブルをスキャンして対応する値を探します。

使用例

次の例では、Non USA Internet Sales メジャーを作成して米国での売上を除外した売上レポートを作成します。 メジャーを作成するには、InternetSales_USD テーブルをフィルター処理して、SalesTerritory テーブルの United States に属するすべての売上を除外する必要があります。 SalesTerritory テーブルでは、United States が国として 5 回出現します。Northwest、Northeast、Central、Southwest、および Southeast の各地域に 1 回ずつです。

メジャーを作成するために Internet Sales をフィルター処理する最初の方法として、次のようにフィルター式を追加することができます。

FILTER('InternetSales_USD', 'InternetSales_USD'[SalesTerritoryKey]<>1 && 'InternetSales_USD'[SalesTerritoryKey]<>2 && 'InternetSales_USD'[SalesTerritoryKey]<>3 && 'InternetSales_USD'[SalesTerritoryKey]<>4 && 'InternetSales_USD'[SalesTerritoryKey]<>5)

ただし、この方法は直観的ではなく、入力エラーが発生しやすく、既存の地域が今後分割された場合に機能しなくなる可能性があります。

より適切な方法は、InternetSales_USD と SalesTerritory 間の既存のリレーションシップを使用して、国が United States とは異なる必要があることを明示的に示すことです。 そのためには、次のようなフィルター式を作成します。

FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")

この式では、RELATED 関数を使用し、InternetSales_USD テーブルのキー列 SalesTerritoryKey の値から開始して、SalesTerritory テーブル内の国の値を参照します。 フィルター関数では、その参照結果に基づいて、InternetSales_USD 行を除外するかどうかが判定されます。

注意

この例が正しく実行できない場合は、テーブル間にリレーションシップの作成が必要である可能性があります。 詳細については、「テーブル間のリレーションシップ」を参照してください。

= SUMX(FILTER( 'InternetSales_USD'
            ,  RELATED('SalesTerritory'[SalesTerritoryCountry])
               <>"United States"
             )
     ,'InternetSales_USD'[SalesAmount_USD])

次の表は、Non USA Internet Sales メジャーのフィルター式が適切に動作することを証明するために、各地域の合計のみ示しています。

行ラベル

Internet Sales

Non USA Internet Sales

Australia

$4,999,021.84

$4,999,021.84

Canada

$1,343,109.10

$1,343,109.10

France

$2,490,944.57

$2,490,944.57

Germany

$2,775,195.60

$2,775,195.60

United Kingdom

$5,057,076.55

$5,057,076.55

United States

$9,389,479.79

 

総計

$26,054,827.45

$16,665,347.67

次の表は、このメジャーをピボットテーブルで使用した場合に得られる最終的なレポートの例を示しています。

Non USA Internet Sales

列ラベル

 

 

 

行ラベル

Accessories

Bikes

Clothing

総計

2005

 

$1,526,481.95

 

$1,526,481.95

2006

 

$3,554,744.04

 

$3,554,744.04

2007

$156,480.18

$5,640,106.05

$70,142.77

$5,866,729.00

2008

$228,159.45

$5,386,558.19

$102,675.04

$5,717,392.68

総計

$384,639.63

$16,107,890.23

$172,817.81

$16,665,347.67

関連項目

参照

RELATEDTABLE 関数

その他の技術情報

フィルター関数 (DAX)

テーブル間のリレーションシップ