HASONEVALUE 函數 (DAX)
當 columnName 的內容已經向下篩選至只有單一相異值時,則傳回 TRUE, 否則為 FALSE。
語法
HASONEVALUE(<columnName>)
參數
- columnName
使用標準 DAX 語法之現有資料行的名稱。 它不能是運算式。
傳回值
當 columnName 的內容已經向下篩選至只有單一相異值時,則為 TRUE, 否則為 FALSE。
備註
- HASONEVALUE() 的對等運算式為 COUNTROWS(VALUES(<columnName>)) = 1。
範例
在下列範例中,您想要建立一個確認內容是否依照單一值分割的公式,以便針對預先定義的案例估計百分比。在本例中,您想要針對 2007 年的銷售量比較轉售商銷售,然後您需要知道內容是否依照單一年份篩選。 此外,如果比較沒有意義,您想要傳回 BLANK。
如果您想要遵循此案例,可以從 PowerPivot 範例資料試算表下載含有此模型的試算表。
使用下列運算式,建立名為 [ResellerSales compared to 2007] 的量值:
=IF(HASONEVALUE(DateTime[CalendarYear]),SUM(ResellerSales_USD[SalesAmount_USD])/CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]),DateTime[CalendarYear]=2007),BLANK())
建立此量值之後,您應該會在 [ResellerSales compared to 2007] 底下看見空白結果,如下所示:
ResellerSales compared to 2007
結果出現 BLANK 資料格的原因是,您的內容完全沒有單一年份篩選。
將 DateTime[CalendarYear] 拖曳至 [資料行標籤] 方塊。此時,資料表看起來應該像這樣:
資料行標籤
2005
2006
2007
2008
ResellerSales compared to 2007
24.83 %
74.88 %
100.00 %
50.73 %
將 ProductCategory[ProductCategoryName] 拖曳至 [資料列標籤] 方塊,就會產生類似下面的內容:
ResellerSales compared to 2007
資料行標籤
資料列標籤
2005
2006
2007
2008
Accessories
6.74 %
31.40 %
100.00 %
55.58 %
Bikes
28.69 %
77.92 %
100.00 %
53.46 %
Clothing
3.90 %
55.86 %
100.00 %
44.92 %
Components
11.05 %
65.99 %
100.00 %
38.65 %
總計
24.83 %
74.88 %
100.00 %
50.73 %
您是否注意到 [總計] 出現在資料行底部而非資料列底部? 這是因為資料列上 [總計] 的內容表示多個年份,但對於資料行而言,則表示單一年份。
將 DateTime[CalendarYear] 拖曳至 [水平交叉分析篩選器] 方塊,而將 SalesTerritory[SalesTerritoryGroup] 拖曳至 [水平標籤] 方塊。 您應該會看見空白結果集,因為資料表包含多個年份的資料。 請在交叉分析篩選器中選取 2006,此時資料表應該會再次顯示資料。 請嘗試其他年份,以便查看結果如何變更。
總之,HASONEVALUE() 可讓您識別運算式是否在 columnName 單一值的內容中評估。