ALL

適用於:導出數據行計算數據表Measure視覺計算

傳回 all 數據表中的數據列,orall 數據行中的 values,忽略可能已套用的任何 filters。 此函式可用於清除 filtersand 在數據表中的數據列 all 建立計算。

語法

ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )  

參數

術語 定義
table 您要清除 filters 的數據表。
column 您要清除 filters 的資料行。

ALL 函式的自變數必須是基表的參考,or 基底數據行的參考。 您無法使用資料表運算式,or 數據行表示式搭配 ALL 函式。

傳回 value

已移除 filters 的數據表 or 數據行。

言論

  • 此函式本身會 not 使用,但做為中繼函式,可用來變更執行某些其他計算的結果集。

  • 包含 ALL() 函式之 DAX 表示式的一般行為是,將會忽略套用的任何 filters。 不過,有一些案例 not 這種情況,因為 auto-exist,這是 DAX 技術,可將篩選優化,以減少特定 DAX 查詢所需的處理量。 自動存在 andALL() 提供非預期結果的範例,是在篩選同一個數據表的兩個 or 個數據行時(例如使用交叉分析篩選器時),and 同一個數據表上有一個使用 ALL() 的 measure。 在此情況下,自動存在 合併 多個 filters 合併成一個 and 只會 filter 現有的 values組合。 由於此合併,measure 會根據篩選 valuesandvalues 來計算結果的現有組合,而不是如預期般 allvalues。 若要深入了解自動存在 and 其計算 effect,請參閱Microsoft MVP Alberto Ferrari 的 瞭解 DAX 自動存在 文章 sql.bi.com。

  • 下表說明如何在不同的案例中使用 ALLandALLEXCEPT 函式。

    函式 and 使用方式 描述
    ALL() 在任何地方移除 allfilters。 ALL() 只能用來清除 filters,但 not 傳回數據表。
    ALL(表格) 從指定的數據表中移除 allfilters。 在 effect中,ALL(Table) 會傳回數據表中 valuesall,從可能已套用的內容中移除任何 filters。 當您使用許多群組層級時,此函式很有用,and 想要建立計算,以建立匯總 value 與總 value的比例。 first 範例示範此案例。
    ALL (Column[, Column[, ...]]]) 從數據表中指定的數據行中移除 allfilters;all 數據表中其他數據行的其他 filters 仍適用。 All 數據行自變數必須來自相同的數據表。 當您要移除 or 更特定資料行的內容 filters 時,ALL(Column) 變體很有用,and 保留 all 其他內容 filters。 第三個範例 secondand 示範此案例。
    ALLEXCEPT(Table, Column1 [,Column2]...) 拿掉套用至指定資料列之資料表 exceptfilters 中 all 內容 filters。 對於您想要移除許多數據表中 filters 但 notall數據行的情況,這是一個方便的快捷方式。
  • 在匯出數據行中使用 or 數據列層級安全性 (RLS) 規則時,支援此函式 not 用於 DirectQuery 模式。

範例 1

類別銷售與總銷售額的 Calculate 比率

假設您想要 find 數據透視表中目前儲存格的銷售量除以 all 轉銷商的總銷售額。 為了確保分母是相同的,不論數據透視表使用者如何篩選 or 分組數據,您 define 使用 ALL 來建立正確的總計公式。

下表顯示使用程式代碼區段中所示公式建立新的 measure、All 轉銷商銷售比率時的結果。 若要查看運作方式,請將字段 CalendarYear 新增至數據透視表的 列卷標 區域,and 將字段 ProductCategoryName 新增至 數據行卷標 區域。 然後,將 measure、All 轉銷商銷售比率拖曳至數據透視表的 Values 區域。 若要將結果檢視為百分比,請使用 Excel 的格式設定功能,將百分比數位格式套用至 measurecontains 單元格。

數據列標籤 輔料 自行車 服裝 元件 總計
2005 0.02% 9.10% 0.04% 0.75% 9.91%
2006 0.11% 24.71% 0.60% 4.48% 29.90%
2007 0.36% 31.71% 1.07% 6.79% 39.93%
2008 0.20% 16.95% 0.48% 2.63% 20.26%
總計 0.70% 82.47% 2.18% 14.65% 100.00%

公式

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  

公式的建構方式如下:

  1. numerator SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])是數據透視表中目前單元格之ResellerSales_USD[SalesAmount_USD] 中 values 的 sum,在 CalendarYear and ProductCategoryName 上套用內容 filters。

  2. 針對分母,您一開始會指定數據表ResellerSales_USD,and 使用 ALL 函式來移除數據表上的 all 內容 filters。

  3. 然後使用 SUMX 函式,在 [ResellerSales_USD[SalesAmount_USD] 數據行中 sumvalues。 換句話說,您會取得 all 轉銷商銷售ResellerSales_USD[SalesAmount_USD] 的 sum。

範例 2

透過目前 Year,Product 銷售額與總銷售額的 Calculate 比率

假設您想要建立數據表,其中顯示每個 product 類別 (ProductCategoryName) 多年來比較的銷售百分比。 若要取得 ProductCategoryName 每個 value 之每個 year 的百分比,您必須依 all 年相同 product 類別的銷售額 sum,divide 該特定 yearandproduct 類別的銷售 sum。 換句話說,您想要在 ProductCategoryName 上保留 filter,但在計算百分比分母時,移除 year 上的 filter。

下表顯示使用程式代碼區段中所示的公式建立新的 measure時,Reseller Sales Year的結果。 若要查看運作方式,請將字段 CalendarYear 新增至數據透視表 數據列卷標區域, 將字段 ProductCategoryName 新增至 數據行卷標 區域。 若要將結果檢視為百分比,請使用 Excel 的格式設定功能,將百分比數 format 套用至包含 measure的單元格,轉銷商銷售 Year

數據列標籤 輔料 自行車 服裝 元件 總計
2005 3.48% 11.03% 1.91% 5.12% 9.91%
2006 16.21% 29.96% 27.29% 30.59% 29.90%
2007 51.62% 38.45% 48.86% 46.36% 39.93%
2008 28.69% 20.56% 21.95% 17.92% 20.26%
總計 100.00% 100.00% 100.00% 100.00% 100.00%

公式

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear]))  

公式的建構方式如下:

  1. numerator SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])是數據透視表中目前數據格中ResellerSales_USD[SalesAmount_USD] 中 values 的 sum,內容 filters 套用至 CalendarYear and ProductCategoryName 數據行。

  2. 針對分母,您可以使用 ALL(Column) 函式,移除 CalendarYear 上現有的 filter。 這會從數據行標籤用現有的內容 filters 之後,計算ResellerSales_USD數據表上剩餘數據列的 sum。 net effect 是,針對分母,sum 會透過選取的 ProductCategoryName(隱含內容 filter)計算,Year中 allvalues 的隱含內容 and。

範例 3

Calculate 每個 YearProduct 類別對總銷售額的貢獻

假設您想要建立數據表,以 yearyear 為基礎,顯示每個 product 類別的銷售百分比。 若要取得特定 year中每個 product 類別的百分比,您必須在 n year 中 calculate 該特定 product 類別 (ProductCategoryName) 的銷售 sum,and 然後 divideyear n allproduct 類別的銷售 sum 所產生的 value。 換句話說,您想要在 year 上保留 filter,但在計算百分比分母時移除 ProductCategoryName 上的 filter。

下表顯示當新的 measure、Reseller Sales CategoryName時,使用程式碼區段中所示的公式來建立結果。 若要查看運作方式,請將 [CalendarYear] 字段新增至數據透視表的 [列卷標] 區域,and 將欄位 ProductCategoryName 新增至 數據行卷標 區域。 然後將新的 measure 新增至數據透視表的 Values 區域。 若要以百分比檢視結果,請使用 Excel 的格式設定功能,將百分比數位 format 套用至包含新 measure的單元格,Reseller Sales CategoryName

數據列標籤 輔料 自行車 服裝 元件 總計
2005 0.25% 91.76% 0.42% 7.57% 100.00%
2006 0.38% 82.64% 1.99% 14.99% 100.00%
2007 0.90% 79.42% 2.67% 17.01% 100.00%
2008 0.99% 83.69% 2.37% 12.96% 100.00%
總計 0.70% 82.47% 2.18% 14.65% 100.00%

公式

= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName]))  

公式的建構方式如下:

  1. numerator SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])是數據透視表中目前單元格ResellerSales_USD[SalesAmount_USD] 中 values 的 sum,內容 filters 套用至欄位 CalendarYear and ProductCategoryName。

  2. 針對分母,您可以使用 function ALL(Column),在從數據列卷標套用現有的內容 filters 之後,在ResellerSales_USD數據表上的其餘數據列上,andcalculate productCategoryName 上的 filter 移除 sum。 net effect 是,針對分母,sum 會計算在 ProductCategoryName allvalues 選取的 Year(隱含內容 filter) and。

Filter 函式
ALL 函式
ALLEXCEPT 函式
FILTER 函式