Küpsised aitavad meil pakkuda meie teenuseid. Kasutades meie teenuseid, nõustud meie küpsiste kasutamise kohta.
Näpunäide. Teised keeled on Google'i tõlgitud. Võite külastada English selle lingi versioon.
Logi sisse
x
or
x
x
Regist.
x

or

Kuidas jagada andmed Excel'i veergude alusel mitmele töölehele?

Oletades, et teil on tööleht koos tohutute andmete rida, ja nüüd peate jagama andmed mitmele töölehele, lähtudes nimi veerg (vt joonis) ja nimed sisestatakse juhuslikult. Võimalik, et saate neid kõigepealt sorteerida ja seejärel kopeerida ja kleepida ükshaaval teistesse uutesse töölehtedesse. Kuid see nõuab teie kannatlikkust korduvalt kopeerimiseks ja kleepimiseks. Täna räägin sellest kiiret trikki selle ülesande lahendamiseks.

doc jagatud andmed veergude 1 abil

Jaotage andmed mitmele töölehele, mis põhineb VBA koodi veerul

Split andmed mitmele töölehele, mis põhineb kolonnil Kutools Exceliga


Split andmed mitme töölehe põhineb konkreetse veeru või read arv tööleht:

Kui soovite jagada suure töölehe mitmele lehele konkreetsete veeru andmete või readide arvu järgi, siis Kutools Exceli jaoks's Jagatud andmed funktsioon aitab teil seda ülesannet kiirelt ja lihtsalt lahendada.

doc jagatud andmed veergude 6 abil

Kutools Exceli jaoks: rohkem kui 200i käepärased Exceli lisandmoodulid, mida saab tasuta proovida 60 päeva jooksul ilma piiranguteta. Laadige alla ja proovige kohe proovige nüüd!


Jaotage andmed mitmele töölehele, mis põhineb VBA koodi veerul


Kui soovite jagada andmed veeru väärtuse põhjal kiiresti ja automaatselt, on hea valik VBA-koodeks. Palun tee seda järgmisena:

1. Hoidke all ALT + F11 võtmed avada Microsoft Visual Basic rakenduste jaoks aken.

2. Klõpsa Sisesta > moodulidja kleepige järgmine kood mooduli aknasse.

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. Siis vajutage F5 koodi käivitamiseks klahvile ja hüpikaken avaneb, et tuletada meelde päise rida, vaadake ekraanipilt:

doc jagatud andmed veergude 7 abil

4. Ja siis klõpsake OK nupp, ja teises vahekaardil valige veeru andmed, mida soovite jagada, vaadake ekraanipilt:

doc jagatud andmed veergude 8 abil

5. Siis klõpsake OKning kõik aktiivse töölehe andmed jagatakse veeru väärtuse alusel mitmeks tööleheks. Ja jagatud töölehed nimetatakse jagatud lahtrite nimedega. Kuva ekraanipilt:

doc jagatud andmed veergude 2 abil

märkused: Jagatud töölehed asetatakse töövihiku lõpusse, kus asub tööleht.


Split andmed mitmele töölehele, mis põhineb kolonnil Kutools Exceliga

Exceli algajaks on see pikk VBA-kood meile üsna raske ja enamik meist isegi ei tea, kuidas koodi meie vajaduste muutmiseks.

Siin tutvustan teile multifunktsionaalse tööriista -Kutools Exceli jaoks, oma Jagatud andmed kasulik mitte ainult ei aita teil jagada andmeid mitmele töölehele veeru põhjal, vaid ka andmeid jagada ridade loendusega.

Kutools Exceli jaoks : rohkem kui 300i käepärased Exceli lisandmoodulid, mida saab tasuta proovida 60 päeva jooksul ilma piiranguteta.

Kui olete installinud Kutools Exceli jaoks, palun tehke järgmist:

1. Valige andmete hulk, mida soovite jagada.

2. Klõpsa Kutools Veel > Tööleht > Jagatud andmed, vaata pilti:

doc jagatud andmed veergude 3 abil

3. Aasta Jagatud andmed mitmeks tööleheks dialoogiboksis peate:

1). Vali Konkreetne veerg valik Split põhineb jaotis ja valige veeru väärtus, mille kohta soovite andmed rippmenüüst aluseks võtta. (Kui teie andmetel on päised ja soovite neid lisada igasse uuesse jaotatud töölehelt, siis palun kontrollige Minu andmetel on päised võimalus.)

2). Seejärel saate määrata jaotatud töölehtede nimed, mille all on Uus töölehtede nimi jaotises määrake töölaua nimede reeglid Reeglid rippmenüüst saate lisada eesliide or sufiks ka lehtede nimede jaoks.

3). Klõpsake nupul OK nuppu. Vaata pilti:

doc jagatud andmed veergude 4 abil

4. Nüüd on andmed uues töövihikus jagatud mitme töölehega.

doc jagatud andmed veergude 5 abil

Klõpsake valikul Kutools Exceli jaoks ja tasuta prooviversiooni kohe alla!


Split andmed mitmele töölehele, mis põhineb kolonnil Kutools Exceliga

Kutools Exceli jaoks sisaldab rohkem kui 300i käepäraseid Exceli tööriistu. Tasuta proovida 60 päeva jooksul ilma piiranguteta. Laadige tasuta prooviversioon nüüd alla!


Seotud artikkel:

Kuidas jagada andmeid mitme töölehega ridade arvu järgi?



Soovitatavad tööriistad

Office'i vahekaart

kuldne staatus1 Tooge kasulikke kaarte Exceli ja muudele Office'i tarkvaradele, nagu Chrome, Firefox ja uus Internet Explorer.

Kutools Exceli jaoks

kuldne staatus1 Amazing! Suurendage oma tootlikkust 5 minutiga. Ei vaja erilisi oskusi, välja arvatud kaks tundi iga päev!

kuldne staatus1 300 uued funktsioonid Exceli jaoks, tee Exceli palju lihtsaks ja võimsaks:

  • Ühendage lahtrid / ridad / veerud andmete kaotamata.
  • Mitme lehe ja töövihikute kombineerimine ja konsolideerimine.
  • Võrdlema diapasse, kopeeri mitu vahemikku, teisendades teksti kuupäeva, ühiku ja valuuta konverteerimise.
  • Värvide arv, lehtede vahesummad, täiustatud sorteerimine ja superfiltrid
  • Veel Vali / Lisa / Kustuta / Tekst / Vormindus / Link / Kommentaar / Töölehed / Töölehed Tööriistad ...

Kutoolsi ekraanipilt Exceli jaoks

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.
    Dilusha · 5 months ago
    How can I get the Total of Column C for each sheets.?
  • To post as a guest, your comment is unpublished.
    Joshua · 6 months ago
    This is making new, labeled sheets for everything from my selected column, but it's not actually moving any of the associated data into the new sheets. What am I missing?
    • To post as a guest, your comment is unpublished.
      skyyang · 6 months ago
      Hello, Joshua,
      When applying the above code, you should change the references to your need, and this code is not applied correctly if your key column is date column, we will update a new code later.
  • To post as a guest, your comment is unpublished.
    Matt Carrington · 6 months ago
    Hi, great time saver, thanks. I know it is an old post but hopefully someone can help.

    My table needs splitting based on column 1, but column 1 contains dates and the result is that each new sheet doesnt contain any data. It creates the right amount of sheets but doesnt move any data. Any Ideas?
    • To post as a guest, your comment is unpublished.
      skyyang · 5 months ago
      Hello, Carrington,
      To split the data based on the date column, you should use the following vba code, but, this code is only applied to date column correctly, if your key column is normal data, please use the code in this article.
      Sub parseData_Date()
      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 xName As String
      Dim xValue As String
      Dim xArrFind As Variant
      Dim xStrReplace As String
      Dim xFNum As Integer
      Dim xRg As Range
      Set ws = Sheets("Master sheet")
      xArrFind = Array(":", "\", "/", "?", "*", "[", "]")
      xStrReplace = "_"
      vcol = 1
      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"
      On Error Resume Next
      For i = 2 To lr
      If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
      Set xRg = ws.Cells(i, vcol)
      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)
      xValue = ""
      xValue = myarr(i)
      xValue = FormatDateTime(xValue)
      xName = xValue
      For xFNum = 0 To UBound(xArrFind)
      xName = Replace(xName, xArrFind(xFNum), xStrReplace)
      Next xFNum
      ws.Range(title).AutoFilter field:=vcol, Criteria1:=xValue & ""
      If Not Evaluate("=ISREF('" & xName & "'!A1)") Then
      Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = xName & ""
      Else
      Sheets(xName & "").Move After:=Worksheets(Worksheets.Count)
      End If
      ws.Range("A" & titlerow & ":A" & lr).EntireRow.Copy Sheets(xName & "").Range("A1")
      Sheets(xName & "").Columns.AutoFit
      Next
      ws.AutoFilterMode = False
      ws.Activate
      End Sub

      Please try it, hope it can help you!
  • To post as a guest, your comment is unpublished.
    Angie · 6 months ago
    Thank you!!!
  • To post as a guest, your comment is unpublished.
    Bernarda · 7 months ago
    Hola, me sirvio el formato pero querría que lo que se copie en cada solapa nueva lleve también la formula de la base. Cómo podría hacer?