VALUES
入力パラメーターが列名の場合は、指定した列の個別の値を含む 1 列のテーブルを返します。 重複する値が削除され、一意の値のみが返されます。 BLANK 値を追加できます。 入力パラメーターがテーブル名の場合は、指定されたテーブルの行を返します。 重複する行は保持されます。 BLANK 行を追加できます。
注意
この関数を使用して、ワークシートのセルまたは列に値を返すことはできません。代わりに、数式で入れ子になった中間関数として使用して、カウントまたは他の値のフィルター処理または合計に使用できる個別の値の一覧を取得します。
構文
VALUES(<TableNameOrColumnName>)
パラメーター
用語 | 定義 |
---|---|
TableName または ColumnName |
一意の値が返される列、または行が返されるテーブル。 |
戻り値
入力パラメーターが列名の場合、1 列のテーブル。 入力パラメーターがテーブル名の場合、同じ列のテーブルが返されます。
解説
フィルター処理されたコンテキストで VALUES 関数を使用すると、VALUES によって返される一意の値がフィルターの影響を受けます。 たとえば、Region でフィルター処理し、市区町村の値の一覧を返す場合、一覧には、フィルターで許可されているリージョン内の都市のみが含まれます。 既存のフィルターに関係なく、すべての都市を返すには、ALL 関数を使用してテーブルからフィルターを削除する必要があります。 2 番目の例では、VALUESでの ALL の使用を示します。
この関数は、計算列または行レベル セキュリティ (RLS) 規則で使用する場合、DirectQuery モードでは使用できません。
を使用する場合のベスト プラクティスについては、「 の代わりに 使用する」を参照してください。
関連する関数
ほとんどのシナリオでは、引数が列名の場合、VALUES 関数の結果は DISTINCT
関数の結果と同じです。 どちらの関数も重複を削除し、指定した列で使用可能な値の一覧を返します。 ただし、VALUES 関数は空白の値を返すこともできます。 この空白の値は、関連するテーブルから個別の値を参照しているが、リレーションシップで使用される値が 1 つのテーブルから欠落している場合に便利です。 データベース用語では、これは参照整合性の違反と呼ばれます。 このようなデータの不一致は、1 つのテーブルが更新されていて、関連テーブルが更新されていない場合に発生する可能性があります。
引数がテーブル名の場合、VALUES 関数の結果は、参照整合性に違反している場合、指定したテーブルのすべての行と空白行を返します。 DISTINCT 関数は、重複する行を削除し、指定されたテーブル内の一意の行を返します。
注意
DISTINCT 関数を使用すると、列名または任意の有効なテーブル式を引数にすることができますが、VALUES 関数は、列名またはテーブル名のみを引数として受け入れます。
次の表は、参照整合性が保持されていない場合に 2 つの関連テーブルで発生する可能性があるデータの不一致をまとめたものです。
MyOrders テーブル | MySales テーブル |
---|---|
6 月 1 日 | 6 月 1 日の売上 |
6 月 2 日 | 6 月 2 日の売上 |
(注文日は入力されていません) | 6 月 3 日の売上 |
DISTINCT 関数を使用して日付のリストを返す場合は、2 つの日付のみが返されます。 ただし、VALUES 関数を使用する場合、関数は 2 つの日付と追加の空白メンバーを返します。 また、MyOrders テーブルに一致する日付がない MySales テーブルの行は、この不明なメンバーと "照合" されます。
例
次の式は、一意の請求書 (販売注文) の数をカウントし、製品カテゴリ名を含むレポートで使用すると、次の結果を生成します。
= COUNTROWS(VALUES('InternetSales_USD'[SalesOrderNumber]))
戻り値
行ラベル | 請求書のカウント |
---|---|
アクセサリ | 18,208 |
バイク | 15,205 |
衣服 | 7,461 |
総計 | 27,659 |