DISTINCT 函數 (DAX)
傳回包含不同於指定之資料行的值之單欄資料表。換句話說,系統會移除重複的值,而只傳回唯一的值。
[!附註]
此函數無法用來將值傳入工作表上的資料格或資料行;但是您可以將 DISTINCT 函數內嵌在公式中,以取得可以傳遞給其他函數進行計數、加總或用於其他運算之相異值的清單。
語法
DISTINCT(<column>)
參數
詞彙 |
定義 |
---|---|
column |
要傳回其唯一值的資料行。或者,傳回資料行的運算式。 |
傳回值
唯一值的資料行。
備註
DISTINCT 的結果會受到目前篩選內容的影響。例如,如果您使用下列範例中的公式來建立量值,每當將資料表篩選為只顯示特定區域或時段時,結果就會變更。如果您不想讓篩選影響清單中的項目,請使用 ALL 函數來移除指定之資料行和資料表中的篩選,如下所示:
=COUNTROWS(DISTINCT(ALL( InternetSales_USD[CustomerKey])))
相關函數
VALUES 函數與 DISTINCT 類似,前者也可以用來傳回唯一值的清單,而且通常會傳回與 DISTINCT 完全相同的結果。不過,在某些內容中,VALUES 會傳回一個額外的特殊值。如需詳細資訊,請參閱<VALUES 函數 (DAX)>。
範例
下列公式計算透過網際網路通路產生訂單之唯一客戶的數目。以下的資料表說明將此公式加入至樞紐分析表時的可能結果。
=COUNTROWS(DISTINCT(InternetSales_USD[CustomerKey]))
請注意,您無法將 DISTINCT 傳回之值的清單直接貼入資料行中。但是您可以將 DISTINCT 函數的結果傳遞給使用清單計算、篩選或彙總值的其他函數。為了讓範例盡可能簡單,此處已將不同值的資料表傳遞給 COUNTROWS 函數。
唯一的網際網路客戶 |
資料行標籤 |
|
|
|
---|---|---|---|---|
資料列標籤 |
Accessories |
Bikes |
Clothing |
Grand Total |
2001 |
|
1013 |
|
1013 |
2002 |
|
2677 |
|
2677 |
2003 |
6792 |
4875 |
2867 |
9309 |
2004 |
9435 |
5451 |
4196 |
11377 |
Grand Total |
15114 |
9132 |
6852 |
18484 |
同時請注意,結果不是累加的。也就是說,在 2003 唯一客戶的總數不是該年 Accessories、Bikes 和 Clothing 之唯一客戶的總和。原因是,在多個群組中都可能會計算到某個客戶。