RELATED
別のテーブルから関連する値を返します。
構文
RELATED(<column>)
パラメーター
用語 | 定義 |
---|---|
列 | 取得する値を含む列。 |
戻り値
現在の行に関連する単一の値。
解説
RELATED 関数では、現在のテーブルと、関連する情報を含むテーブルの間にリレーションシップが存在している必要があります。 必要なデータを含む列を指定します。関数は、既存の多対一のリレーションシップに従って、関連テーブル内の指定された列から値をフェッチします。 リレーションシップが存在しない場合は、リレーションシップを作成する必要があります。
RELATED 関数では、検索を実行する際に、適用されている可能性があるフィルターに関係なく、指定されたテーブル内のすべての値を調べます。
RELATED 関数には行コンテキストが必要なため、現在の行コンテキストが明確である計算列の式で使用するか、またはテーブル スキャン関数を使用する式で入れ子になった関数としてのみ使用できます。 SUMX などのテーブル スキャン関数は、現在の行の値を取得した後、別のテーブルでその値のインスタンスをスキャンします。
RELATED 関数を使用して、制限付きリレーションシップをまたいで列をフェッチすることはできません。
例
次の例では、米国以外のインターネット販売というメジャーを作成し、米国の売上を除外した売上レポートを生成します。 メジャーを作成するには、InternetSales_USD テーブルをフィルター処理して、SalesTerritory テーブル内の米国に属するすべての売上を除外する必要があります。 SalesTerritory テーブルでは、United States が国として 5 回出現します。Northwest、Northeast、Central、Southwest、および Southeast の各地域に 1 回ずつです。
メジャーを作成するために、インターネット販売をフィルター処理する最初の方法は、次のようなフィルター式を追加することです。
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 テーブル内で country 値 (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 |