Kex hjálpa okkur að veita þjónustuna. Með því að nota þjónustu okkar, samþykkir þú að notkun okkar á kökum.
Ábending: Önnur tungumál eru Google-þýdd. Þú getur heimsótt English útgáfa af þessum tengil.
Skrá inn
x
or
x
x
Nýskráning
x

or

Hvernig á að skipta gögnum í margar vinnublöð byggt á dálki í Excel?

Segjum að þú hafir verkstæði með miklum raðum gagna og nú þarftu að skipta gögnum í margar vinnublöð byggt á heiti dálki (sjá eftirfarandi skjámynd) og nöfnin eru slegin í handahófi. Kannski er hægt að raða þeim fyrst og síðan afrita og líma þær eitt í einu í aðra nýju vinnublaði. En þetta mun þurfa þolinmæði þína að afrita og líma endurtekið. Í dag mun ég tala um nokkrar fljótur brellur til að leysa þetta verkefni.

doc skipt gögn með dálkum 1

Skiptu gögnum í margar vinnublöð á grundvelli dálks með VBA kóða

Skiptu gögnum í margar vinnublöð byggt á dálki með Kutools fyrir Excel


Skiptu gögnum í margar vinnublöð á grundvelli tiltekinna dálka eða raða telja í verkstæði:

Ef þú vilt skipta stórum verkstæði í margar blöð byggt á tilteknum dálgögnum eða raðir telja, þá Kutools fyrir Excel's Split Gögn eiginleiki getur hjálpað þér að leysa þetta verkefni fljótt og auðveldlega.

doc skipt gögn með dálkum 6

Kutools fyrir Excel: með fleiri en 200 handhægum Excel viðbótum, ókeypis að reyna án takmörkunar á 60 daga. Niðurhal og ókeypis prufa núna!


Skiptu gögnum í margar vinnublöð á grundvelli dálks með VBA kóða


Ef þú vilt skipta gögnum á grundvelli dálksgildi fljótt og sjálfkrafa, er eftirfarandi VBA kóða gott val. Vinsamlegast gerðu eftirfarandi:

1. Haltu niður ALT + F11 lyklar til að opna Microsoft Visual Basic fyrir forrit gluggi.

2. Smelltu Setja > Mát, og líma eftirfarandi kóða í Module glugganum.

Sub parse_data()
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
vcol = 1        
Set ws = Sheets("Master sheet")        
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = "A1:C1"            
titlerow = ws.Range(title).Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
For i = 2 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
ws.Range("A" & titlerow & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A1")
Sheets(myarr(i) & "").Columns.AutoFit
Next
ws.AutoFilterMode = False
ws.Activate
End Sub

Athugaðu: Í ofangreindum kóða:

  • vcol = 1 , númerið 1 er dálknúmerið sem þú vilt skipta um gögnin byggjast á.
  • Setja ws = Sheets ("Master sheet"), Master blað er blaðsnafnið sem þú vilt nota þennan kóða.
  • title = "A1: C1" , A1: C1 er svið titilsins.

Allir þeirra eru breytur, þú getur breytt þeim eftir þörfum þínum.

3. Ýttu síðan á F5 lykillinn að því að keyra kóðann eru öll gögnin í virka vinnublaðinu skipt í margar vinnublöð með dálknum. Og deildu vinnublöðin eru nefnd með skiptum klefinu. Sjá skjámynd:

doc skipt gögn með dálkum 2

Athugaðu: Verkalistarnir eru settar í lok vinnubókarinnar þar sem verkstæði verkstjóra er í.


Skiptu gögnum í margar vinnublöð byggt á dálki með Kutools fyrir Excel

Sem Excel byrjandi, þetta langa VBA kóða er nokkuð erfitt fyrir okkur, og flest okkar vita jafnvel ekki hvernig á að breyta númerinu sem þörf okkar.

Hér mun ég kynna þér multifunctional tól -Kutools fyrir Excel, þess Split Gögn gagnsemi getur ekki aðeins hjálpað þér að skipta gögnum í margar vinnublöð byggðar á dálki, en einnig er hægt að skipta um gögnum eftir raunum.

Kutools fyrir Excel : með fleiri en 300 handvirka viðbótartillögur, ókeypis til að reyna án takmarkana á 60 daga.

Ef þú hefur sett upp Kutools fyrir Excel, vinsamlegast gerðu eftirfarandi:

1. Veldu fjölda gagna sem þú vilt skipta.

2. Smelltu Kutools Meira > Verkstæði > Split Gögn, sjá skjámynd:

doc skipt gögn með dálkum 3

3. Í Skiptu gögnum í marga vinnuskilta valmynd, þú þarft að:

1). Veldu Sérstakur dálki valkostur í Split byggt á kafla og veldu dálkargildi sem þú vilt skipta um gögnin byggð á í fellilistanum. (Ef gögnin þín eru með haus og þú vilt setja þær inn í hvert nýtt verkaskil, vinsamlegast athugaðu Gögnin mín eru með fyrirsagnir valkostur.)

2). Þá er hægt að tilgreina skipt heiti vinnublaðsins, undir Nýr vinnublaðsheiti kafla, tilgreindu reglureiknistafnareglur frá Reglur falla niður lista, þú getur bætt við Forskeyti or viðskeyti fyrir lak nöfn eins og heilbrigður.

3). Smelltu á OK takki. Sjá skjámynd:

doc skipt gögn með dálkum 4

4. Nú eru gögnin skipt í margar vinnublöð í nýjum vinnubók.

doc skipt gögn með dálkum 5

Smelltu til að hlaða niður Kutools fyrir Excel og ókeypis prufa núna!


Skiptu gögnum í margar vinnublöð byggt á dálki með Kutools fyrir Excel

Kutools fyrir Excel inniheldur meira en 300 handvirka Excel verkfæri. Frjáls til að reyna án takmörkunar á 60 daga. Sækja ókeypis prufuna núna!


Tengd grein:

Hvernig á að skipta gögnum í margar vinnublöð með því að raða telja?



Ráðlögð framleiðni verkfæri

Office flipi

gull star1 Komdu með handan flipa í Excel og önnur Office hugbúnaður, eins og Króm, Firefox og nýjan Internet Explorer.

Kutools fyrir Excel

gull star1 Ótrúlegt! Auka framleiðni þína á 5 mínútum. Ekki þörf á sérstökum hæfileikum, spara tvær klukkustundir á hverjum degi!

gull star1 300 Nýjar eiginleikar fyrir Excel, Gera Excel mjög auðvelt og öflugt:

  • Sameina Cell / Rows / dálka án þess að tapa gögnum.
  • Sameina og sameina margar töflur og vinnubækur.
  • Bera saman sviðum, afritaðu margar línur, umbreyta texta í dag, einingar og gjaldmiðil viðskipta.
  • Fjöldi með litum, síðuskiptafjölda, háþróaður flokkur og frábær sía,
  • Meira Veldu / Setja / Eyða / Texti / Snið / Link / Athugasemd / Vinnubækur / Verkstæði Verkfæri ...

Skjár skot af Kutools fyrir 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.
    Jason · 1 months ago
    This formula is great, works perfectly for me.
    I want to split out data based on a location, which is in column 1. Which this does.
    However, is it possible to also split out based on column 2, for example. Built and Not Built. So a secondary condition also?
  • To post as a guest, your comment is unpublished.
    jose · 1 months ago
    can someone help please im using this but i keep getting to many columns. i have to keep deleting rows every time i use this.

    This is what im using


    Sub parse_data()
    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
    vcol = 1
    Set ws = Sheets("sheet1")
    lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
    title = "A1:AN1"
    titlerow = ws.Range(title).Cells(1).Row
    icol = ws.Columns.Count
    ws.Cells(1, icol) = "Unique"
    For i = 2 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
    ws.Range("A" & titlerow & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A1")
    Sheets(myarr(i) & "").Columns.AutoFit
    Next
    ws.AutoFilterMode = False
    ws.Activate
    End Sub
  • To post as a guest, your comment is unpublished.
    avinash · 1 months ago
    Thanks for VBA, it works great. In addition to that question, I have column which is dependent. So when i select some value my column values get changed hence I need vba solution to replace earlier split worksheet to replace with new value of columns. Can anyone help me out.?

    Thanks in advance
  • To post as a guest, your comment is unpublished.
    JP Tontegode · 1 months ago
    Is there a way to have the macro create a separate spreadsheet for each new tab instead of just adding a tab into the current worksheet? Thanks!
  • To post as a guest, your comment is unpublished.
    Sebastian · 1 months ago
    Effectively, this code does work great. I wrote an additional code so that I could get subtotal on certain columns but it has not worked great. So I tried running the subtotals from the master list, but afterwards when I use this macro it create a whole new tab for the Grand total row. So I am getting two two tabs per split. the first one is fine because it splits with the grand totals, but then creates a second one with just the grand total row. Any help as to how to modify this.
    This is the code that I am currently using:
    Sub parse_data()
    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
    vcol = 3
    Set ws = Sheets("Master sheet")
    lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
    title = "A1:R1"
    titlerow = ws.Range(title).Cells(1).Row
    icol = ws.Columns.Count
    ws.Cells(1, icol) = "Unique"
    For i = 2 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
    ws.Range("A" & titlerow & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A1")
    Sheets(myarr(i) & "").Columns.AutoFit
    Next
    ws.AutoFilterMode = False
    ws.Activate
    End Sub