Τα cookies μάς βοηθούν να παρέχουμε τις υπηρεσίες μας. Με τη χρήση των υπηρεσιών μας, συμφωνείτε με τη χρήση των cookies.
Συμβουλή: Άλλες γλώσσες μεταφράζονται από την Google. Μπορείτε να επισκεφθείτε το English έκδοση αυτής της σύνδεσης.
Σύνδεση
x
or
x
x
Κανω ΕΓΓΡΑΦΗ
x

or

Πώς να χωρίσετε τα δεδομένα σε πολλαπλά φύλλα εργασίας με βάση στήλη στο Excel;

Υποθέτοντας ότι έχετε ένα φύλλο εργασίας με τεράστιες σειρές δεδομένων, και τώρα, θα πρέπει να χωρίσετε τα δεδομένα σε πολλαπλά φύλλα εργασίας βάσει του Ονομα (δείτε το παρακάτω στιγμιότυπο οθόνης) και τα ονόματα εισάγονται τυχαία. Ίσως μπορείτε να τα ταξινομήσετε πρώτα, και στη συνέχεια να τα αντιγράψετε και να τα επικολλήσετε ένα προς ένα σε άλλα νέα φύλλα εργασίας. Αλλά αυτό θα χρειαστεί την υπομονή σας να αντιγράψετε και να επικολλήσετε επανειλημμένα. Σήμερα, θα μιλήσω για μερικά γρήγορα κόλπα για να λύσω αυτό το έργο.

doc διαχωρισμός δεδομένων κατά στήλες 1

Διαχωρίστε τα δεδομένα σε πολλά φύλλα εργασίας βάσει στήλης με κώδικα VBA

Διαχωρίστε τα δεδομένα σε πολλαπλά φύλλα εργασίας με βάση τη στήλη Kutools για Excel


Διαχωρισμός δεδομένων σε πολλαπλά φύλλα εργασίας με βάση συγκεκριμένες στήλες ή σειρές σε φύλλο εργασίας:

Αν θέλετε να χωρίσετε ένα μεγάλο φύλλο εργασίας σε πολλαπλά φύλλα με βάση συγκεκριμένα δεδομένα ή σειρές στηλών, το Kutools για το Excel's Διαχωρίστε τα δεδομένα χαρακτηριστικό μπορεί να σας βοηθήσει να επιλύσετε αυτό το έργο γρήγορα και εύκολα.

doc διαχωρισμός δεδομένων κατά στήλες 6

Kutools για το Excel: με περισσότερα από τα εύχρηστα πρόσθετα Excel του 200, μπορείτε να δοκιμάσετε χωρίς περιορισμούς σε ημέρες 60. Λήψη και δοκιμή δωρεάν τώρα!


Διαχωρίστε τα δεδομένα σε πολλά φύλλα εργασίας βάσει στήλης με κώδικα VBA


Αν θέλετε να χωρίσετε τα δεδομένα με βάση την τιμή στήλης γρήγορα και αυτόματα, ο ακόλουθος κώδικας VBA είναι μια καλή επιλογή. Παρακαλούμε κάντε τα εξής:

1. Κρατήστε πατημένο το ALT + F11 για να ανοίξετε το Microsoft Visual Basic για εφαρμογές παράθυρο.

2. Κλίκ Κύριο θέμα > Μονάδα μέτρησης, και επικολλήστε τον ακόλουθο κώδικα στο παράθυρο μονάδας.

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. Στη συνέχεια, πατήστε F5 κλειδί για να εκτελέσετε τον κώδικα και εμφανίζεται ένα παράθυρο διαλόγου για να σας υπενθυμίσω την επιλογή της γραμμής κεφαλίδας, δείτε το στιγμιότυπο οθόνης:

doc διαχωρισμός δεδομένων κατά στήλες 7

4. Και στη συνέχεια, κάντε κλικ στο κουμπί OK και στο δεύτερο πλαίσιο επιλογής, επιλέξτε τα δεδομένα της στήλης που θέλετε να χωρίσετε με βάση, δείτε το στιγμιότυπο οθόνης:

doc διαχωρισμός δεδομένων κατά στήλες 8

5. Στη συνέχεια, κάντε κλικ στο κουμπί OK, και όλα τα δεδομένα στο ενεργό φύλλο εργασίας διαιρούνται σε πολλαπλά φύλλα εργασίας με την τιμή της στήλης. Και τα διαχωρισμένα φύλλα εργασίας ονομάζονται με τα ονόματα διαχωρισμένων κελιών. Δείτε το στιγμιότυπο οθόνης:

doc διαχωρισμός δεδομένων κατά στήλες 2

Note: Τα διαχωρισμένα φύλλα εργασίας τοποθετούνται στο τέλος του βιβλίου εργασίας όπου βρίσκεται το κύριο φύλλο εργασίας.


Διαχωρίστε τα δεδομένα σε πολλαπλά φύλλα εργασίας με βάση τη στήλη Kutools για Excel

Ως αρχάριος του Excel, αυτός ο μακρύς κώδικας VBA είναι κάπως δύσκολος για εμάς, και οι περισσότεροι από μας δεν γνωρίζουν καν πώς να τροποποιήσουν τον κώδικα ως την ανάγκη μας.

Εδώ, θα σας συστήσω ένα πολυλειτουργικό εργαλείο--Kutools για το Excel, της Διαχωρίστε τα δεδομένα το βοηθητικό πρόγραμμα όχι μόνο μπορεί να σας βοηθήσει να χωρίσετε δεδομένα σε πολλαπλά φύλλα εργασίας με βάση τη στήλη, αλλά επίσης να χωρίσετε τα δεδομένα με βάση τις σειρές γραμμών.

Kutools για το Excel : με περισσότερα από τα εύχρηστα πρόσθετα Excel του 300, δωρεάν να δοκιμάσετε χωρίς περιορισμούς σε ημέρες 60.

Εάν έχετε εγκαταστήσει Kutools για το Excel, κάντε τα εξής:

1. Επιλέξτε το εύρος των δεδομένων που θέλετε να διαχωρίσετε.

2. Κλίκ Kutools Περισσότερα > Φύλλο εργασίας > Διαχωρίστε τα δεδομένα, δείτε το στιγμιότυπο οθόνης:

doc διαχωρισμός δεδομένων κατά στήλες 3

3. Στην Διαχωρίστε τα δεδομένα σε πολλαπλά φύλλα εργασίας , πρέπει να:

1). Επιλέγω Ειδική στήλη επιλογή του Διαίρεση με βάση και επιλέξτε την τιμή της στήλης που θέλετε να διαχωρίσετε τα δεδομένα που βασίζονται στην αναπτυσσόμενη λίστα. (Εάν τα δεδομένα σας έχουν κεφαλίδες και θέλετε να τα εισαγάγετε σε κάθε νέο φύλλο εργασίας, ελέγξτε Τα δεδομένα μου έχουν κεφαλίδες επιλογή.)

2). Στη συνέχεια, μπορείτε να ορίσετε τα ονόματα των φύλλων διαχωρισμού, κάτω από το Νέο όνομα φύλλου εργασίας , καθορίστε τους κανόνες ονομάτων του φύλλου εργασίας από το Κανόνες μπορείτε να προσθέσετε το Πρόθεμα or Κατάληξη για τα ονόματα των φύλλων επίσης.

3). Κάντε κλικ στο OK κουμπί. Δείτε το στιγμιότυπο οθόνης:

doc διαχωρισμός δεδομένων κατά στήλες 4

4. Τώρα τα δεδομένα χωρίζονται σε πολλαπλά φύλλα εργασίας σε ένα νέο βιβλίο εργασίας.

doc διαχωρισμός δεδομένων κατά στήλες 5

Κάντε κλικ για να κάνετε λήψη του Kutools για Excel και δωρεάν δοκιμή τώρα!


Διαχωρίστε τα δεδομένα σε πολλαπλά φύλλα εργασίας με βάση τη στήλη Kutools για Excel

Kutools για το Excel περιλαμβάνει περισσότερα από εύχρηστα εργαλεία Excel του 300. Δωρεάν για να δοκιμάσετε χωρίς περιορισμούς σε 60 ημέρες. Κατεβάστε τη δωρεάν δοκιμαστική έκδοση τώρα!


Σχετικό άρθρο:

Πώς να χωρίσετε δεδομένα σε πολλαπλά φύλλα εργασίας με βάση τις σειρές;



Συνιστώμενα εργαλεία παραγωγικότητας

Καρτέλα Office

χρυσό star1 Φέρτε χρήσιμες καρτέλες στο Excel και άλλο λογισμικό του Office, όπως το Chrome, το Firefox και ο νέος Internet Explorer.

Kutools για το Excel

χρυσό star1 Φοβερο! Αυξήστε την παραγωγικότητά σας σε λεπτά 5. Δεν χρειάζεστε ειδικές δεξιότητες, εκτός από δύο ώρες κάθε μέρα!

χρυσό star1 300 Νέες δυνατότητες για Excel, Κάντε το Excel πολύ εύκολο και ισχυρό:

  • Συγχώνευση κελιών / σειρών / στηλών χωρίς απώλεια δεδομένων.
  • Συνδυασμός και ενοποίηση πολλών φύλλων και βιβλίων εργασίας.
  • Συγκρίνετε Περιοχές, Αντιγραφή Πολλαπλών Εύρους, Μετατροπή Κειμένου σε Ημερομηνία, Μετατροπή μονάδας και νομίσματος.
  • Καταμέτρηση κατά Χρώματα, Υποσύνολα σελίδας, Σύνθετη Ταξινόμηση και Σούπερ Φίλτρο,
  • Περισσότερα Επιλογή / Εισαγωγή / Διαγραφή / Κείμενο / Μορφή / Σύνδεσμος / Σχόλιο / Βιβλία εργασίας / Φύλλα εργασίας Εργαλεία ...

Εικόνα του Kutools για το 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 · 2 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!