RELATED
別のテーブルから関連する値を返します。
構文
RELATED(<column>)
パラメーター
用語 | 定義 |
---|---|
column |
取得する値を含む列。 |
戻り値
現在の行に関連する 1 つの値。
解説
RELATED 関数では、現在のテーブルと、関連情報を含むテーブルの間にリレーションシップが存在する必要があります。 目的のデータを含む列を指定すると、関数は既存の多対一リレーションシップに従って、関連テーブル内の指定された列から値をフェッチします。 リレーションシップが存在しない場合は、リレーションシップを作成する必要があります。
RELATED 関数は、参照を実行するときに、適用されている可能性のあるフィルターに関係なく、指定されたテーブル内のすべての値を調べます。
RELATED 関数には行コンテキストが必要です。そのため、現在の行コンテキストが明確である計算列式、またはテーブル スキャン関数を使用する式の入れ子になった関数としてのみ使用できます。 SUMXなどのテーブル スキャン関数は、現在の行値の値を取得し、その値のインスタンスについて別のテーブルをスキャンします。
RELATED 関数を使用して、限られたリレーションシップにわたって列をフェッチすることはできません。
例
次の例では、米国以外のインターネット販売メジャーが作成され、米国での売上を除外する売上レポートが生成されます。 メジャーを作成するには、InternetSales_USD テーブルをフィルター処理して、SalesTerritory テーブルの米国に属するすべての売上を除外する必要があります。 米国は国として SalesTerritory テーブルに 5 回表示されます。次の各リージョンに対して 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 の間の既存の関係を使用し、国が米国とは異なる必要があることを明示的に述べます。 これを行うには、次のようなフィルター式を作成します。
FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")
この式では、RELATED 関数を使用して SalesTerritory テーブル内の国の値を検索します。最初は、InternetSales_USD テーブルのキー列 SalesTerritoryKey の値から始まります。 検索の結果は、InternetSales_USD行がフィルター処理されているかどうかを判断するためにフィルター関数によって使用されます。
注意
この例が機能しない場合は、テーブル間にリレーションシップを作成する必要がある場合があります。
= SUMX(FILTER( 'InternetSales_USD'
, RELATED('SalesTerritory'[SalesTerritoryCountry])
<>"United States"
)
,'InternetSales_USD'[SalesAmount_USD])
次の表は、メジャーのフィルター式 (米国以外のインターネット販売) が意図したとおりに動作することを証明するために、各リージョンの合計のみを示しています。
Row Labels | Internet Sales | Non USA Internet Sales |
---|---|---|
オーストラリア | $4,999,021.84 | $4,999,021.84 |
カナダ | $1,343,109.10 | $1,343,109.10 |
フランス | $2,490,944.57 | $2,490,944.57 |
ドイツ | $2,775,195.60 | $2,775,195.60 |
イギリス | $5,057,076.55 | $5,057,076.55 |
アメリカ合衆国 | $9,389,479.79 | |
総計 | $26,054,827.45 | $16,665,347.67 |
レポート テーブル ビジュアルでこのメジャーを使用した場合に得られる可能性のある内容を次に示します。
Row Labels | Accessories | Bikes | Clothing | Grand Total |
---|---|---|---|---|
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 |