次の方法で共有


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

FILTER 関数COUNTROWS 関数フィルター関数