Piškotki nam pomagajo dostaviti naših storitev. Z uporabo naših storitev se strinjate z našo uporabo piškotkov.
Namig: drugi jeziki so prevedeni v Google. Lahko obiščete English različico te povezave.
Vpiši se
x
or
x
x
Registracija
x

or

Kako razdeliti podatke na več delovnih listov, ki temeljijo na stolpcu v Excelu?

Če menite, da imate delovni list z ogromnimi vrsticami podatkov, zdaj pa morate podatke razdeliti na več delovnih listov, ki temeljijo na Imenu stolpec (glejte naslednjo sliko), imena pa se naključno vnesejo. Morda jih lahko najprej razvrstite in jih nato kopirate in prilepite drug na drugega v druge nove delovne liste. Toda to bo potrebno potrpljenje, ki jo boste večkrat kopirali in prilepili. Danes se bom pogovoril o nekaterih hitrih trikih, da bi rešil to nalogo.

doc razdeli podatke po stolpcih 1

Razdelite podatke na več delovnih listov, ki temeljijo na stolpcu s kodo VBA

Razdelite podatke v več delovnih listov, ki temeljijo na stolpcu z orodji Kutools for Excel


Razdelite podatke na več delovnih listov na podlagi določenega števila stolpcev ali vrstic v delovnem listu:

Če želite razdeliti velik delovni list v več listov na podlagi določenih podatkov stolpcev ali vrstic, Kutools za Excel's Spletni podatki funkcija vam lahko pomaga hitro in enostavno rešiti to nalogo.

doc razdeli podatke po stolpcih 6

Kutools za Excel: z več kot 200 priročnimi dodatki Excel, lahko brezplačno poskusite brez omejitev v dnevih 60. Prenesite in brezplačno preizkusite zdaj!


Razdelite podatke na več delovnih listov, ki temeljijo na stolpcu s kodo VBA


Če želite hitro in samodejno razdeliti podatke na podlagi vrednosti stolpca, je naslednja VBA koda dobra izbira. Prosimo, naredite tako:

1. Drži dol ALT + F11 tipke za odpiranje Microsoft Visual Basic za aplikacije okno.

2. Kliknite Vstavi > Moduliin prilepite naslednjo kodo v okno modula.

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. Nato pritisnite F5 ključ za zagon kode in izpisano okno s pozivom, ki vas opomni, da izberete zagonsko vrstico, glejte posnetek zaslona:

doc razdeli podatke po stolpcih 7

4. In nato kliknite OK in v drugem polju za poziv izberite podatke stolpca, ki jih želite razdeliti glede na, glej posnetek zaslona:

doc razdeli podatke po stolpcih 8

5. Nato kliknite OKin vsi podatki v aktivnem delovnem listu so razdeljeni na več delovnih listov z vrednostjo stolpca. Deljene liste so poimenovane z imeni razcepljenih celic. Oglejte si posnetek zaslona:

doc razdeli podatke po stolpcih 2

Opombe: Deljeni delovni listi se nahajajo na koncu delovni zvezki, kjer je glavni delovni list.


Razdelite podatke v več delovnih listov, ki temeljijo na stolpcu z orodji Kutools for Excel

Kot začetnik Excela je ta dolga VBA koda za nas nekoliko težavna in večina od nas niti ne ve, kako spremeniti kodo kot našo potrebo.

Tukaj vam predstavim večnamensko orodje -Kutools za Excel, njeno Spletni podatki pripomoček vam ne more samo pomagati razdeliti podatkov na več delovnih pregledov na podlagi stolpca, temveč lahko tudi razdeli podatke po številu vrstic.

Kutools za Excel : z več kot 300 priročnimi dodatki Excel, lahko brezplačno poskusite brez omejitev v dnevih 60.

Če ste namestili Kutools za Excel, storite naslednje:

1. Izberite obseg podatkov, ki jih želite razdeliti.

2. Kliknite Kutools Plus > Delovni list > Spletni podatki, si oglejte sliko zaslona:

doc razdeli podatke po stolpcih 3

3. v Razdelite podatke v več delovnih listov pogovorno okno, morate:

1). Izberite Posebni stolpec možnost v Split temelji na in izberite vrednost stolpca, na katero želite razdeliti podatke, ki temeljijo na spustnem seznamu. (Če imajo vaši podatki glave in jih želite vstaviti v vsak nov razdeljen delovni list, prosimo, preverite Moji podatki imajo glave možnost.)

2). Nato lahko določite imena deljenih delov del, pod Novo ime delovnega lista v razdelku, določite pravila o imenih delovnih listov Pravila spustni seznam, lahko dodate Prefiks or pripona tudi za imena plošč.

3). Kliknite na OK gumb. Prikaz slike:

doc razdeli podatke po stolpcih 4

4. Zdaj so podatki razdeljeni na več delovnih listov v novem delovnem zvezku.

doc razdeli podatke po stolpcih 5

Kliknite za prenos Kutools za Excel in brezplačno preizkusite zdaj!


Razdelite podatke v več delovnih listov, ki temeljijo na stolpcu z orodji Kutools for Excel

Kutools za Excel vključuje več kot 300 priročno orodje Excel. Prosti brez omejitev v 60 dneh. Prenesite brezplačen preskus zdaj!


Povezani članek:

Kako razdeliti podatke na več delovnih listov po številu vrstic?



Priporočena orodja za produktivnost

Office Tab

zlata zvezda1 Pripeljite priročne zavihke v programsko opremo Excel in drugo programsko opremo, tako kot Chrome, Firefox in novi Internet Explorer.

Kutools za Excel

zlata zvezda1 Neverjetno! Povečajte produktivnost v minutah 5. Ne potrebujete posebnih veščin, prihranite dve uri vsak dan!

zlata zvezda1 300 Nove funkcije za Excel, naredite Excel precej enostavno in zmogljivo:

  • Spoji celice / vrstice / stolpci brez izgube podatkov.
  • Združite in konsolidirajte več listov in delovnih zvezkov.
  • Primerjajte obsege, kopiraj več razponov, pretvorite besedilo v datum, pretvorbo enote in valute.
  • Count by Colors, Paging Subtotals, Advanced Sort in Super Filter,
  • Več Izberite / Vstavi / Izbriši / Besedilo / Format / Povezava / Komentar / Delovne knjige / Delovni listi ...

Zaslonski posnetek Kutools za 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.
    Rudi Miller · 3 days ago
    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: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
  • 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!