1. 程式人生 > >Pivot Table系列之切片器

Pivot Table系列之切片器

1. 遇到的問題:

在Excel中,用PivotTable來做資料報告展示:

問題1:在同一個Sheet頁裡,多個PivotTable如何實現同步重新整理?

問題2:在不同Sheet頁之間,多個PivotTable如何實現同步重新整理?

2. 前提介紹

在同一個Sheet頁裡面,有兩個PivotTable,資料來源在同一個模型中,維度相同,由於種種原因(不同的度量值等等,在這裡不再深究為什麼分開,只談分開之後如何處理),需要分開兩個PivotTable顯示。

3. 資料解釋

如上圖所示,例如第一個PivotTable的資料是每個月的實際發生資料,每個月會儲存一版月度最終版本資料;第二個PivotTable是全年的預測資料。

4. 需求

需要檢視不同版本的實際月份時,在同一年全年預測資料不變的;同時切換到不同年份的資料版本時,第二個PivotTable的年度預測資料需要隨之顯示成當前年的預測資料。

5. 問題現象

如上圖所示,當使用過濾器(Filter)進行資料版本切換時,第二個PivotTable是沒有隨之發生聯動的;也就是說第一個PivotTable的過濾器的作用域只是自己的PivotTable。

6. 解決辦法

使用切片器(Slicer)進行同步重新整理多個PivotTable

1)      切片器位置

ANALYZE 選項卡中,Filter組中。

 

2)      點選【Insert Slicer】來插入一個切片器

3)      在彈出的視窗中,會顯示當前資料集使用的維度和事實;也可以點選[全部]來切換到全部的維度和事實。

在這裡,我們選擇使用DIM_MONTH_VERSION來作為切片器的篩選條件。

 

 

4)      點選OK,切片器建立成功

注:

黑色維度:表示在事實表中存在此維度資料,如201512、201608、201612;

同理,灰色維度:表示在事實表中不存在此維度資料,如201501等等。

 

5)      建立成功之後,依然發現兩個PivotTable沒有同步資料。

第二個PivotTable的MONTH_KEY篩選器還是All.

 

6)      此時,我們需要對切片器的作用域進行設定。因為在建立切片器時,選中了其中的一個PivotTable,所以預設的作用域就是當前PivotTable。

在切片器上,點選滑鼠右鍵,選擇【Report Connections…】

 

7)      會發現在當前Sheet2頁中,只有PivotTable1 (第一個PivotTable)被選中了。為了把PivotTable2加入到切片器的作用域中,把PivotTable2也選中;然後OK。

 

 

8)      然後,我們看到第二個PivotTable的MONTH_KEY的Filter值也變成了201512。

 

這裡並不是手動在第二個PivotTable選擇MONTH_KEY的結果;為了澄清結果,把兩個PivotTable的MONTH_KEY的Filter去掉

 

點選切片器,切換到201608資料版本。

 

9)      同理,可以設定多個PivotTable資料同步,即使不在一個Sheet頁裡面,也是可以設定生效的,因為在切片器的Report Connections屬性卡里面列出來當前Excel檔案所有的PivotTable.

 

7. 切片器其他屬性介紹

在切片器的右鍵屬性中

 

1)      重新整理(Refresh)


重新整理切片器和切片器作用域內所有PivotTable。

重新整理切片器的意思是:如果在事實表中插入了201501版本的資料,那麼點選重新整理之後,會在切片器中把201501顯示成黑色,來表示事實表中事實資料存在;即使只有一個事實表中存在,也會表示出來。

2)      排序功能

 

從小到大,從大到小,按照資料來源順序。比較簡單,可以點選看不同結果。

3)      清空篩選條件…(Clear Filter from…)

  

會選中所有切片器中維度的所有資料。然後變灰,如果想再次選擇資料版本,只需點選切片器資料版本即可。

 

4)      報表連線…(Report Connections…)

  

如上示例所示,對當前Excel檔案的所有PivotTable的設定切片器的作用域。

5)      移除…(Remove…)

  

即刪除當前切片器

6)      組合(Group)

如果有多個切片器,可以對某幾個或者全部切片器,進行組合,以方便顯示和拖拽。

 

7)      前置顯示/後置顯示(Bring to Front/Send to Back/)

設定切片器顯示的層次。

8)      指定巨集…(Assign Macro..)

  

關聯VBA指令碼,來設定點選切片器或者切片器發生變化時,需要觸發的事件;處理的邏輯需要在VBA中開發完成。

9)      尺寸和屬性(Size and Property…)

  

根據需要設定佈局位置的外觀。

10)   切片器設定(Slicer Setting)

  

  

  • 名稱(Name): 給切片器命名。在檔案中存在多個切片器時,可以以名字來區分。
  • 顯示頭部(Display header):是否顯示切片器表頭。

   不顯示

   

         顯示

           

  • 標題(Caption)

表頭位置顯示的標題內容。方便使用者理解。

例如:以上示例中,可以命名成Month Version

 

  • 排序(Item Sorting)

同排序功能

  • 顯示篩選(Item Filtering)

是否需要隱藏沒有資料的維度

例如:

  • 如果選擇隱藏沒有資料的維度

   

  灰色維度資料即不顯示

   

  • 如果選擇顯示沒有資料的維度

直觀顯示沒有資料的維度(Visually indicate items with no data)和在最後顯示沒有資料的維度(Show item with no data last)是預設選擇的。

實際顯示效果,可以嘗試取消選擇進行測試。

 

8. 使用注意

1)      切片器就是一個特殊的篩選器,能擴大篩選器的作用域

2)      如果把切片器和篩選器同時設定,它們之間的是一致的。