Share via


ALLEXCEPT 函數 (DAX)

除了指定的資料行已套用的篩選之外,移除資料表中的所有內容篩選。

語法

ALLEXCEPT(<table>,<column>[,<column>[,…]])

參數

詞彙

定義

table

除了後續引數指定之資料行的篩選之外,要從中移除所有內容篩選的資料表。

column

必須保留內容篩選的資料行。

ALLEXCEPT 函數的第一個引數必須是基底資料表的參考;所有後續引數都必須是基底資料行的參考。您無法搭配 ALLEXCEPT 函數使用資料表運算式或資料行運算式。

傳回值

除了指定之資料行的篩選,移除所有篩選的資料表。

備註

此函數本身無法單獨使用,而是當做中繼函數,可以用來變更執行其他特定計算所得的一組結果。

如下表所述,您可以在幾種不同情況下使用 ALL 和 ALLEXCEPT 函數。

函數和用法

描述

ALL(Table)

從指定的資料表移除所有篩選。實際上,ALL(Table) 會傳回資料表中所有的值,而移除可能已套用之內容中的所有篩選。

當您要處理許多群組層級,而且想要建立的計算會計算彙總值對總值的比率時,此函數相當實用。

ALL (Column[, Column[, …]])

從資料表中指定的資料行移除所有篩選;資料表中其餘資料行的所有其他篩選仍然會套用。所有的資料行引數必須來自同一個資料表。

當您想要移除一個或多個特定資料行的內容篩選,並保留其餘所有內容篩選時,ALL(Column) 的各種變化相當實用。

ALLEXCEPT(Table, Column1 [,Column2]...)

除了指定的資料行已套用的篩選之外,移除資料表中的所有內容篩選。

當您想要移除資料表中多數 (但不是全部) 資料行的篩選時,這種方法提供了一個便捷的途徑。

範例

下列範例所呈現的公式可以應用於量值。如需如何建立量值的詳細資訊,請參閱<在樞紐分析表或樞紐分析圖中建立量值>。

此公式會加總 SalesAmount_USD,並使用 ALLEXCEPT 函數移除 DateTime 資料表的所有內容篩選,但不包括除已經套用至 CalendarYear 資料行的篩選。

[!附註]

上述範例使用來自 DAX 範例活頁簿的資料表 ResellerSales_USD 和 DateTime。如需各範例的詳細資訊,請參閱<取得 PowerPivot 的範例資料>。

=CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), ALLEXCEPT(DateTime, DateTime[CalendarYear]))

公式使用了 ALLEXCEPT,因而每當 DateTime 資料表中 CalendarYear 除外的任何資料行用來配量樞紐分析表時,公式將會移除所有交叉分析篩選器,為資料行標籤值提供一個等於 SalesAmount_USD 總和的值,如表 1 所示。

不過,若是使用 CalendarYear 資料行來配量樞紐分析表,結果就不同。由於 CalendarYear 指定為 ALLEXCEPT 的引數,以致當針對年份配量資料時,將會在資料列層級對年份套用篩選,如表 2 所示。建議使用者比較這兩個資料表以了解 ALLEXCEPT() 的行為。