VALUES 函數 (DAX)
傳回包含不同於指定之資料行的值之單欄資料表。換句話說,系統會移除重複的值,而只傳回唯一的值。
[!附註]
此函數無法用來將值傳入工作表上的資料格或資料行;但是您可以將它當做內嵌在公式中的中繼函數使用,以取得無法計算之相異值的清單,或用來篩選或加總其他值。
語法
VALUES(<column>)
參數
詞彙 |
定義 |
|---|---|
column |
要傳回其唯一值的資料行。 |
傳回值
唯一值的資料行。
備註
當您在已經過篩選的內容 (例如樞紐分析表) 中使用 VALUES 函數時,VALUES 所傳回的唯一值會受到篩選的影響。例如,如果您依 Region 篩選,並針對 City 傳回值的清單,該清單只會包含篩選所允許之區域中的城市。若要傳回所有城市,而不管現有的篩選為何,您必須使用 ALL 函數來移除資料表中的篩選。第二個範例示範如何搭配 VALUES 使用 ALL。
相關函數
在大部分的狀況下,VALUES 函數的結果會與 DISTINCT 函數的結果相同。這兩個函數都會移除重複項目,並傳回指定之資料行中可能值的清單。不過,VALUES 函數也可以傳回「未知的成員」(Unknown Member)。當您查閱相關資料表中的相異值,但在某個資料表中遺漏關聯性中所使用的值時,這個未知的值相當實用。在資料庫術語中,這稱為違反參考完整性。當某個資料表正在進行更新,而相關資料表並未更新時,很容易發生這種資料不相符的狀況。
下表摘要說明未保留參考完整性時,在兩個相關資料表中可能發生的資料不相符狀況。
MyOrders 資料表 |
MySales 資料表 |
|---|---|
June 1 |
June 1 sales |
June 2 |
June 2 sales |
(尚未輸入任何訂單日期) |
June 3 sales |
如果您使用 DISTINCT 函數從包含這些資料表的樞紐分析表中傳回日期的清單,只會傳回兩個日期。不過,如果您使用 VALUES 函數,此函數會傳回兩個日期,加入一個額外的空白成員。同時,在 MySales 資料表中,沒有 MyOrders 資料表中相符日期的任何資料列都會「符合」這個未知的成員。
範例
下列公式會計算唯一發票 (銷售訂單) 的數目,並於包含「產品類別名稱」的報表中使用時,產生下列結果:
資料列標籤 |
計算發票數目 |
|---|---|
配件 |
18,208 |
自行車 |
15,205 |
服裝 |
7,461 |
總計 |
27,659 |
=COUNTROWS(VALUES('InternetSales_USD'[SalesOrderNumber]))