舉個工作例子,下面表格是銷售流水數據:
![](http://image.uc.cn/s/wemedia/s/upload/2024/714061437ec3d7269318779888e03be6.png)
現在我們對表格使用了插入,數據透視表
將商品字段放在行標簽,將數量和金額放在值,得到了一個商品彙總的數據:
![](http://image.uc.cn/s/wemedia/s/upload/2024/4a47f7e5a6297f18e44d17cebe6f0181.png)
現在有個需求,就是當我們更新源數據表的時候,這個數據透視表也希望能夠更新
![](http://image.uc.cn/s/wemedia/s/upload/2024/1d73b84439e626cfac58a0cc2f1a3f99.png)
我們選中數據透視表,然後在分析選項下,點擊刷新(快捷鍵是ALT+F5)進行快速的更新
![](http://image.uc.cn/s/wemedia/s/upload/2024/e6383ca484917715372e309880762429.jpg)
但是,這種方法,只限于修改原始數據,如果我們新增了數據,它並不能更新:
比如我們新增了一條數據,點擊刷新,它也並不能更新
![](http://image.uc.cn/s/wemedia/s/upload/2024/0d21fbb8aa225ea8dc69d299c8890f38.png)
如果我們有新增數據的需求,那我們在創建數據透視表第一步的時候,數據區域可以選擇整列的區域A:D列
如果已經創建完了,我們可以點擊更改數據源,然後將表或區域修改成A:D列的數據
![](http://image.uc.cn/s/wemedia/s/upload/2024/0bfecfe410af0dabb4ebe1191c821d56.png)
但是這種方式,選取的數據源裏面有空白值,所以透視出來的結果,也會有一個空白行。
如果我們不希望透視表的結果有空白行
我們可以選中原始數據,按CTRL+T,轉成智能表格:
![](http://image.uc.cn/s/wemedia/s/upload/2024/bc96024977d2403e88488bd7edb78f5b.jpg)
然後我們在修改數據源的時候,選中數據區域,它就會自動的變成表1,也就是超級表的數據區域
![](http://image.uc.cn/s/wemedia/s/upload/2024/67f3ce09651160469934ac984ce70ec9.png)
這樣即可以沒有了空白項,左邊有數據新增的時候,我們ALT+F5刷新,也能更新結果
![](http://image.uc.cn/s/wemedia/s/upload/2024/9c67c55c81984971e675b944666de2f5.png)
如果我們不想手動的去按快捷鍵或點擊更新,數據改變的時候,想讓它就自動更新
那我們可以按ALT+F11,調出開發工具VBA
我們選擇對應的SHEET1表格
然後選擇worksheet的Selectionchange事件
然後輸入一行代碼:
ActiveSheet.PivotTables("數據透視表1").PivotCache.Refresh
![](http://image.uc.cn/s/wemedia/s/upload/2024/90df22c3b6d9ffa1814bc1520f5ea2c7.png)
注意這裏的透視表名字,要和對應透視表裏面右鍵屬性查看的名稱對應上
![](http://image.uc.cn/s/wemedia/s/upload/2024/2fce06097e87125ecdbc4d0dfa813612.png)
這樣我們更新完數據,不用點刷新,它也能自動的更新了,
![](http://image.uc.cn/s/wemedia/s/upload/2024/35634275ee72f47ad04eb33e38d6fe74.gif)
因爲用到了VBA代碼
所以這個工作簿要另存爲XLSM格式
你學會了麽?動手試試吧!