Padoms. Citas valodas ir Google tulkotas. Jūs varat apmeklēt English šīs saites versiju.
Pieslēgties
x
or
x
x
Reģistrēties
x

or

Kā sadalīt datus vairākās darblapās, pamatojoties uz kolonnu Excel?

Pieņemot, ka jums ir darblapa ar milzīgām datu rindām, un tagad jums ir jāsadala dati vairākās darblapās, pamatojoties uz nosaukums kolonna (sk. sekojošo ekrānuzņēmumu), un vārdi tiek ievadīti nejauši. Varbūt jūs vispirms varat kārtot tos, pēc tam tos pa vienam kopēt un ielīmēt citos jaunos darblapās. Bet tam būs nepieciešama jūsu pacietība, lai atkārtotu kopēšanu un ielīmēšanu. Šodien es runāšu par dažiem ātrajiem trikiem, lai atrisinātu šo uzdevumu.

doc sadalīt datus pēc kolonnām 1

Sadalīt datus vairākās darblapās, pamatojoties uz kolonnu ar VBA kodu

Sadalīt datus vairākās darblapās, pamatojoties uz kolonnu ar Kutools Excel


Sadalīt datus vairākās darblapās, pamatojoties uz konkrētu sleju vai rindu skaitu darblapā:

Ja vēlaties sadalīt lielu darblapu vairākās lapās, pamatojoties uz konkrētiem kolonnu datiem vai rindu skaitu, tad Kutools Excel's Sadalīt datus funkcija var palīdzēt jums ātri un viegli atrisināt šo uzdevumu.

doc sadalīt datus pēc kolonnām 6

Kutools Excel: ar vairāk nekā 200 ērtiem Excel pievienojumprogrammām, bez maksas izmēģināt bez ierobežojumiem 60 dienās. Lejupielādēt un bezmaksas izmēģinājuma versija tūlīt!


Sadalīt datus vairākās darblapās, pamatojoties uz kolonnu ar VBA kodu


Ja vēlaties ātri un automātiski sadalīt datus, balstoties uz kolonnu vērtībām, laba izvēle ir šāds VBA kods. Lūdzu, rīkojieties šādi:

1. Turiet nospiestu ALT + F11 taustiņi, lai atvērtu Microsoft Visual Basic for Applications logs.

2. Noklikšķiniet ielaidums > Moduļiun ielīmējiet moduļa logā šādu kodu.

Sub Splitdatabycol()
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. Pēc tam nospiediet F5 taustiņš, lai palaistu kodu, un tiek parādīts uzvednes lodziņš, lai atgādinātu jums par galvenes rindu, skatiet ekrānuzņēmumu:

doc sadalīt datus pēc kolonnām 7

4. Un pēc tam noklikšķiniet uz OK un otrajā lodziņā, lūdzu, atlasiet kolonnas datus, kurus vēlaties sadalīt, pamatojoties uz, skatiet ekrānuzņēmumu:

doc sadalīt datus pēc kolonnām 8

5. Pēc tam noklikšķiniet uz OK, un visi dati aktīvajā darblapā ir sadalīti vairākās darblapās pēc kolonnas vērtības. Un sadalītās darblapas tiek nosauktas ar sadalīto šūnu nosaukumiem. Skatīt ekrānuzņēmumu:

doc sadalīt datus pēc kolonnām 2

Piezīmes: Sadalītās darblapas ievieto darbgrāmatas galā, kurā atrodas galvenā darblapa.


Sadalīt datus vairākās darblapās, pamatojoties uz kolonnu ar Kutools Excel

Kā Excel iesācējs šis ilgs VBA kods mums ir nedaudz grūti, un lielākā daļa no mums pat nezina, kā modificēt kodu kā mūsu vajadzību.

Šeit es jūs iepazīstināšu ar daudzfunkcionālu rīku -Kutools Excel, tā Sadalīt datus lietderība ne tikai var palīdzēt sadalīt datus vairākās darblapās, pamatojoties uz kolonnu, bet arī var sadalīt datus pēc rindu skaita.

Kutools Excel : ar vairāk nekā 300 ērtiem Excel pievienojumprogrammām, bez maksas izmēģināt bez ierobežojumiem 60 dienās.

Ja esat instalējis Kutools Excel, lūdzu, rīkojieties šādi:

1. Atlasiet datu diapazonu, kuru vēlaties sadalīt.

2. Noklikšķiniet Kutools Vairāk > Darba lapa > Sadalīt datus, skatiet ekrānuzņēmumu:

doc sadalīt datus pēc kolonnām 3

3. Iekš Sadalīt datus vairākās darblapās dialoglodziņš jums:

1). Izvēlieties Konkrēta kolonna iespēja Split balstīts uz sadaļā un atlasiet sleju vērtību, uz kuru vēlaties sadalīt datus, pamatojoties uz nolaižamo sarakstu. (Ja jūsu datiem ir galvenes un vēlaties tos ievietot katrā jaunajā sadalītajā darblapā, lūdzu, pārbaudiet Maniem datiem ir galvenes iespēja.)

2). Tad jūs varat norādīt split darblapas nosaukumus, zem Jauns darblapu nosaukums sadaļā norādiet darblapas nosaukumu noteikumus no Noteikumi nolaižamo sarakstu, jūs varat pievienot Prefikss or piedēklis par lapu nosaukumiem, kā arī.

3). Noklikšķiniet uz OK poga Skatīt ekrānuzņēmumu:

doc sadalīt datus pēc kolonnām 4

4. Tagad dati jaunajā darbgrāmatā ir sadalīti vairākos darblapās.

doc sadalīt datus pēc kolonnām 5

Noklikšķiniet, lai lejupielādētu Kutools programmā Excel un bezmaksas izmēģinājuma versiju tagad!


Sadalīt datus vairākās darblapās, pamatojoties uz kolonnu ar Kutools Excel

Kutools Excel ietver vairāk par 300 ērtiem Excel rīkiem. Bezmaksas mēģināt bez ierobežojumiem 60 dienās. Lejupielādējiet bezmaksas izmēģinājuma versiju tagad!


Saistītais raksts:

Kā sadalīt datus vairākās darblapās pēc rindu skaita?



Ieteicamie produktivitātes rīki

Cilnē Office

zelta zvaigzne1 Novietojiet parocīgas cilnes Excel un citai Office programmatūrai, tāpat kā Chrome, Firefox un jaunā Internet Explorer.

Kutools Excel

zelta zvaigzne1 Pārsteidzošs! Palieliniet savu produktivitāti 5 minūtēs. Nepieciešamas īpašas prasmes, izņemot katru dienu divas stundas!

zelta zvaigzne1 300 jaunas funkcijas Excel, Make Excel daudz viegli un jaudīgu:

  • Apvienot šūnu / rindas / kolonnas, nezaudējot datus.
  • Apvienot un konsolidēt vairākas lapas un darbgrāmatas.
  • Salīdziniet diapazonus, kopējiet vairākus diapazonus, pārveidojiet tekstu uz datumu, vienību un valūtas konvertēšanu.
  • Count by Colors, Paging Starpsvars, Advanced Kārtot un Super Filter,
  • Vairāk Izvēlēties / Ievietot / Dzēst / Teksts / Format / Saite / Komentārs / Darbgrāmatas / Darblapas Rīki ...

Kutools ekrānuzņēmums Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Bekki · 5 years ago
    You are my all time hero! I have hunted for this for months with no luck. I have to do this weekly/monthly breaking reports into 147+ worksheets and they wont get me kutools.

    On that note.. I really need to learn coding. :(

    But thank you!
  • To post as a guest, your comment is unpublished.
    MieMie · 5 years ago
    The code worked like a charm for a smaller data (less than 1200 rows). I tried to use on the bigger worksheet with (17000 rows) and it just crashed after splitting into 10-12 sheets. So we tried to split the original data into 3 different workbooks and still shut us down. We have Windows 7 and our computers are not that slow either. Do you suggest any limited rows on data to use this code safely? Any suggestion would be appreciated.
    • To post as a guest, your comment is unpublished.
      Abel Solomon · 3 years ago
      The code worked like a charm for a smaller data (less than 1200 rows). I tried to use on the bigger worksheet with (17000 rows) and it just crashed after splitting into 10-12 sheets. So we tried to split the original data into 3 different workbooks and still shut us down. We have Windows 7 and our computers are not that slow either. Do you suggest any limited rows on data to use this code safely? Any suggestion would be appreciated.
      What I'm not sure is: What's the max number of rows the macro can support? I could play around with it... It's somewhere between 20k and 40k![/quote]
      • To post as a guest, your comment is unpublished.
        Shrikant · 1 years ago
        Facing same issue.
        Code works for sheets where data is less rows, however for larger data it shows error as "Excel cannot complete this task with available resources. Choose less data or close other applications" (there is no any other application working at same time)

        The code worked like a charm for a smaller data (less than 1200 rows). I tried to use on the bigger worksheet with (17000 rows) and it just crashed after splitting into 10-12 sheets. So we tried to split the original data into 3 different workbooks and still shut us down. We have Windows 7 and our computers are not that slow either. Do you suggest any limited rows on data to use this code safely? Any suggestion would be appreciated.
  • To post as a guest, your comment is unpublished.
    Gopinath · 5 years ago
    Amazing. Thanks for posting.
  • To post as a guest, your comment is unpublished.
    Aditi · 5 years ago
    Awesome.. This was stunning. I was struggling with this problem for so long and this code came in as a respite.

    Thanks for sharing it.
  • To post as a guest, your comment is unpublished.
    Jonathan · 5 years ago
    Thank you so much, this worked great. However, what hapens if I want the data within each tab sorted again (using anther column)? Basically, this VBA breaks it into tabs but I may want it broken down further..is that possible?
    • To post as a guest, your comment is unpublished.
      Ben · 2 years ago
      Hi Jonathan,

      Old comment I know, but might be helpful for others in the future:

      I needed to do this but couldnt find an easy way with the VBA. However, I found that if you make a new Column in your Spreadsheet as an amalgamation of the 2, so eg

      =A1&" "&A2

      This then gives you 1 Cell with both sets of information. You can then run the above module and it works fine!

      Edit - The data in the collumns needs to be shorter than 30 Characters, otherwise the data is not copied across (shows as an error on the Module) and you get a blank sheet in the middle of your new Sheets.