VALUES
當輸入參數是資料行名稱時,即會傳回包含指定資料行相異值的單資料行資料表。 系統會移除重複的值,只傳回唯一的值。 可以新增 BLANK 值。 當輸入參數是資料表名稱時,即會傳回指定資料表中的資料列。 保留重複的資料列。 可以新增 BLANK 資料列。
注意
您無法使用此函式將值傳回工作表的儲存格或資料行,而是作為公式的巢狀中繼函式使用,以取得可計數或用於篩選或加總其他值的相異值清單。
語法
VALUES(<TableNameOrColumnName>)
參數
詞彙 | 定義 |
---|---|
TableName 或 ColumnName | 要傳回其唯一值的資料行,或要傳回其資料列的資料表。 |
傳回值
當輸入參數為資料行名稱時,即為單一資料行資料表。 當輸入參數為資料表名稱時,即會傳回相同資料行的資料表。
備註
當在篩選過的內容中使用 VALUES 函式時,VALUES 傳回的唯一值會受篩選條件的影響。 例如,如果依區域篩選,並傳回城值的清單,則此清單只會包含篩選條件允許區域中的城市。 若想要傳回所有城市而不論現有的篩選條件為何,則必須使用 ALL 函式移除資料表中的篩選條件。 第二個範例示範如何使用 ALL 和 VALUES。
在計算結果欄或資料列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。
如需使用 VALUES 時的最佳做法,請參閱使用 SELECTEDVALUE 而非 VALUES。
相關函數
在大部分的情況下,當引數是資料行名稱時,VALUES 函式的結果會和 DISTINCT 函式的結果一樣。 這兩個函式都會移除重複項目,並傳回指定資料行中的可能值清單。 不過,VALUES 函式也會傳回空白值。 當在相關資料表中查閱相異值,但其中一份資料表遺漏用於關聯性的值時,這個空白值會很有用。 在資料庫術語中,這稱為違反參考完整性。 當更新一份資料表,但未更新相關資料表時,資料中即可能出現這類不相符項目。
當引數是資料表名稱時,如發生違反參考完整性,則 VALUES 函式的結果即會傳回所指定資料表所有資料列,加上空白資料列。 DISTINCT 函式會移除重複的資料列,並傳回指定資料表中的唯一資料列。
注意
DISTINCT 函式允許使用資料行名稱或任何有效的資料表運算式作為其引數,但 VALUES 函式只接受資料行名稱或資料表名稱作為引數。
下表摘要說明當未保留參考完整性時,兩份相關資料表的資料間即會出現不相符項目。
MyOrders 資料表 | MySales 資料表 |
---|---|
6 月 1 日 | 6 月 1 日銷售額 |
6 月 2 日 | 6 月 2 日銷售額 |
(未輸入任何訂單日期) | 6 月 3 日銷售額 |
如果您使用 DISTINCT 函式傳回日期清單,則只會傳回兩個日期。 但若使用 VALUES 函式,則會傳回兩個日期加上一個額外的空白成員。 此外,MySales 資料表在 MyOrders 資料表中沒有相符日期的所有資料列都會「配對到」此未知成員。
範例
下列公式會計算唯一發票的張數 (銷售訂單),並在用於包含產品類別目錄名稱的報表中時,產生下列結果:
= COUNTROWS(VALUES('InternetSales_USD'[SalesOrderNumber]))
傳回
資料列標籤 | 計算發票張數 |
---|---|
配件 | 18,208 |
Bikes | 15,205 |
Clothing | 7,461 |
總計 | 27,659 |