ALLEXCEPT
拿掉資料表中的所有內容篩選,但已套用至指定資料行的篩選條件除外。
語法
ALLEXCEPT(<table>,<column>[,<column>[,…]])
參數
術語 | 定義 |
---|---|
table |
拿掉所有內容篩選的數據表,但後續自變數中所指定之數據行的篩選除外。 |
column |
必須保留內容篩選的數據行。 |
ALLEXCEPT 函式的第一個自變數必須是基表的參考。 所有後續自變數都必須是基底數據行的參考。 您無法搭配 ALLEXCEPT 函數使用資料表運算式或數據行表達式。
傳回值
已移除所有篩選的數據表,但指定數據行上的篩選除外。
言論
此函式本身不會使用,而是做為中繼函式,可用來變更執行其他計算的結果集。
ALL 和 ALLEXCEPT 可用於不同的案例:
函式和使用方式 描述 ALL(表格) 從指定的數據表中移除所有篩選。 實際上,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的自變數,因此當數據在年份上交叉分析時,會在數據列層級的年份套用篩選