excel拆分合併技巧:將總表拆分成工作表的方法

2021-01-08 部落窩教育H

編按:哈嘍,大家好!在平時的工作中,我們經常會遇到將工作表拆分,或者合併的問題。大多數人還只會用複製粘貼的方式來解決,雖然操作簡單,但是當遇到數據量較大的情況,無疑會拖垮我們的工作效率。其實工作表的拆分和合併沒有大家想像中的那麼難,本系列將分為上下兩篇教程,分別講解工作表拆分與合併的方法,本篇是上篇,將給大家帶來4種工作表拆分的方法,趕緊來看看吧!

【前言】

「小張,把採購明細表,按供應商拆分成一個一個的文件,發出去對帳。」

「小張,把每個庫管的採購明細,匯總成一個總明細表,發給我。」

「小張,這個月部門的工資條做了嗎?做完給每個人都發一下。」

「小張,把這個表拆開,……,小張,把那些表合併,小張,小張,……,小張呢?原來你做這類活兒都是靠『複製、粘貼』啊?!去『部落窩』裡找找方法吧!」

【正文】

「總-分式套表」,好像是每個行業每個統計崗都會遇到的表格形式,十分的普遍,我們在日常工作中,也經常需要把各種表格,拆分又合併,合併再拆分,這就是「分久必合,合久必分」的千古鐵律。可是如果我們只會篩選後複製、粘貼,確實效率低下,那麼這篇文章就給大家帶來幾種拆分與合併的操作方法,希望在工作中能夠幫到同學們。

一、總表拆分為工作表——函數流

【數據源】

下圖是比較常見數據,我們現在的需求:按照總表中的供應商數據做出各個分表,把數據分別做到每個對應供應商的工作表中。

步驟1:當我們使用函數拆分工作表時,需要先「手工」創建各個分表。我們先確定表中的供應商名稱分別是:「永達」,「安達」,「洋子」三家公司,然後手動添加一個名為《永達》的分表:

步驟2:製作供應商分表的「表頭」。分表的表頭可以和總表的一樣,也可以不一樣,具體問題具體分析,但是一定要注意,在分表中出現的欄位一定是可以從總表中引用的,或者是可以通過數據計算的。

我們製作的分表表頭如下:

步驟3:在總表中製作輔助列,作為分表引用的「關鍵詞」。

(「關鍵詞」的作用是用於唯一地標識表中的某一條記錄或某一個欄位屬性,具有唯一性的原則。我們在《函數技巧千千萬,如何制表才關鍵!(上篇)》的文章說明過,不太熟悉的小夥伴可以點擊連結複習一下~)

A列函數:=I2&COUNTIF($I$2:I2,I2)

通過COUNTIF函數和區域「混合引用」的方法,得到每個供應商,在總表中出現的順序號,再與供應商名連接,形成一個新的引用關鍵字。此類引用方法在之前的教程中介紹過,小夥伴們可以點擊教程《同樣是countifs函數,為什麼同事卻使得比你好?原因在這裡!》學習,此處不做贅述了。

步驟4:在分表中製作引用數據的函數。當仁不讓,我們一定會使用到常用函數VLOOKUP。

《永達》分表中A6單元格函數:

=IFERROR(VLOOKUP($B$2&ROW(A1),總表!$A$1:$K$50000,MATCH(A$5,總表!$A$1:$K$1,0),0),"")

這是一個典型的IFERROR+VLOOKUP+MATCH函數的嵌套使用:

$B$2&ROW(A1)是供應商名稱&行號,這樣就和我們剛才在總表中做的輔助列欄位相呼應,可以作為VLOOKUP函數的引用標準。

用MATCH函數得到表頭欄位在總表中的序列號,可以確定VLOOKUP函數引用的第幾列的數據。

最後再用IFERROR函數規避#N/A值。

同學們可以看到這裡用了很多的「區域引用技巧」,這是函數應用基礎的一部分,就不在這裡多說了,不會的話趕緊在部落窩補補課。

輸入函數後,右拉填充,再下拉填充,一個分表的自動化拆分就做好了。

「小常識」:

這裡介紹一個右拉、再下拉填充公式的快捷方式,在A6單元格輸入公式後,接著在名稱框中輸入A6:J10000,按回車鍵選中需要填充的區域,再按CTRL+D組合鍵向下填充,再按CTRL+R組合鍵向右填充,完工。

步驟5:調整單元格各個欄位的格式,比如「日期」列的數據需設置成日期格式,如下:

步驟6:以此表為模板,製作其他供應商的分表。我們可以新建一個空白工作表,再全選、複製《永達》工作表的內容,然後粘貼到新建的空白表中,再更改工作表名稱和B2單元格的引用條件,如下:

是不是很簡單呢?而且如果總表中有了新的修改或新增內容,分表中也會自動調整。但是這種函數的拆分方式,在數據量較多的情況,就會顯得有一些卡頓,那麼我們就繼續來看看下面的拆分方法吧。

二、總表拆分為工作表——數透流

步驟1:選中數據區域A1:J25,在工具欄中選擇插入——數據透視表。

按下圖,設置數據透視表的放置位置。

步驟2:設置數據透視表的欄位。我們還是按「供應商」拆分工作表,如下設置欄位的布局。

得到下面的數據透視表:

步驟3:選中數據透視表中某一個單元格,在工具欄頂端出現的「數據透視表工具」選項卡中,點擊其中的「分析」菜單,接著選擇下圖所示的「顯示報表篩選頁」功能。

彈出下面的窗口,點擊「確定」。

現在你的分表是不是已經被拆分出來了?但它依然還是數據透視表的結構。

找到這個數據透視表的最末行,雙擊「總計」框,就可以得到一個分表的列表。

三、總表拆分為工作表——高篩流

高級篩選功能估計很多同學都是聽說過,但沒怎麼用過,那麼就借今天「拆分工作表」的主題,帶著大家一起再學習一次吧。

步驟1:新建空白表,製作篩選條件區域。

步驟2:在工具欄的「數據」選項卡中,排序和篩選工作組中,點擊「高級」,彈出下面的窗口。

步驟3:按照下圖的設置內容,分別設置高級篩選的「列表區域」、「條件區域」、「複製到」的區域。

注意:當我們點選「將篩選結果複製到其他位置」的選項後,「複製到」的輸入框才可以輸入內容,然後點擊「確定」按鈕,得到如下圖所示的篩選數據。

重複上面的操作過程,可以製作其他供應商的分表。另外,高級篩選可以多條件的提取數據,是比較方便的一個工具。

關於高級篩選詳細的使用方法,小夥伴們可以參考之前的教程《常用篩選的表哥表姐,知道增強版的篩選嗎?不知的,請進!》,此處不做贅述了。

【小結】

通過「函數流」、「數透流」、「高篩流」三種方式的操作,作者E圖表述還是認為函數的方式更加符合我們「一勞永逸」的建模思路,而數據透視表和高級篩選只能說應急的時候操作比較快,但不方便形成模板,如果有了數據刪改,需要我們再次的操作。

可對於函數操作來說,如果數據量較大的時候,又會造成卡頓的情況,那麼下面我們再來看一種更優的拆分工作表的方式——VBA流。

四、總表拆分為工作表——VBA流

不廢話,先來一個效果圖:

是不是很方便?而且每次修改、刪除、增加總表記錄的時候,再次點擊按鈕就可以自動更新數據!下面我們就一起來看看操作方法吧~

步驟1:按ALT+F11組合鍵,打開VBE界面;

步驟2:在左邊工程窗口處,單擊滑鼠右鍵,在彈出的菜單中選擇「插入」——「模塊」;

步驟3:雙擊新生成的模塊,在右側代碼區,輸入如下代碼:

Sub 拆分表()

Application.ScreenUpdating = False

Application.DisplayAlerts = False

On Error Resume Next

Dim arr, brr, d

』「總表」是作者測試數據的工作表名稱,如果你的總表工作表名稱是其他的,如:XXX,把代碼中所有的「總表」替換(CTRL+H)成XXX即可。

a = Sheets("總表").[B65000].End(3).Row

』A2:J & a 是作者測試數據中的區域,大家可以改成自己的列表範圍

arr = Sheets("總表").Range("A2:J" & a)

Set d = CreateObject("scripting.dictionary")

For i = 1 To UBound(arr)

』為什麼是arr(i,8)呢?因為我們是按照數據範圍中的第8列內容也就是「供應商」列拆分總表。大家可以按照自己的需要改成某列號即可,下面的arr(i,8)都是這樣的修改方式。

d(arr(i, 8)) = d(arr(i, 8)) + ""

Next i

x = Sheets.Count

For j = x To 1 Step -1

If Sheets(j).Name <> "總表" Then

Sheets(j).Delete

End If

Next j

x = Sheets.Count

For Each dic In d

ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))

Sheets.Add after:=Sheets(x)

x = x + 1

Sheets(x).Name = dic

For i = 1 To UBound(arr)

If arr(i, 8) = dic Then

k = k + 1

For j = 1 To UBound(arr, 2)

brr(k, j) = arr(i, j)

Next j

End If

Next i

Sheets("總表").Range("1:1").Copy Sheets(x).Range("1:1")

』 Range("A2"),是作者被粘貼區域的首個單元格,如果大家需要從其他部分粘貼,就把這裡改一下。

Sheets(x).Range("A2").Resize(UBound(brr), UBound(brr, 2)) = brr

Erase brr

k = 0

Next

End Sub

步驟4:運行代碼,測試代碼是否運行正常。

步驟5:如果測試代碼無誤,將.XLSX文件另存為.XLSM文件(啟用宏的EXCEL工作薄)。作者E圖表述的很多學生在初學VBA的時候,經常會忘記另存為.XLSM文件,雖然也能保存,但是保存的是工作表區域的數據,VBE界面的代碼是沒有被保存的,辛苦付之東流。

【編後語】

雖然沒有解釋代碼的含義,但卻給出了代碼的修改方式。這樣一來,會VBA的同學可以看懂;而不會VBA的同學,可以根據不同的場景,修改代碼。對於「拆分」工作表的操作,作者總結了4種方式,選擇有把握的方式來處理工作上的問題,是解決問題的最快途徑!「分久必合、合久必分」,說過了拆分,那麼我們繼續關注下篇的「合併」吧!(未完待續)

****部落窩教育-excel排名合計公式****

原創:E圖表述/部落窩教育(未經同意,請勿轉載)

相關焦點

  • excel拆分合併技巧:將工作表合併成總表的方法
    在上篇文章中我們給大家介紹了4種拆分工作表的方法,分別是函數、透視表、高級篩選、VBA,不知道小夥伴們學習得咋樣了?今天我們將學習合併工作表的三種方法,趕緊來看看吧!(由於合併工作表的第一種方法函數法,涉及的函數的應用相對複雜,在函數方面比較薄弱的同學,可以先看第二、三種方法,再繼續學習第一種~)*********【前言】在上篇文章中,對於總表拆分為分表的操作一共給大家分享了四種方法,建議同學們一定要勤加練習,才能熟能生巧。既然說了拆分,那麼就沒有道理不說「合併」。
  • Microsoft Excel怎麼按條件快速將總表數據拆分成多個工作表?
    在使用Microsoft Excel統計數據時,一般情況下會將各類數據匯總到一個工作表中。當需要分類數據時,使用【篩選】功能的話重複性操作太多,還需要將篩選後的數據進行複製粘貼,有什麼辦法能夠按條件快速的將總表數據拆分成多個工作表?這個時候就需要用到強大的Visual Basic for Applications(VBA)了。
  • 合併/拆分 Excel?Python、VBA輕鬆自動化
    作者 | Ryoko來源 | 凹凸數據當你收集了 n 個人的 EXCEL 記錄表,需要將它們匯成一個總表時你會怎麼做呢" & Num & "個工作薄下的全部工作表。/', '\\\\') # 傳入pd庫read_excel方法的路徑,含文件名 dir = p[ : p.rfind('\\') + 1 ] # 輸出被拆分表的目錄,不含文件名 sheetname = path[ path.rfind('/') + 1 :].strip('.xlsx').strip('.xlx') # 無後綴的文件名 data = pd.read_excel(p) # 數據 nrows
  • 一鍵批量拆分Excel工作表「模板下載」
    今年5月份我們在Excel表哥微信公眾號平臺首發了一系列工作表、工作簿合併的文章。從合併相同內容的單元格到合併多個工作表直至批量合併多個Excel工作簿,所有的操作只需要一鍵!有讀者給表哥留言既然有合併工作簿工作表的工具,怎麼能沒有一鍵拆分的工具呢?讀者朋友的提問其實也讓我們看到了大家平時工作上的需求,Excel表哥公眾號也樂於幫助讀者解決Excel應用方面的任何問題。
  • 「Excel技巧」利用數據透視表快速將一個匯總表拆分成多個工作表
    今天要說的是,如何根據某一列將一個Exce工作表拆分成多個工作表。舉慄子,以下這麼一份總表,需要按照班級將其拆分成多個單獨的表,一個班級為一個表。你會按照班級一個一個地篩選複製出來嗎?如果班級多,有幾十個班級,顯然這種方法就不適用。那麼,怎麼操作比較省時省力?Excel的數據透視表功能就可以幫我們完成這個工作。
  • Excel小技巧:使用VBA,10秒鐘搞定拆分工作表(內附代碼)
    前面我們發布過將多個工作簿中的工作表合併到一個工作表簿中,就有網友提了一個問題,如何講一個工作表拆分成多個工作表,其實實現的方法很多,如果數據少的話,我們直接採用篩選後複製粘貼就可以了,如果數據比較多,或者是日常工作的話,每天這樣複製粘貼,就很麻煩~,或者我們使用透視表也可以。。
  • Microsoft Excel怎麼快速合併當前工作簿下的所有工作表?
    Microsoft Excel怎麼按條件快速將總表數據拆分成多個工作表?此篇文章介紹了怎麼按條件快速將總表數據拆分成多個工作表,那麼反過來,怎麼將Microsoft Excel工作薄中的工作表合併到一個工作表中呢?最簡單的方法就是複製粘貼了,如果工作表過多,合併起來工作量就很大了,這個時候就需要用到強大的Visual Basic for Applications(VBA)了。
  • Excel拆分工作表,工作表拆分到工作簿,想怎麼拆就怎麼拆!
    工作中,我們經常遇到這樣的問題,比如:如何將一個工作表按類別快速拆分成多個工作表?如何將一個工作簿的多個工作表快速拆分另存為多個工作簿?下面就用案例來說明如何解決這兩個問題。第1個問題:有關工作表快速拆分的問題。案例:將員工花名冊按部門拆分成多個工作表。
  • 如何快速拆分excel工作表?用數據透視表即可快速搞定
    Hello.大家好,今天跟大家分享下我們如何將1個工作表,按照某1個欄位拆分為多個工作表,工作中我們也會遇到類似的問題,就是將匯總表按照某個類別拆分為多個工作表,大部分都是一個一個的粘貼複製非常的麻煩,今天就跟大家如何利用數據透視快速的完成表格拆分如下圖我們想要以業務員為類別,將每個業務員的銷售明細單獨放在對應的工作表中
  • 如何將 Excel 合併單元格內容按換行符拆分成多行?
    如何按換行符將合併單元格內容拆分為多行?大家首先想到的可能是藉助記事本,具體操作方法可參閱 將Excel單元格中的內容按行拆分成多個單元格。除了記事本以外,還有沒有更簡單的方法?有,那就是我一直推崇的 Power Query,不僅更快,還一勞永逸,今後數據表若有新增合併區域,只要刷新目標表格就能完成拆分。案例:將下圖 1 中所有合併的姓名單元格拆分成開來,每個姓名一行,排列成與班級一一對應的表格。
  • VBA拆分工作表
    本節實例: 在工作中,我們可能會遇到一張很複雜、繁冗的表格,表格中的數據時公司各個部門的詳細數據清單,我們的任務是:把這個總數據表分解成一張張易於分析的數據表。當表格內容很多時,利用VBA是一種不錯的方法。 假設有如圖所示的數據,我們的任務是按照「地區」把原始數據拆分成一個工作表。
  • Excel總表更新、多個分表隨之自動更新,不用VBA、不用函數
    合併多個分表到一個總表中,這樣的操作很常見。但,有時候我們也需要反過來,即將一個總表拆分成多個子表,並且在總表中錄入/修改數據後,每個分表都可以自動更新數據。如以下資金流動表。除了資金流水,我們還特別關心哪些客戶已經結清欠款,哪些客戶部分還清,哪些還欠著全款。
  • Excel工作表拆分你喜歡哪一種?
    各位小夥伴有沒有遇到過這樣的問題:當我們把所有的信息匯總在一張表裡後,又需要將這張大表按某一條件再拆分成多個工作表。那怎麼才能實現呢?可能最笨的方法就是在原工作表篩選數據然後複製粘貼到新工作表,不過這種方法不適合數據多的案例,並且新工作表也需要一一重命名,顯得繁瑣。今天就給大家介紹兩種快捷實用的工作表拆分方法。
  • excel批量拆分工作簿,用VBA一鍵拆分,把數據分解到N個工作簿
    此時就需要使用批量處理的方法,可以用PQ,也可以用VBA,本文就分享用VBA來處理批量拆分工作簿,用VBA的好處在於,只要代碼寫好,不需要懂代碼,任何人都可以直接拿來用,其他辦法就需要對軟體操作有一些要求了。
  • 快速將Excel匯總數據拆分到各工作表,包含VBA方法喲
    ——莊子今天給大家分享個把匯總數據表拆分到各個不同的工作表中的操作方法。先看原始數據表:我們需要按每個【城市】新建一個工作表,並把該城市對應的數據內容,拆分到工作表中。怎麼做呢?今天給大家分享的是使用Excel的【數據透視表】來實現,【數據透視表】用過的人應該都知道數據透視表真的非常非常好用,建議大家都好好學習下。
  • EXCEL如何按某一列拆分成多個表
    這個需求還是很常見的,所以我們今天來一起學習一下看一下需求,按地區拆分,一個區域一個表(Sheet)文末補充如何拆分成獨立的文件,還帶有他透視表格式,我們要做一下調整> 點擊拆分後的第一個工作表,按住Shift,點擊最後一個(全部選中)> 點擊右上角,三角,選擇工作表區域,複製,選擇性粘貼-數值
  • 工作表拆分,VBA用了30行,Python只有8行
    工作中,很多小夥伴都會遇到一些需求,將一份Excel文檔按照部門進行拆分,每個部門是一個單獨的工作表。讀者需要注意的是,多個工作表的拆分,始終在一個工作簿內操作。讓我們一起通過Python來實現。本例目標:根據指定的Excel文件按照部門拆分成多個工作表。最終效果:按照部門生成工作表。技術點:groupby()方法的使用,Excel的追加模式等。
  • Excel中如何快速拆分工作表?
    Excel中的透視表,除了能快速準確做匯總分析外,其實還有一個非常強大的功能-快速拆分工作表,很多人可能還沒用過。實際工作中雖然也用得不多,但是掌握這個技巧也未嘗不可。具體如何操作,請參考以下步驟。1. 先選中所有數據,創建透視表。
  • Excel小技巧之Ctrl+E,快速實現合併、拆分和提取
    #excel技巧#在Excel中,用好一些小技巧,可以幫助我們節省大量的編緝時間。在我們實際操作中經常會碰到以下幾種情況:又或者是這樣的:還在用複製、粘貼的方法一個一個去做嗎?這樣無疑需要大量的工作量及時間,效率低下。今天給大家介紹的小技巧是Ctrl+E快捷鍵,它可以幫你迅速的實現合併、拆分和提取功能,我們可以一起看下視頻。
  • 如何PDF轉成Excel不被被拆分成多個工作表?
    如何將PDF轉成Excel?有時在日常工作中,PDF文檔內容多為數據,如果進行匯總或計算很不方便,所以常常會將PDF轉成表格使用,但轉出後的Excel卻是多個子表,原PDF每一頁都被拆分成一個單獨的工作表,這是怎麼回事?如何將PDF轉成Excel後只有一頁?