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())
  1. 建立此量值之後,您應該會在 [ResellerSales compared to 2007] 底下看見空白結果,如下所示:

    ResellerSales compared to 2007

    結果出現 BLANK 資料格的原因是,您的內容完全沒有單一年份篩選。

  2. 將 DateTime[CalendarYear] 拖曳至 [資料行標籤] 方塊。此時,資料表看起來應該像這樣:

    資料行標籤

    2005

    2006

    2007

    2008

    ResellerSales compared to 2007

    24.83 %

    74.88 %

    100.00 %

    50.73 %

  3. 將 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 %

    您是否注意到 [總計] 出現在資料行底部而非資料列底部? 這是因為資料列上 [總計] 的內容表示多個年份,但對於資料行而言,則表示單一年份。

  4. 將 DateTime[CalendarYear] 拖曳至 [水平交叉分析篩選器] 方塊,而將 SalesTerritory[SalesTerritoryGroup] 拖曳至 [水平標籤] 方塊。 您應該會看見空白結果集,因為資料表包含多個年份的資料。 請在交叉分析篩選器中選取 2006,此時資料表應該會再次顯示資料。 請嘗試其他年份,以便查看結果如何變更。

  5. 總之,HASONEVALUE() 可讓您識別運算式是否在 columnName 單一值的內容中評估。