首頁 >專題 >excel >實用Excel技巧分享:快速分割工作表的兩種方法

實用Excel技巧分享:快速分割工作表的兩種方法

青灯夜游
青灯夜游轉載
2023-01-30 19:38:0510636瀏覽

工作表有總結就有拆分。如何快速拆分工作表呢?這篇文章大家分享效率提升99.99%的快速分割工作表的兩種方法,希望對大家有幫助!

實用Excel技巧分享:快速分割工作表的兩種方法

各位小夥伴有沒有遇過這樣的問題:當我們把所有的資訊匯總在一張表裡後,又需要將這張大表按某一條件再拆分成多個工作表。那要怎麼實現呢?可能最笨的方法就是在原工作表篩選資料然後複製貼上到新工作表,不過這種方法不適合資料多的案例,並且新工作表也需要一一重命名,顯得繁瑣。今天就來跟大家介紹兩種快速又實用的工作表拆分方法。

如圖,現在要把這個工作表的內容按城市拆分成多個工作表。

實用Excel技巧分享:快速分割工作表的兩種方法

第1種:極速分割-VBA(文中提供有程式碼)

    VBA是EXCEL處理大量重複工作最好用的工具。不過很多人對VBA一竅不通,所以今天就跟大家分享一段程式碼,並且詳細解釋如何根據實際表格修改程式碼值,方便大家在工作中使用。

(1)按住Alt F11開啟VBA編輯器,點選「插入」選單下的「模組」。

實用Excel技巧分享:快速分割工作表的兩種方法

(2)在右側程式碼視窗輸入下列程式碼。不想動手輸入的可以加群下載已經準備好的程式碼文件,直接複製貼上即可。

Sub 分割表()

    Dim i, iRow, iCol, t, iNum As Integer, sh As Worksheet, str As String
    Application.ScreenUpdating = False
    With Worksheets("Sheet1")
     iRow = .Range("A65535").End(xlUp).Row
     iCol = .Range("IV1").End(xlToLeft).Column
     t = 3
        For i = 2 To iRow
            str = .Cells(i, t).Value
            On Error Resume Next
            Set sh = Worksheets(str)
            If Err.Number <> 0 Then
                Set sh = Worksheets.Add(, Worksheets(Worksheets.Count))
                sh.Name = str
            End If
           
            sh.Range("A1").Resize(1, iCol).Value = .Range("A1").Resize(1, iCol).Value
            iNum = sh.Range("A" & Rows.Count).End(xlUp).Row
            sh.Range("A" & iNum + 1).Resize(1, iCol).Value = .Range("A" & i).Resize(1, iCol).Value
            Next i
     End With
Application.ScreenUpdating = True
End Sub

程式碼解析:

#這裡用紅色文字表示需要根據實際修改的程式碼參數;'用來表示註釋,其後的文字並不影響程式碼的運行,只是用來說明程式碼的。這裡特意用灰色表示註釋文字。

Sub 分割表 '檔案名稱,根據自己的檔案名稱修改

    Dim i, iRow, iCol, t, iNum As Integer, sh As Worksheet, str As String

    Application.ScreenUpdating = False '關閉螢幕重新整理

    With Worksheets("Sheet1")'雙引號內是工作簿名稱,根據實際工作簿名稱修改

     iRow = .Range("A65535").End(xlUp).Row 'A列的最後一行開始向上取得工作表的行數,一般只改變Range中的列參數,如要工作表有效區域是從B列開始的,值就是B65535

#

     iCol = .Range("IV1").End(xlToLeft).Column'從最後列(IV )第1行開始向左取得工作表的列數,一般只改變Range中的行參數,如要工作表有效區域是從第 2行開始的,數值就是IV2

 

     t = 3 't為列數,設定依據哪一列進行拆分,譬如,如果是按E列拆分,這裡有t=5

        For i = 2 To iRow  'i為行數,設定從第幾行開始取得分割值,要依照工作表實際改變

            str = .Cells(i, t).Value '取得儲存格(i, t)的值作為分割後的表格名稱

            On Error Resume Next

            Set sh = Worksheets(str) '建立以上述取得值為名的工作表

            If Err.Number  0 Then '如果沒有這個工作表則加一個並命名

               Set sh = Worksheets.Add(, Worksheets(Worksheets.Count))

                sh.Name = str

            End If '如果存在這個工作表

   sh.Range("A1").Resize(1, iCol).Value = .Range("A1").Resize(1, iCol).Value '取得工作表標題,一般只改動Range的列值和Resize中的行值,譬如工作表的標題是從B列第3行開始的,則這句程式碼就變成sh.Range("B1").Resize(3, iCol).Value = .Range("B1").Resize(3, iCol).Value '

            iNum = sh.Range("A" & Rows.Count).End(xlUp).Row '一般只改Range中的列值,如工作表是從B列開始的,這裡就變成Range("B" & Rows.Count).End(xlUp).Row

            sh.Range("A" & iNum 1).Resize(1, iCol).Value = .Range("A" & i).Resize(1, iCol).Value

#           '在新表中貼上工作表數據,一般只已變更Range的列值,若工作表是從工作表中貼上工作表數據,一般只變更Range的列值,若工作表是從BBBange

列開始的,則改成

B變成Range("B" & iNum 1).Resize(1, iCol).Value = .Range("B" & i).Resize(1, iCol).Value

        Next i

     End With    Application.ScreenUpdating = True

'

#開啟螢幕重新整理

##End Sub實用Excel技巧分享:快速分割工作表的兩種方法

(3)程式碼輸入完成後,點選選單列裡的「執行子過程」。這樣工作表就拆分完成了。

實用Excel技巧分享:快速分割工作表的兩種方法

完成如下:

這樣就透過這種方式一鍵完成工作表拆分了。

第2種:常規分割-資料透視表

######    資料透視表真的非常好用,它不僅在資料統計分析上擁有絕對的優勢,而且利用篩選頁也可以幫助我們實現拆分工作表的功能。步驟如下:######(1)選擇資料來源任一儲存格,點選插入標籤下的「資料透視表」。位置選擇現有工作表,按確定。 ###

實用Excel技巧分享:快速分割工作表的兩種方法

(2)把要拆分的字段「城市」放到篩選字段,「日期」「業務員」字段放在行字段,「銷售額」放在值字段。

實用Excel技巧分享:快速分割工作表的兩種方法

(3)修改資料透視表格式,以便在產生新工作表的時候形成表格格式。

選擇「資料透視表工具」下方「設計」選項卡里的「報表版面配置」下拉式功能表的「以表格形式顯示」。

實用Excel技巧分享:快速分割工作表的兩種方法

選擇「資料透視表工具」下方「設計」選項卡里的「報表版面配置」下拉式功能表的「重複所有項目標籤」。

實用Excel技巧分享:快速分割工作表的兩種方法

選擇「資料透視表工具」下方「設計」選項卡里的「分類總和」下拉式選單的「不顯示分類總和」。

實用Excel技巧分享:快速分割工作表的兩種方法

完成結果如下:

實用Excel技巧分享:快速分割工作表的兩種方法

#(4)最後把透視表分割到各個工作表。選擇“資料透視表工具”下方“分析”標籤“資料透視表”功能區塊裡的“選項”下拉選單的“顯示報表篩選頁”,選定要顯示的報表篩選頁欄位為“城市”。

實用Excel技巧分享:快速分割工作表的兩種方法

(5)為了方便後續處理,把資料透視表修改成普通表格。選擇第一個工作表 “北京”,按住Shift,點擊最後一個工作表“重慶”,形成工作表組。這樣就能批量對所有工作表進行統一操作。

實用Excel技巧分享:快速分割工作表的兩種方法

全選複製貼上為值。

實用Excel技巧分享:快速分割工作表的兩種方法

刪除前兩行,再把日期這列列寬調整一下就完成了。結果如下:

實用Excel技巧分享:快速分割工作表的兩種方法

資料透視表這種方法比較容易上手,但是步驟比較多,而VBA操作簡單,但需要學習的東西很多。大家依照自己實際狀況選擇使用,覺得不錯的話按讚吧!

相關學習推薦:excel教學

以上是實用Excel技巧分享:快速分割工作表的兩種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:itblw.com。如有侵權,請聯絡admin@php.cn刪除