標題:
[發問]
樞紐-如何隱藏明細及群組
[打印本頁]
作者:
freeffly
時間:
2012-5-16 10:51
標題:
樞紐-如何隱藏明細及群組
我想要對樞紐做兩件事
第一件年月那邊要作群組每3各月作一個群組
第二件科目名稱那邊要做隱藏明細的動作
下面這各程式碼(網路上看到的)比較接近我第二各要的動作
但是我有試著改不知道要怎麼加才能改成我要的
Sub Test()
Application.ScreenUpdating = False
Dim PTItem As PivotItem
For x = 1 To ActiveSheet.PivotTables("樞紐分析表2").PivotFields.Count
With ActiveSheet.PivotTables("樞紐分析表2").PivotFields(x)
For Each PTItem In .PivotItems
PTItem.ShowDetail = True
Next PTItem
End With
Next
End Sub
複製代碼
[attach]10972[/attach]
作者:
hugh0620
時間:
2012-5-16 11:42
回復
1#
freeffly
樞紐是一個統計的工具~
像樓主提出來需求~ 寫VBA比較好還是自行設定會比較快呢~
樞紐操作本身很有彈性~ 若用VBA再去加諸在上面~
反而有可能在修改哪些資料時~ 導致執行錯誤唷~
若是一些制式的樞紐~ 一次性設定好要顯示的結果即可~
再加上一個樞紐自行更新資料VBA~ 就很完美囉~
以上淺見~ 供樓主參考~
作者:
freeffly
時間:
2012-5-16 11:47
回復
2#
hugh0620
大大
我的資料很多
附件只是其中一小部份
而且常要變換資料所以需要vba來幫忙
作者:
hugh0620
時間:
2012-5-16 11:58
本帖最後由 hugh0620 於 2012-5-16 12:30 編輯
回復
3#
freeffly
Dear 樓主~
提供個人的處理方式~ (我還是不會選擇在樞紐上加工~ :lol )
1.在DATA上加一個欄位[季別] 透過函數或是VBA進行加工
函數的寫法 在P欄位加季別
=VALUE(LEFT(C2,3))&IF(AND(VALUE(MID(C2,5,2))>=1,VALUE(MID(C2,5,2))<=3),"1Q","")&IF(AND(VALUE(MID(C2,5,2))>=4,VALUE(MID(C2,5,2))<=6),"2Q","")&IF(AND(VALUE(MID(C2,5,2))>=7,VALUE(MID(C2,5,2))<=9),"3Q","")&IF(AND(VALUE(MID(C2,5,2))>=10,VALUE(MID(C2,5,2))<=12),"4Q","")
2. 在DATA上新增一個欄位 [科目別] 透過函數或是VBA進行加工 隱藏你不需要的資料
3. 再去製作樞紐
一樣可以達到效果
優點:減少了樞紐執行VBA的錯誤機會
缺點: 檔案會變大一些
作者:
freeffly
時間:
2012-5-16 13:06
回復
4#
hugh0620
大大
我的檔案2萬多筆
20幾m了
如果再用輔助欄可能就不妙
還是謝謝你分享
作者:
hugh0620
時間:
2012-5-17 10:28
回復
5#
freeffly
若真的要用vba來設定
有看到樓主提供的檔案~ 有用[錄製巨集]的方式試作~ 基本上程式碼就是那樣~
但要先克服兩個問題~
1. 年月的順序問題~ 因為資料是文字格式~ 所以~ 要三個一個季~
時間的先後順序
將文字拆成數字年與月 再來判斷季
2. 分類 會計科目的分類
將同一個分類的會計科目放在一起~ 在設定分類~
這個要先用手動調整後~ 再設定分類別~
檔案資料大小的問題~ 我有幫你測試過~
你提供的原始檔~ 我加到30000筆~ 6.77MB
用vba判斷兩欄的資料~ 7.18MB
增加的檔案大小並不大~
檔案太大的原因~ 有可能~ data本身的資料就很大 或是 data中串了很多公式
轉個彎~ 能快速將資料處理好~ 達到所現在需要的結果~
黑貓白貓~ 抓到老鼠的就是好貓唷~~~ ^^
作者:
freeffly
時間:
2012-5-17 10:43
回復
6#
hugh0620
沒公式
因為還有其他樞紐
目前資料38000筆
如果砍剩一個樞紐含資料來源也砍掉
就剩8M
這各應該是最精簡的情況下
想要知道這方面的vba是因為常做這類的資料
有時候是新檔不是舊資料擴充
每次手動挺煩的
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)