共用方式為


ALL 函數

傳回資料表的所有資料列,或資料行的所有值,忽略可能已套用的任何篩選。 此函數對於清除篩選與建立資料表中所有資料列的計算相當實用。

語法

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

參數

詞彙

定義

table

您要清除其篩選的資料表。

column

您要清除其篩選的資料行。

ALL 函數的引數必須是基底資料表的參考或基底資料行的參考。 您無法搭配 ALL 函數使用資料表運算式或資料行運算式。

傳回值

移除篩選的資料表或資料行。

備註

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

<主題狀態>:本主題的部分資訊是發行前的內容,在未來的版本中可能有所變更。發行前資訊會描述 Microsoft SQL Server 2012 Service Pack 1 (SP1) Community Technology Preview 4 (CTP4) 中的新功能或現有功能的變更。 如果使用標記為日期資料表,將 [資料行] 標示為日期資料行

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

函數和用法

說明

ALL(Table)

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

當您要處理許多群組層級,而且想要建立的計算會計算彙總值對總值的比率時,此函數相當實用。 第一個範例會示範這種情況。

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

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

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

第二個和第三個範例會示範這種情況。

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

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

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

範例:計算分類銷售額佔總銷售額的比率

說明

假設您想要查出樞紐分析表中,目前資料格的銷售額除以所有轉售商之總銷售額的值。 為確保無論樞紐分析表使用者是篩選還是群組資料,分母都會相同,您要定義使用 ALL 的公式來建立正確的總計。

下表顯示使用<程式碼>一節所示的公式,建立名稱為 All Reseller Sales Ratio 的新量值時的結果。 若要查看其運作方式,請將 CalendarYear 欄位加入至樞紐分析表的 [資料列標籤] 區域,然後將 ProductCategoryName 欄位加入至 [資料行標籤] 區域。 接著,將量值 All Reseller Sales Ratio 拖曳到樞紐分析表的 [值] 區域。 為了檢視以百分比表示的結果,請利用 Excel 的格式化功能,將百分比數字格式套用到包含此量值的資料格。

All Reseller Sales

資料行標籤

 

 

 

 

Row Labels

Accessories

Bikes

Clothing

Components

Grand Total

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%

Grand Total

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. 分子 SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]) 是在 CalendarYear 和 ProductCategoryName 上套用內容篩選之後,樞紐分析表中目前資料格之 ResellerSales_USD[SalesAmount_USD] 的值總和。

  2. 對於分母,您首先要指定 ResellerSales_USD 資料表,然後使用 ALL 函數來移除該資料表上的所有內容篩選。

  3. 接著,您要使用 SUMX 函數加總 ResellerSales_USD[SalesAmount_USD] 資料行中的值。 換句話說,您要取得所有轉售商銷售額之 ResellerSales_USD[SalesAmount_USD] 的總和。

如需建立量值的詳細資訊,請參閱<在樞紐分析表或樞紐分析圖中建立量值>。

[!附註]

上述範例使用來自 DAX 範例活頁簿的資料表 ResellerSales_USD、DateTime 和 ProductCategory。 如需有關範例的詳細資訊,請參閱取得範例資料

範例:計算目前一整年產品銷售額佔總銷售額的比率

說明

假設您想要建立一個資料表,以顯示每個產品分類 (ProductCategoryName) 逐年銷售額百分比的比較。 為了取得每一年個別 ProductCategoryName 值的百分比,您需要將各產品分類在該特定年度的銷售額總和除以全部年度相同產品分類之銷售額的總和。 換句話說,在計算百分比的分母時,您想要保留 ProductCategoryName 的篩選,但移除各年度的篩選。

下表顯示使用<程式碼>一節所示的公式,建立名稱為 Reseller Sales Year 的新量值時的結果。 若要查看其運作方式,請將 CalendarYear 欄位加入至樞紐分析表的 [資料列標籤] 區域,然後將 ProductCategoryName 欄位加入至 [資料行標籤] 區域。 為了檢視以百分比表示的結果,請利用 Excel 的格式化功能,將百分比數字格式套用到包含量值 Reseller Sales Year 的資料格。

Reseller Sales Year

資料行標籤

 

 

 

 

Row Labels

Accessories

Bikes

Clothing

Components

Grand Total

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%

Grand Total

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. 分子 SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]) 是在資料行 CalendarYear 和 ProductCategoryName 上套用內容篩選之後,樞紐分析表中目前資料格之 ResellerSales_USD[SalesAmount_USD] 的值總和。

  2. 對於分母,您要使用 ALL(Column) 函數來移除 CalendarYear 上現有的內容篩選。 這樣即是在套用來自資料行標籤的現有內容篩選之後,計算 ResellerSales_USD 資料表上其餘資料列的總和。 就分母而言的實質效果是,針對選取的 ProductCategoryName (隱含的內容篩選) 計算逐年所有值的總和。

如需建立量值的詳細資訊,請參閱<在樞紐分析表或樞紐分析圖中建立量值>。

[!附註]

此範例使用來自 DAX 範例活頁簿的資料表 ResellerSales_USD、DateTime 和 ProductCategory。 如需有關範例的詳細資訊,請參閱取得範例資料

範例:計算每一年各產品分類佔總銷售額的比重

說明

假設您想要建立一個資料表,以顯示每個產品分類每一年的銷售額百分比。 為了取得個別產品分類在某特定年度的百分比,您需要計算該特定產品分類 (ProductCategoryName) 在 n 年度的銷售額總和,然後將求出的值除以 n 年度所有產品分類的銷售額總和。 換句話說,在計算百分比的分母時,您想要保留各年度的篩選,但移除 ProductCategoryName 的篩選。

下表顯示使用<程式碼>一節所示的公式,建立名稱為 Reseller Sales CategoryName 的新量值時的結果。 若要查看其運作方式,請將 CalendarYear 欄位加入至樞紐分析表的 [資料列標籤] 區域,然後將 ProductCategoryName 欄位加入至 [資料行標籤] 區域。 接著,將新量值加入至樞紐分析表的 [值] 區域。 為了檢視以百分比表示的結果,請利用 Excel 的格式化功能,將百分比數字格式套用到包含新量值 Reseller Sales CategoryName 的資料格。

Reseller Sales CategoryName

資料行標籤

 

 

 

 

Row Labels

Accessories

Bikes

Clothing

Components

Grand Total

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%

Grand Total

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. 分子 SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD]) 是在 CalendarYear 和 ProductCategoryName 欄位上套用內容篩選之後,樞紐分析表中目前資料格之 ResellerSales_USD[SalesAmount_USD] 的值總和。

  2. 對於分母,您要使用 All(Column) 函數來移除 ProductCategoryName 上的篩選,從而在套用來自資料列標籤的現有內容篩選之後,計算 ResellerSales_USD 資料表上其餘資料列的總和。 就分母而言的實質效果是,針對選取的年度 (隱含的內容篩選) 計算所有 ProductCategoryName 值的總和。

如需建立量值的詳細資訊,請參閱<在樞紐分析表或樞紐分析圖中建立量值>。

[!附註]

此範例使用來自 DAX 範例活頁簿的資料表 ResellerSales_USD、DateTime 和 ProductCategory。 如需有關範例的詳細資訊,請參閱取得範例資料

請參閱

參考

ALL 函數

ALLEXCEPT 函數

FILTER 函數

其他資源

篩選函數 (DAX)