Cookieak gure zerbitzuak hornitzen laguntzen digute. Gure zerbitzuak erabiltzerakoan, cookieen erabilera onartzen duzu.
Aholkua: beste hizkuntza Google-k itzulitako dira. Bisitatu dezakezu English estekaren bertsioa.
Saioa hasi
x
or
x
x
Eman izena
x

or

Nola datuak zatitu Excel-en zutabean oinarritutako hainbat lan-fitxatan?

Datu errenkada handi batekin egindako lanen bat suposatuz, eta orain, datuen banaketa zatitu behar duzu lan-orri anitzetan. izena zutabea (ikusi pantaila-argazkia), eta izenak ausaz sartuko dira. Beharbada horrelakoetan ordenatu ditzakezu lehenik, eta gero kopiatu eta itsatsi banan-banan beste lan-orri berrietara. Hala ere, zure pazientzia behar du kopiatu eta itsasteko hainbat aldiz. Gaur egun, zeregin hau konpontzeko trikimailu azkar batzuei buruz hitz egingo dut.

doc zatitu datuak zutabeen arabera 1

Datuak zutabe anitzetan datuak banatzeko, VBA kodearekin

Zatitu datuak kalkuluarekin oinarritutako hainbat lan-fitxatan, Kutools for Excel-ekin


Zatitu zutabe zehatzetan edo lerroetan oinarritutako lan-orri anitzetan zatitutako datuak fitxan:

Lan handiak zatitu ahal izateko orri anitzetan zutabe datu zehatzak edo errenkadak zenbatzeko oinarritua izan nahi baduzu, Kutools for Excel's Zatitu datuak Ezaugarri honek zeregin hau azkar eta erraz konpontzeko lagunduko dizu.

doc zatitu datuak zutabeen arabera 6

Kutools for Excel: 200 Excel gehigarri erabilgarriak baino gehiagorekin, 60 egunetan mugarik gabe probatzeko. Deskargatu eta doako proba Orain!


Datuak zutabe anitzetan datuak banatzeko, VBA kodearekin


Zutabe-balioan oinarritutako datuak modu azkar eta automatikoki zatitu nahi badituzu, VBA kode hau aukera ona da. Egin hau honela:

1. Eutsi behera ALT + F11 teklak irekitzeko Microsoft Visual Basic aplikazioak leihoa.

2. Egin klik Txertatu > Moduluak, eta ondorengo kodea itsats ezazu Moduluaren leihoan.

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. Ondoren, sakatu F5 key to run the code, and a prompt box is popped out to remind you select the header row, see screenshot:

doc zatitu datuak zutabeen arabera 7

4. Eta gero, egin klik OK button, and in the second prompt box, please select the column data that you want to split based on, see screenshot:

doc zatitu datuak zutabeen arabera 8

5. Ondoren, egin klik OK, and all data in the active worksheet is split into multiple worksheets by the column value. And the split worksheets are named with the split cell names. See screenshot:

doc zatitu datuak zutabeen arabera 2

Ohar: Masterra fitxan dagoen laneko liburuaren amaieran kokatutako zatien orriak daude.


Zatitu datuak kalkuluarekin oinarritutako hainbat lan-fitxatan, Kutools for Excel-ekin

Excel hasiberri gisa, VBA kode luze hau zertxobait zaila da guretzat, eta gehienak ez dakigu kodea nola aldatu behar dugun.

Hemen, funtzio anitzeko tresna bat aurkeztuko dut.Kutools for Excel, bere Zatitu datuak Erabilgarritasuna ez bakarrik zutabeetan oinarritutako datu-orri anitzetan datuak zatitzeko lagungarri izan zaitezke, baina datuak zatitu ditzakezu errenkada kopuruarekin.

Kutools for Excel : 300 Excel erabilgarriak baino gehiagorekin, doako 60 egunetan mugak ez erabiltzeko.

Instalatu baduzu Kutools for Excel, egin honela:

1. Hautatu zatitu nahi duzun datu-barrutia.

2. Egin klik Kutools gehiago > Lan-orri > Zatitu datuak, ikusi pantaila-argazkia:

doc zatitu datuak zutabeen arabera 3

3. In the Split Data Worksheets anitzetan Elkarrizketa koadroa, honako hau egin behar duzu:

1). Aukeratu Zutabe espezifikoa Aukerarako Split oinarritutako atala, eta hautatu goitibeherako zerrendan oinarritutako datu zatitu nahi duzun zutabe-balioa. (Zure datuek goiburuak badituzte eta zatitu berrien fitxan sartu nahi badituzu, egiaztatu Nire datuak goiburuak ditu Aukera.)

2). Ondoren zatitutako lanen izenak zehaztu ditzakezu, azpian Fitxen izen berria atala, zehaztu laneko izenak arauetatik Arauak goitibeherako zerrenda, gehitu dezakezu aurrizkia or Suffix baita orriaren izenak ere.

3). Egin klik OK botoia. Ikusi pantaila-argazkia:

doc zatitu datuak zutabeen arabera 4

4. Orain datuak lan-orri berri batean fitxak anitzetan banatzen dira.

doc zatitu datuak zutabeen arabera 5

Klikatu deskarga Kutools for Excel eta doako proba orain!


Zatitu datuak kalkuluarekin oinarritutako hainbat lan-fitxatan, Kutools for Excel-ekin

Kutools for Excel Excel 300 tresna erabilgarriak baino gehiago ditu. Doako 60 egunetan mugarik gabe saiatu. Jaitsi doako proba orain!


Artikulu erlazionatuak:

Nola banatu datu-orri anitzetako fitxetan errenkaden zenbaketa?



Gomendatutako produktibitate tresnak

Bulegoko fitxa

urrezko izarra1 Lortu erabilgarriak fitxak Excelera eta beste Office softwarearentzako, Chrome bezalakoak, Firefox eta Internet Explorer berriak.

Kutools for Excel

urrezko izarra1 Harrigarria! Handitu zure produktibitatea 5 minutu barru. Ez duzu gaitasun berezirik behar, bi ordu egunero gorde!

urrezko izarra1 300 Ezaugarri berriak Excel-era, Egin Excel oso erraza eta indartsua:

  • Batu gelaxkak / errenkadak / zutabeak datuak galdu gabe.
  • Konbinatu eta finkatzea orri anitzeko lanak.
  • Compare Ranges, Copy Multiple Ranges, Convert Text to Date, Unit eta Currency Conversion.
  • Koloreak arabera, Orrialdeak guztira, Sortu aurreratua eta Super iragazkia,
  • Gehiago Hautatu / Txertatu / Ezabatu / Testua / Formatua / Esteka / Iruzkina / Lan-liburuak / Fitxen tresnak ...

Kutools-en Excel-eko pantaila-argazkia

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 · 8 hours 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!