Microsoft Excel怎麼按條件快速將總表數據拆分成多個工作表?

2020-12-05 微科技智生活

知識改變命運,科技成就未來。在使用Microsoft Excel統計數據時,一般情況下會將各類數據匯總到一個工作表中。當需要分類數據時,使用【篩選】功能的話重複性操作太多,還需要將篩選後的數據進行複製粘貼,有什麼辦法能夠按條件快速的將總表數據拆分成多個工作表?這個時候就需要用到強大的Visual Basic for Applications(VBA)了。

Microsoft Excel按條件快速將總表數據拆分成多個工作表詳細操作流程:

第一步:左鍵雙擊打開素材文件【將總表數據拆分成多個工作表.xlsx】Microsoft Excel工作表。要編輯VBA代碼,首先我們需要打開【Visual Basic編輯器】,右鍵單擊【總表】工作表,左鍵單擊右鍵菜單中的【查看代碼(V)】即可打開【Visual Basic編輯器】。

第二步:編輯VBA代碼。左鍵單擊【工程資源管理器】中的【Sheet1 總表】後,在右側代碼窗口中鍵入以下代碼,您也可以選擇複製粘貼。代碼輸入完成後,不需要保存,直接關閉【Visual Basic編輯器】即可。

Sub NewSheets()

Dim d As Object, sht As Worksheet, arr, brr, r, kr, i&, j&, k&, x&

Dim Rng As Range, Rg As Range, tRow&, tCol&, aCol&, pd&

Application.ScreenUpdating = False

Application.DisplayAlerts = False

Set d = CreateObject("scripting.dictionary")

Set Rg = Application.InputBox("請您框選拆分依據列!只能選擇單列單元格區域!", Title:="提示", Type:=8)

tCol = Rg.Column

tRow = Val(Application.InputBox("請您輸入總表標題行的行數?"))

If tRow = 0 Then MsgBox "您未輸入標題行行數,程序退出!": Exit Sub

Set Rng = ActiveSheet.UsedRange

arr = Rng

tCol = tCol - Rng.Column + 1

aCol = UBound(arr, 2)

For i = tRow + 1 To UBound(arr)

If Not d.exists(arr(i, tCol)) Then

d(arr(i, tCol)) = i

Else

d(arr(i, tCol)) = d(arr(i, tCol)) & "," & i

End If

Next

For Each sht In Worksheets

If d.exists(sht.Name) Then sht.Delete

Next

kr = d.keys

For i = 0 To UBound(kr)

If kr(i) <> "" Then

r = Split(d(kr(i)), ",")

ReDim brr(1 To UBound(r) + 1, 1 To aCol)

k = 0

For x = 0 To UBound(r)

k = k + 1

For j = 1 To aCol

brr(k, j) = arr(r(x), j)

Next

Next

With Worksheets.Add(, Sheets(Sheets.Count))

.Name = kr(i)

.[a1].Resize(tRow, aCol) = arr

.[a1].Offset(tRow, 0).Resize(k, aCol) = brr

Rng.Copy

.[a1].PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

.[a1].Select

End With

End If

Next

Sheets(1).Activate

Set d = Nothing

Erase arr: Erase brr

MsgBox "數據拆分完成!"

Application.ScreenUpdating = True

Application.DisplayAlerts = True

End Sub

第三步:按條件快速將總表數據拆分成多個工作表使用流程。首先我們需要在菜單欄中顯示【開發工具】。顯示【開發工具】詳細操作流程請參照:PPT小技巧:如何把視頻嵌入到PPT演示文稿中合併成一個文件?PPT和Excel操作流程基本一致。左鍵單擊菜單欄中的【開發工具】選項卡,左鍵單擊【代碼】功能區中的【宏】按鈕。

第四步:左鍵單擊選中【宏】對話框中的【Sheet1.NewSheets】後,左鍵單擊【執行(R)】按鈕。

第五步:素材中拆分工作表的條件是【班級】,左鍵單擊【A】列後,【提示】對話框中的文本框會自動生成單元格區域【$A:$A】,左鍵單擊【確定】按鈕即可進行下一步操作。備註:也可長按滑鼠左鍵圈選單元格區域,在圈選單元格區域時,無螞蟻線作為提示,圈選完成後請核對圈選區域是否正確。

第六步:在【輸入】對話框的文本框中,鍵入總表標題行的行數,素材中標題行的行數為【1】,所以鍵入的數字為【1】,鍵入完成後,左鍵單擊【確定】按鈕。拆分完成後會有【數據拆分完成!】的提示框,左鍵單擊【確定】按鈕即可完成總表的拆分。

第七步:按條件快速將總表數據拆分成多個工作表效果展示。

至此,Microsoft Excel按條件快速將總表數據拆分成多個工作表操作流程已全部結束。知識改變命運,科技成就未來。希望這個小知識能給您的工作和生活帶來更多的便捷。如有疑問或建議,請在下方留言。點擊關注,有更多科技知識等著您,謝謝您的支持。

相關焦點

  • Excel小技巧:使用VBA,10秒鐘搞定拆分工作表(內附代碼)
    前面我們發布過將多個工作簿中的工作表合併到一個工作表簿中,就有網友提了一個問題,如何講一個工作表拆分成多個工作表,其實實現的方法很多,如果數據少的話,我們直接採用篩選後複製粘貼就可以了,如果數據比較多,或者是日常工作的話,每天這樣複製粘貼,就很麻煩~,或者我們使用透視表也可以。。
  • Excel中多個工作表不同位置數據,如何進行求和?
    最近收到一個典型案例,Excel中多個工作表不同位置數據,如何進行求和。 具體如下: 一個Excel文件中,有多個sheet工作表,「一月」,「二月」,「三月」。
  • 懂Excel就能輕鬆入門Python數據分析包pandas(十六):合併數據
    此系列文章收錄在公眾號中:數據大宇宙 > 數據處理 >E-pd經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言本系列上一節說了拆分數據的案例,這次自然是說下怎麼合併數據。
  • Excel按量分配太複雜!關鍵數據不便共享!用VBA拆分為獨立工作薄
    ,所以只能自己幾個管理層級的同事來幫忙核對,但是總表只有一個,大家公用一個表很容易亂,如果能夠按量拆分成獨立工作薄,一個人完成文檔在匯總就非常方便了代碼區來看看這樣的場景該如何用代碼來實現Sub chai()Dim rng As Range,
  • 使用簡單而強大的Excel來進行數據分析
    If():我發現這個函數是excel中最有用價值的函數之一。它使你可以使用條件公式,當某件事為真時,它使用一種計算方式,而當某件事為假時,則進行另一種計算方式。例如,你要將每個銷售標記為「高」和「低」。如果銷售額大於或等於$ 5000,則標記為「高」,否則標記為「低」。
  • excel的形狀與圖表——讓數據展示更加有趣
    雖然excel的主要功能是數據的統計與分析,但是也具有word、PPT中的某些圖表形狀功能。使用這些功能,可以使數據與圖形結合,從而更形象化、多樣化地呈現內容。比如形狀圖片的格式變換、smartart圖形、組合圖表以及動態圖表等。現在就一起來看看這些形狀與圖表功能的常用操作吧。
  • Excel VBA:匯總多個工作簿每個工作表名稱包含指定關鍵詞的數據
    今天再分享下匯總指定文件夾下每個工作簿中工作表名稱包含某個指定關鍵詞的小代碼(當不指定關鍵詞時,則默認匯總所有工作表數據)。舉個慄子。假設有一文件夾,內有十幾個工作簿,每個工作簿又各有多個不等數量的工作表,現在我們只想匯總每個工作簿中工作表名稱包含「看見星光」的數據,那就可以使用我們今天分享的小代碼了。
  • Excel數據透視表高級篩選用欄位和公式組合多個條件並篩選到新表
    在 Excel數據透視表中也可以進行高級篩選,並能把篩選結果得到到一個新工作表中。像在 Excel 普通表格一樣,高級篩選條件區域既可以用單個條件也可以用多個條件;多個條件的組合方式分為用欄位組合與用公式組合;如果條件比較複雜,用欄位不好組合,可以用公式組合。在數據透視表中,除可篩選普通的欄位外,還可以把分類匯總結果一起篩選。
  • excel數據轉換:如何快速批量計算表達式
    編按:哈嘍,大家好!當我們需要將excel中的數學表達式,統一轉換為可計算的值時,小夥伴們一般會怎麼做呢?這個問題,看似簡單,似乎只要在表達式前面加上等號,再按回車鍵就解決了。但是如果是1000行數據呢?10000行數據呢?
  • 如何跨 Excel 多個工作表求平均值?各數據表的行標題還不一致
    關於跨工作表的數據匯總,之前我曾詳細講解過用 indirect 函數的經典方法,詳細可參閱 可是還是有些同學覺得公式難度有點高,理解不了,希望能有更簡單的方式。 那麼,今天就教大家點點滑鼠就能跨工作表求平均值。
  • 按任意符號間隔拆分字符串的函數
    大家好,我們今日講解「VBA信息獲取與處理」教程中第十四個專題「Split函數提取數據信息的深入講解」的第二節「按任意符號間隔拆分字符串的函數」,這個專題是非常實用的知識點,希望大家能掌握利用。第二節 按任意符號間隔拆分字符串的函數在上一講中,我們講解了Split函數的基本應用,但我們很快會發現,這個函數在利用起來有一定的局限性,只能按某個字符串進行拆分,在實際的應用中,如果我們要按多個字符串進行拆分,這個函數就無能為力了,怎麼辦?我們可以擴展一下這個函數的功能。
  • pandas數據處理:常用卻不甚了解的函數,pd.read_excel()
    人們經常用pandas處理表格型數據,時常需要讀入excel表格數據,很多人一般都是直接這麼用:pd.read_excel(「文件路徑文件名」),再多一點的設置可能是轉義一下路徑中的斜槓,一旦原始的excel表不是很規整,這樣簡單讀入勢必報錯!
  • 快速搞定excel多sheet匯總,表頭順序不一樣也能匯總數據
    hello,大家好,在日常工作中我覺得最令我們抓狂,也是最讓人害怕的excel工作莫過於數據匯總了,當匯總的表格數量比較多,表格的格式又不統一的時候,加班到深夜都有可能,今天就跟大家分享一種多sheet匯總的方法,即使表頭的順序不一致也能匯總數據,堪稱數據匯總神奇,話不多說,讓我們直接開始吧
  • excel數字結構解析:日期和時間的自動識別規則
    我們在excel中分別輸入「1899/12/31」和「1900/1/1」,根據文本靠左,數字靠右的原理,可以清楚地分辨出二者。我們將兩個單元格設置成「數值」形式,「1899/12/31」格式不變,而「1900/1/1」變成了1。2.年份可以用兩位數字的短日期形式來輸入,其中數字00-29會被識別為2000-2029年,而30-99則會被識別為1930-1999年。
  • 眼睛的救星,Excel怎麼快速找出兩列數據的不同之處?
    Microsoft Excel中可能會遇到兩列數據對比找不同的情況,面對如此的龐大的數據量,怎麼快速找出兩列數據的不同之處呢?今天給大家介紹幾種簡單的操作方法,希望能夠給您帶來幫助。Microsoft Excel快速找出兩列數據的不同之處詳細操作流程:左鍵雙擊打開素材文件【數據對比.xlsx】Microsoft Excel工作表。方法一:相同行,對比【B】列數據和【C】列數據是否相同,英文標註。
  • 在Excel工作表中,按單元格顏色求和,就用這三種方法,便捷高效
    在Excel工作表中,求和是最普通不過的話題了,但是,按顏色求和,絕對是一個新鮮的話題,今天,小編就給大家分享3種在工作表中按顏色求和的技巧!一、在Excel工作表中按顏色求和:自定義名稱法方法:1、選定目標單元格,快捷鍵Ctrl+F打開【查找和替換】對話框,如果沒有【選項】內容,單擊右下角的【選項】顯示選項內容。
  • Excel工作表中的定位功能都不會使用,那就真的Out了!
    在數據的分析處理中,經常要對同一類的數據進行選定,此時必須用到Excel工作表中的【定位】功能,快捷鍵為Ctrl+G或F5(Fn+F5)。  方法:  選定Excel工作表中的任意單元格區域,快捷鍵Ctrl+G(或F5)打開【定位】對話框,【定位條件】打開【定位條件】對話框,選擇【公式】並【確定】。  三、Excel工作表定位技巧:批量刪除空行(列)。
  • Excel工作表中的篩選,怎麼用?你確定都掌握嗎?
    方法:1、選中工作表數據區域中的任意單元格,【數據】-【高級】,打開【高級篩選】對話框。2、選中【方式】中的【將篩選結果複製到其他位置】,單擊【條件區域】右側的箭頭選取條件區域,單擊【複製到】右側的箭頭,選取複製位置並【確定】。
  • 辦公室必備的Excel工作表技巧,簡單易學,效率優先!
    在實際的辦公中,經常要對表格數據進行處理,如果自己的Excel工作表技巧不到位,那別人下班,自己就只能加班呢……如果想要提早下班,就要掌握一定量的辦公室必備Excel工作表技巧。一、Excel工作表技巧:批量修改工作表。
  • Excel公式技巧51: 根據條件來排序(續)
    學習Excel技術,關注微信公眾號:excelperfect 在《Excel公式技巧50:根據條件來排序