最近發(fā)現(xiàn)有好多小伙伴都在問怎么將一個表快速地拆分成多個。其實這個操作起來非常簡單,只需要用數(shù)據(jù)透視表的“顯示報表篩選頁”就可以快速完成,這是最簡單、高效的方法??吹竭@里有小伙伴肯定要點“返回”按鈕了,因為已經(jīng)掌握了嘛!不過呢,你要是覺得李老師也是“普通青年”,那你就錯了,不看到最后你永遠(yuǎn)不知道你會得到什么!阿甘有句著名的哲言,一起欣賞一下。 Life is like a box of chocolates, you never know what you are gonna get. 如下是一份數(shù)據(jù)表,我們需要按照產(chǎn)品,把對應(yīng)的數(shù)據(jù)顯示到不同的工作表中。 我們還是先講一下用數(shù)據(jù)透視表怎么分頁吧。 Step 1、插入數(shù)據(jù)透視表 插入數(shù)據(jù)透視表,將“產(chǎn)品”字段放到“篩選”區(qū)域,將其他所有需要的字段都放到“行”區(qū)域,如果是數(shù)值型字段,也可以放到“值”區(qū)域。 2、顯示報表篩選頁 選中數(shù)據(jù)透視表上任意一個單元格,點擊【分析】選項卡,在“數(shù)據(jù)透視表”的“選項”下拉菜單中點擊“顯示報表篩選頁”。 在彈出的對話框中選中需要按照哪個字段拆分。如果在“篩選”區(qū)域添加了多個字段,這里都會列出來,我們只要選中拆分依據(jù)的那個字段就可以了。 咻咻咻~幾秒鐘就可以創(chuàng)建數(shù)個工作表,并且每個工作表里面顯示的內(nèi)容和工作表標(biāo)簽指示的內(nèi)容是一致的。也就是說,每個數(shù)據(jù)透視表都做好了篩選來顯示不同的內(nèi)容。 是不是超級簡單? 說實話,對有些同學(xué)來講,這個可能還不夠完美,這是因為
搬過來小板凳,坐好了,李老師開始放大招了~ 下面我們用VBA結(jié)合SQL查詢的方式來實現(xiàn)拆分。 兩種方法,你喜歡哪一種? 還有的小伙伴會用字典的方法實現(xiàn)拆分。但是我用之前文章中提到的超過20萬行的數(shù)據(jù)來拆分,使用VBA SQL法不用一分鐘就搞定,使用VBA代碼法則估計要花費幾十分鐘才可以。我測試了一下,過了二十幾分鐘,字典法才運行到57000多行。不是因為我的電腦慢哦,Intel的4核I7處理器,8G內(nèi)存,所以不是電腦的事兒,應(yīng)該是代碼的效率問題。如果實際應(yīng)用中的數(shù)據(jù)沒有這么多,也可以考慮字典法。 字典方法的實現(xiàn)思路 1、用循環(huán)檢查分類字段中的項是否在字典中存在,如果不存在該項就添加新項目,值等于該行單元格區(qū)域(作為對象來賦值);如果存在該項就用Union方法聯(lián)合該項對象和新的單元格區(qū)域。 2、遍歷字典,循環(huán)創(chuàng)建工作表,將字典內(nèi)容輸出到新工作表中。 附字典法的代碼,供學(xué)習(xí)參考。 另外,如果你想把拆分后的每個工作表單獨保存為一個工作簿文件,請參考以下內(nèi)容。 --End-- |
|