ALLEXCEPT
除了已套用至指定資料行的篩選條件之外,會移除資料表中的所有內容篩選條件。
語法
ALLEXCEPT(<table>,<column>[,<column>[,…]])
參數
詞彙 | [定義] |
---|---|
table | 所有內容篩選條件的資料表都已移除,但在後續引數中指定的資料行篩選條件除外。 |
column | 內容篩選條件的資料行都必須保留。 |
ALLEXCEPT 函式的第一個引數必須是基底資料表的參考。 所有後續引數都必須是基底資料行的參考。 您無法將 ALLEXCEPT 函式與資料表運算式或資料行運算式搭配使用。
傳回值
除了所指定資料行上的篩選條件之外,已移除所有篩選條件的資料表。
備註
此函式不會單獨使用,而是作為中繼函式,其可用來變更執行其他計算的結果集。
ALL 和 ALLEXCEPT 可用於不同的案例:
函式和使用方式 描述 ALL(Table) 從指定的資料表移除所有篩選條件。 實際上,ALL(Table) 會傳回資料表中的所有值,並移除可能已套用內容中的所有篩選條件。 當您使用許多層級的群組,且想要建立計算來建立彙總值與總值的比例時,此函式會很有用。 ALL (Column[, Column[, …]]) 從資料表中指定的資料行移除所有篩選條件;資料表中其他資料行的所有其他篩選條件仍適用。 所有資料行引數都必須來自相同的資料表。 當您想要移除一或多個特定資料行的內容篩選條件,並保留所有其他內容篩選時,ALL(Column) 變體很有用。 ALLEXCEPT(Table, Column1 [,Column2]...) 除了套用至指定資料行的篩選條件之外,會移除資料表中的所有內容篩選條件。 如果您想要移除資料表中多個 (但非全部) 資料行的篩選條件,則這是一個方便的快捷方式。 在計算結果欄或資料列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。
範例
下列量值公式會加總 SalesAmount_USD 並使用 ALLEXCEPT 函式來移除 DateTime 資料表上的任何內容篩選條件,但如果篩選條件已套用至 CalendarYear 資料行則例外。
= CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), ALLEXCEPT(DateTime, DateTime[CalendarYear]))
由於公式使用 ALLEXCEPT,因此每當資料表 DateTime 中的任何資料行 (CalendarYear除外) 用來切割視覺效果時,公式會移除任何交叉分析篩選器,並提供一個等於 SalesAmount_USD 總和的值。 不過,如果資料行 CalendarYear 是用來切割視覺效果,則結果會不同。 由於將 CalendarYear 指定為 ALLEXCEPT 的引數,因此當資料在一年中切割時,篩選條件將會套用至資料列層級的年度