Բաց թողնել հիմնական բովանդակությունը

Ինչպե՞ս Excel- ում մեծ սեղանը բաժանել բազմաթիվ փոքր սեղանների:

Եթե ​​ունեք մեծ աշխատանքային թերթ, որը պարունակում է բազմաթիվ սյունակներ և հարյուրավոր կամ հազարավոր տողերի տվյալներ, ապա այժմ ցանկանում եք բաժանել այս մեծ աղյուսակը բազմաթիվ փոքր աղյուսակների ՝ հիմնվելով սյունակի արժեքի կամ տողերի քանակի վրա ՝ հետևյալ արդյունքները ստանալու համար: Ինչպե՞ս կարող եք գործ ունենալ Excel- ում այս խնդրի հետ:

Հիմնական սեղան   Աղյուսակը բաժանեք բազմաթիվ աղյուսակների ՝ ըստ սյունակի արժեքի Աղյուսակը բաժանեք բազմակի սեղանների ՝ ըստ տողերի հաշվարկի

Խոշոր աղյուսակը բաժանեք բազմաթիվ աղյուսակների ՝ հիմնվելով VBA կոդի հետ սյունակի արժեքի վրա

Մի մեծ սեղան բաժանեք բազմակի սեղանների, որոնք հիմնված են VBA կոդով տողերի որոշակի քանակի վրա

Մի մեծ սեղան բաժանեք բազմաթիվ աղյուսակների ՝ հիմնվելով սյունակի արժեքի կամ զարմանալի հատկությամբ շարքերի քանակի վրա


Խոշոր աղյուսակը բաժանեք բազմաթիվ աղյուսակների ՝ հիմնվելով VBA կոդի հետ սյունակի արժեքի վրա

Այս մեծ աղյուսակը որոշակի սյունակի վրա հիմնված բազմաթիվ աղյուսակների բաժանելու համար հետևյալ VBA կոդը կարող է ձեզ լավություն բերել: Խնդրում եմ, արեք այսպես.

1, Պահեք պահեք ALT + F11 բացել ստեղները Microsoft Visual Basic հավելվածների համար պատուհան.

2: Սեղմեք Տեղադրել > Մոդուլներ, և տեղադրեք հետևյալ կոդը Մոդուլներ Պատուհանը:

VBA կոդ. Մեծ աղյուսակը բաժանել բազմակի սեղանների ըստ հիմնական սյունակի.

Sub Splitdatabycol()
'by Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWSTRg As Worksheet
On Error Resume Next
Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", "", Type:=8)
If TypeName(xVRg) = "Nothing" Then Exit Sub
vcol = xVRg.Column
Set ws = xTRg.Worksheet
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = xTRg.AddressLocal
titlerow = xTRg.Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
Application.DisplayAlerts = False
If Not Evaluate("=ISREF('xTRgWs_Sheet!A1')") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
Else
Sheets("xTRgWs_Sheet").Delete
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
End If
Set xWSTRg = Sheets("xTRgWs_Sheet")
xTRg.Copy
xWSTRg.Paste Destination:=xWSTRg.Range("A1")
ws.Activate
For i = (titlerow + xTRg.Rows.Count) To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
Else
Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
Sheets(myarr(i) & "").Paste Destination:=Sheets(myarr(i) & "").Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A" & (titlerow + xTRg.Rows.Count))
Sheets(myarr(i) & "").Columns.AutoFit
Next
xWSTRg.Delete
ws.AutoFilterMode = False
ws.Activate
Application.DisplayAlerts = True
End Sub

3, Կոդը տեղադրելուց հետո սեղմեք F5 Այս կոդն աշխատեցնելու բանալին, և հուշման տուփ է դուրս գալիս, խնդրում ենք ձեր տվյալներից ընտրեք վերնագրի տողը, տե՛ս նկարը

4, Դրանից հետո կտտացրեք OK, և դուրս է եկել մեկ այլ երկխոսության պատուհան, խնդրում ենք ընտրել սյունակի տվյալները, որոնց վրա ցանկանում եք սեղանը բաժանել, տես նկարի նկարը.

5: Սեղմեք OK, այս մեծ աղյուսակը բաժանվել է բազմաթիվ աշխատանքային թերթերի ՝ ըստ սյունակի արժեքի, որոնք տեղակայված են հիմնական թերթից հետո: Եվ նոր աշխատանքային թերթերն անվանում են սյունակի արժեքով: Տեսեք,


Մի մեծ սեղան բաժանեք բազմակի սեղանների, որոնք հիմնված են VBA կոդով տողերի որոշակի քանակի վրա

Եթե ​​Ձեզ անհրաժեշտ է սեղանը բաժանել բազմաթիվ աղյուսակների ՝ ելնելով շարքերի քանակից, հետևյալ VBA կոդը կարող է օգնել ձեզ:

1, Պահեք պահեք ALT + F11 բացել ստեղները Microsoft Visual Basic հավելվածների համար պատուհան.

2: Սեղմեք Տեղադրել > Մոդուլներ, և տեղադրեք հետևյալ կոդը Մոդուլներ Պատուհանը:

VBA կոդ. Մի մեծ սեղան բաժանեք բազմակի սեղանների ՝ ըստ շարքերի քանակի.

Sub Splitdatabyrows()
'Updated by Extendoffice 
Dim WorkRng As Range
Dim xRow As Range
Dim SplitRow As Integer
Dim xWs As Worksheet
Dim xTRg As Range
Dim xNTRg As Range
Dim xIER
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set xTRg = Application.InputBox("Please select the header row:", xTitleId, "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set WorkRng = Application.InputBox("Please select the data range(exclude the header row):", xTitleId, WorkRng.Address, Type:=8)
If TypeName(WorkRng) = "Nothing" Then Exit Sub
SplitRow = Application.InputBox("Split Row Num", xTitleId, Type:=1)
If SplitRow = 0 Then Exit Sub
Set xWs = WorkRng.Parent
Set xRow = WorkRng.Rows(1)
xIER = WorkRng.Rows.Count
xIER = WorkRng.Row + xIER - 1
Application.ScreenUpdating = False
For i = 1 To WorkRng.Rows.Count Step SplitRow
    resizeCount = SplitRow
    If (xIER - xRow.Row + 1) < SplitRow Then
        resizeCount = (xIER - xRow.Row + 1)
    End If
    xRow.Resize(resizeCount).Copy
    Set xWs = Application.Worksheets.Add(after:=Application.Worksheets(Application.Worksheets.Count))
    If xIER > (xRow.Row + SplitRow - 1) Then
        xWs.Name = xRow.Row & " - " & (xRow.Row + SplitRow - 1)
    ElseIf xIER = xRow.Row Then
        xWs.Name = xRow.Row
    Else
        xWs.Name = xRow.Row & " - " & xIER
    End If
    Application.ActiveSheet.Range("A1").PasteSpecial
    Set xNTRg = Application.ActiveSheet.Range("A1")
    xTRg.Copy
    xNTRg.Insert
    Set xRow = xRow.Offset(SplitRow)
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

3, Հետո, սեղմեք F5 ստեղնը, դուրս եկած երկխոսության վանդակում ընտրեք վերնագրի տողը, տես նկարի նկարը.

4, Դրանից հետո կտտացրեք OK, և երկրորդ հուշման վանդակում ընտրեք տվյալների տիրույթը, որը ցանկանում եք բաժանել տողերի հաշվով, տես նկարի նկարը.

5, Եվ հետո, շարունակեք սեղմել OK կոճակը, երրորդ հուշման վանդակում, մուտքագրեք տողերի քանակը, որոնց միջոցով ցանկանում եք բաժանել, տես նկարի նկարը.

6, Դրանից հետո կտտացրեք OK կոճակը, վարպետության աղյուսակը բաժանվել է բազմաթիվ աշխատանքային թերթերի ՝ հիմնվելով տողերի քանակի վրա, ինչպես ցույց է տրված ստորև նշված էկրանի նկարը.


Մի մեծ սեղան բաժանեք բազմաթիվ աղյուսակների ՝ հիմնվելով սյունակի արժեքի կամ զարմանալի հատկությամբ շարքերի քանակի վրա

Գուցե վերը նշված կոդերը դժվար են օգտվողների մեծամասնության համար, այստեղ ես կներկայացնեմ զարմանալի հատկություն-Տրոհված տվյալներ of Excel- ի համար նախատեսված գործիքներ, Այս օգտակար ծառայության միջոցով դուք կարող եք արագ և հեշտությամբ բաժանել մի մեծ սեղան բազմաթիվ սեղանների `առանցքային սյունակի կամ շարքերի քանակի:

Հուշում.Սա կիրառելու համար Տրոհված տվյալներ հատկությունը, նախ, դուք պետք է ներբեռնեք այն Excel- ի համար նախատեսված գործիքներ, ապա գործառույթը կիրառեք արագ և հեշտությամբ:

Տեղադրելուց հետո Excel- ի համար նախատեսված գործիքներԽնդրում եմ արեք հետևյալ կերպ

1, Ընտրեք տվյալների տիրույթը, որը ցանկանում եք բաժանել, ապա սեղմել Kutools Plus > Տրոհված տվյալներ, տես նկարի նկարը.

2, Մեջ Տվյալները բաժանեք մի քանի աշխատանքային թերթերի երկխոսության տուփ, նշեք ձեր կարիքի պարամետրերը.

(1.) Ընտրեք Հատուկ սյունակ or Ֆիքսված շարքեր - ից Պառակտում ՝ հիմնված բաժին, որքան անհրաժեշտ է;

(2.) Նշեք նոր աշխատաթերթերի անունը ՝ Կանոններ բացվող ցուցակ, կարող եք ավելացնել Նախածանց or վերջածանց թերթի անուններին նույնպես:

3, Դրանից հետո կտտացրեք Ok կոճակը, և այժմ մեծ սեղանը բաժանվել է բազմաթիվ աշխատանքային սեղանների նոր աշխատանքային գրքում: Տեսեք սքրինշոթեր.

Աղյուսակը բաժանեք բազմաթիվ աղյուսակների ՝ ըստ սյունակի արժեքի Աղյուսակը բաժանեք բազմակի սեղանների ՝ ըստ տողերի հաշվարկի

Կտտացրեք Excel- ի և անվճար փորձաշրջանի համար Kutools- ը ներբեռնելու համար:


Ավելի հարաբերական հոդվածներ.

  • Excel- ի ֆայլերը Excel- ում առանձնացնելու համար բաժանեք աշխատանքային գրքույկ
  • Գուցե ձեզ հարկավոր է բաժանել մեծ աշխատանքային գրքույկ ՝ Excel ֆայլերն առանձնացնելու համար ՝ աշխատանքային գրքի յուրաքանչյուր աշխատանքային թերթը որպես անհատական ​​Excel ֆայլ պահելով: Օրինակ, դուք կարող եք աշխատանքային գրքույկը բաժանել բազմաթիվ անհատական ​​Excel ֆայլերի, այնուհետև յուրաքանչյուր ֆայլ հասցնել տարբեր անձանց ՝ այն կարգավորելու համար: Դրանով դուք կարող եք ստիպել, որ որոշակի անձինք մշակեն որոշակի տվյալներ և ապահով պահեն ձեր տվյալները: Այս հոդվածը կներկայացնի մեծ աշխատանքային գրքույկի բաժանման եղանակներ `յուրաքանչյուր աշխատանքային թերթի հիման վրա Excel ֆայլերը բաժանելու համար:
  • Excel- ում տրոհել լրիվ անունը և անուն-ազգանունը
  • Ենթադրելով, որ դուք ունեք անվանացանկ, քանի որ առաջին էկրանի նկարը ցույց է տալիս ստորև ներկայացված մեկ սյունակում, և անհրաժեշտ է լրիվ անունը բաժանել առաջին անվան սյունակի , միջին անուն սյունակի և ազգանվան սյունակի վրա, ինչպես ցույց է տրված հետևյալ նկարը: Ահա մի քանի բարդ մեթոդներ, որոնք կօգնեն ձեզ լուծել այս խնդիրը:
  • Excel- ում երկար սյուն բաժանեք մի քանի սյունակների
  • Եթե ​​Excel- ում ունեք երկար սյունակի տվյալներ, որոնք անհանգստացնող կլինեն դրանք դիտելիս: Բայց հիմա, եթե դուք կարողանաք Excel- ում այդպիսի երկար ցուցակը բաժանել բազմաթիվ սյունակների, դա կդարձնի դիտումը հարմարավետ:
  • Excel- ում բաժանեք խոսքը կամ համարը առանձին բջիջների մեջ
  • Եթե ​​աշխատանքային թերթում ունեք թվերի կամ բառերի ցուցակ, և այժմ անհրաժեշտ է բջիջների պարունակությունը բաժանել տարբեր բջիջների տառերի, ինչպես ցույց է տրված հետևյալ նկարը, ինչպե՞ս կարող եք գործ ունենալ այս աշխատանքի հետ Excel- ում:
  • Excel- ում երկար ցուցակ բաժանեք հավասար խմբերի
  • Եթե ​​ունեք տվյալների երկար ցուցակ, որոնք անհրաժեշտ է բաժանել բազմաթիվ հավասար խմբերի, ինչպես ցույց է տրված հետևյալ նկարը, ինչպե՞ս կարող եք արագ և հեշտությամբ գործ ունենալ այս խնդրի հետ Excel- ում:

 


  • Super Formula Bar (հեշտությամբ խմբագրեք տեքստի և բանաձևի բազմաթիվ տողեր); Ընթերցանության դասավորությունը (հեշտությամբ կարդալ և խմբագրել մեծ թվով բջիջներ); Տեղադրել ֆիլտրացված տիրույթում...
  • Միաձուլել բջիջները / տողերը / սյունակները և տվյալների պահում; Պառակտված բջիջների պարունակությունը; Միավորել կրկնօրինակ տողերն ու գումարը / միջինը... Կանխել կրկնօրինակ բջիջները; Համեմատեք միջակայքերը...
  • Ընտրեք Կրկնօրինակ կամ Եզակի Շարքեր; Ընտրեք դատարկ շարքեր (բոլոր բջիջները դատարկ են); Super Find և Fuzzy Find շատ աշխատանքային գրքույկներում; Պատահական ընտրություն ...
  • Actշգրիտ պատճեն Բազմաթիվ բջիջներ ՝ առանց բանաձևի հղումը փոխելու; Ավտոմատ ստեղծեք հղումներ դեպի մի քանի թերթեր; Տեղադրեք փամփուշտներ, Տուփեր և ավելին ...
  • Սիրված և արագ ներդիր բանաձևեր, Ընդգրկույթներ, գծապատկերներ և նկարներ; Ryածկագրել բջիջները գաղտնաբառով; Ստեղծեք փոստային ցուցակ և նամակներ ուղարկել ...
  • Քաղվածք տեքստ, Տեքստ ավելացնել, հեռացնել ըստ դիրքի, Հեռացնել տարածությունը; Ստեղծել և տպել էջային ենթագոտիներ; Փոխարկել բջիջների բովանդակության և մեկնաբանությունների միջև...
  • Սուպեր զտիչ (պահպանել և կիրառել ֆիլտրի սխեմաները այլ թերթերի վրա); Ընդլայնված տեսակավորում ըստ ամիս / շաբաթ / օր, հաճախականություն և ավելին; Հատուկ զտիչ համարձակ, շեղատառով ...
  • Միավորել աշխատանքային տետրերը և աշխատանքային թերթերը; Միավորել աղյուսակները ՝ հիմնված հիմնական սյունակների վրա; Տվյալները բաժանեք մի քանի թերթերի; Խմբաքանակի փոխակերպում xls, xlsx և PDF...
  • Առանցք սեղանի խմբավորում ըստ շաբաթվա համարը, շաբաթվա օրը և ավելին ... Showույց տալ ապակողպված, կողպված բջիջները տարբեր գույներով; Նշեք այն բջիջները, որոնք ունեն բանաձև / անուն...
kte էջանիշը 201905
  • Միացնել ներդիրներով խմբագրումը և ընթերցումը Word, Excel, PowerPoint- ով, Հրատարակիչ, Access, Visio և Project:
  • Բացեք և ստեղծեք բազմաթիվ փաստաթղթեր նույն պատուհանի նոր ներդիրներում, այլ ոչ թե նոր պատուհաններում:
  • Բարձրացնում է ձեր արտադրողականությունը 50%-ով և նվազեցնում մկնիկի հարյուրավոր սեղմումները ձեզ համար ամեն օր:
officetab ներքևում

 

Comments (13)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Thank you very much.....
This comment was minimized by the moderator on the site
Super Sache

Frage:

Ist es möglich die Tabelle immer neu zu füllen und neu zu berechnen.
Bin absoluter anfänger. :-)
Danke im Voraus
This comment was minimized by the moderator on the site
Hello, Lukas,
I'm sorry, the methods in this article can't support to update the new data when the original data is changed.
So, you need to run the code again to get the latest data if there are changes in your data.
Thank you!
This comment was minimized by the moderator on the site
I can't get this macro to work (Split A Large Table Into Multiple Tables Based On Column Value With VBA Code)
My table has 5 columns and 639,165 rows. Is it too big?
This comment was minimized by the moderator on the site
Hello, Rebekah

If the data is too large, the code will not work perfectly.
Here, I recommend our Kutools for Excel' Split Data feature for you. With this feature, you can split large data to multiple sheets quickly and easily.
You can try it for 30 days freely. Please download it ffrom: https://www.extendoffice.com/download/kutools-for-excel.html
Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
Hallo zusammen. Ich habe das gleiche Problem wie cGast - gibt es dazu eine Lösung?
This comment was minimized by the moderator on the site
Hi, Miriam,

The VBA code has been updated to a new one in this article, please try it again, if you have any other problem, please comment here. Thank you!
This comment was minimized by the moderator on the site
I tried "Split a large table into multiple tables based on the specific number of rows with VBA code" with my data of 103,000 rows split in groups of 15000 which should have returned 8 sheets, however it didnt work, it just produced 8 sheets with the headers only. but it does work when i use it with less that 10000rows. any help there?
This comment was minimized by the moderator on the site
Hello cguest,
Yes, as you said, the VBA code does not work correctlly when there are lots of data, here, I provide a new code, please try:
Sub Splitdatabyrows()
'Updated by Extendoffice 
Dim WorkRng As Range
Dim xRow As Range
Dim SplitRow As Integer
Dim xWs As Worksheet
Dim xTRg As Range
Dim xNTRg As Range
Dim xIER
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection


Set xTRg = Application.InputBox("Please select the header row:", xTitleId, "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set WorkRng = Application.InputBox("Please select the data range(exclude the header row):", xTitleId, WorkRng.Address, Type:=8)
If TypeName(WorkRng) = "Nothing" Then Exit Sub


SplitRow = Application.InputBox("Split Row Num", xTitleId, Type:=1)
If SplitRow = 0 Then Exit Sub

Set xWs = WorkRng.Parent
Set xRow = WorkRng.Rows(1)
xIER = WorkRng.Rows.Count
xIER = WorkRng.Row + xIER - 1


Application.ScreenUpdating = False
For i = 1 To WorkRng.Rows.Count Step SplitRow
    resizeCount = SplitRow
    If (xIER - xRow.Row + 1) < SplitRow Then
        resizeCount = (xIER - xRow.Row + 1)
    End If
    xRow.Resize(resizeCount).Copy
    Set xWs = Application.Worksheets.Add(after:=Application.Worksheets(Application.Worksheets.Count))
    If xIER > (xRow.Row + SplitRow - 1) Then
        xWs.Name = xRow.Row & " - " & (xRow.Row + SplitRow - 1)
    ElseIf xIER = xRow.Row Then
        xWs.Name = xRow.Row
    Else
        xWs.Name = xRow.Row & " - " & xIER
    End If
    Application.ActiveSheet.Range("A1").PasteSpecial
    Set xNTRg = Application.ActiveSheet.Range("A1")
    xTRg.Copy
    xNTRg.Insert
    Set xRow = xRow.Offset(SplitRow)
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub


Hope it can help you, Thank you!
This comment was minimized by the moderator on the site
"Teilen Sie eine große Tabelle basierend auf der spezifischen Anzahl von Zeilen mit VBA-Code in mehrere Tabellen auf"Funktioniert echt Super. Ist es möglich dass auch Verbundene Zellen erkannt und die Anzahl der Zeilen entsprechend angepasst wird so dass die Verbundenen Zellen beim Seitenumbruch nicht getrennt werden?
This comment was minimized by the moderator on the site
Если разбиваете по строкам и строк больше, чем 32 767 то поменяйте тип данных у переменных xIER и SplitRow с Integer на Long
This comment was minimized by the moderator on the site
Ich habe die erste Variante mit 456.913 Zeilen und 8 Spalten probiert - leider ohne dass irgendwas ausgeführt wurde.
This comment was minimized by the moderator on the site
Всем привет. Столкнулся с проблемой. У меня таблица из 7 колонок и 235000 строк. Макрос не разбивает на страницы. Вернее он страницы создает но они внутри пустые. Тестировал с меньшим количеством строк примерно 1000. Макрос срабатывал. Подскажите метод решения.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations