VALUES
當輸入參數是數據行名稱時,會傳回包含指定數據行中相異值的一個數據行數據表。 會移除重複的值,而且只會傳回唯一值。 您可以新增 BLANK 值。 當輸入參數是資料表名稱時,即會傳回指定資料表中的資料列。 保留重複的資料列。 您可以新增 BLANK 列。
注意
此函式無法用來將值傳回工作表上的儲存格或數據行;相反地,您可以使用它作為巢狀在公式中的中繼函式,以取得可計算或用來篩選或加總其他值的相異值清單。
語法
VALUES(<TableNameOrColumnName>)
參數
詞彙 | 定義 |
---|---|
TableName 或 ColumnName |
要傳回唯一值的數據行,或要從中傳回數據列的數據表。 |
傳回值
當輸入參數為資料行名稱時,即為單一資料行資料表。 當輸入參數為資料表名稱時,即會傳回相同資料行的資料表。
備註
當您在已篩選的內容中使用 VALUES 函式時,VALUES 傳回的唯一值會受到篩選的影響。 例如,如果您依區域篩選,並傳回 City 的值清單,清單將只包含篩選允許的區域中的那些城市。 若要傳回所有城市,不論現有的篩選為何,您必須使用 ALL 函式來移除數據表中的篩選。 第二個範例示範搭配 VALUES使用 ALL。
在匯出數據行或數據列層級安全性 (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 數據表中沒有相符日期的任何數據列,都會與這個未知的成員「相符」。
範例
下列公式會計算唯一發票(銷售訂單)的數目,並在包含產品類別名稱的報表中使用時產生下列結果:
= COUNTROWS(VALUES('InternetSales_USD'[SalesOrderNumber]))
傳回
資料列標籤 | 計算發票計數 |
---|---|
配件 | 18,208 |
Bikes | 15,205 |
Clothing | 7,461 |
總計 | 27,659 |