Συμβουλές Excel: Διαχωρίστε τα δεδομένα σε πολλά φύλλα εργασίας / βιβλία εργασίας με βάση την τιμή της στήλης
Κατά τη διαχείριση μεγάλων συνόλων δεδομένων στο Excel, μπορεί να είναι πολύ ωφέλιμο να χωρίσετε δεδομένα σε πολλά φύλλα εργασίας με βάση συγκεκριμένες τιμές στηλών. Αυτή η μέθοδος βελτιώνει όχι μόνο την οργάνωση των δεδομένων, αλλά επίσης ενισχύει την αναγνωσιμότητα και διευκολύνει την ανάλυση των δεδομένων.
Ας υποθέσουμε ότι έχετε ένα μεγάλο αρχείο πωλήσεων που περιέχει πολλές καταχωρήσεις όπως το όνομα του προϊόντος, την ποσότητα που πωλήθηκε του πρώτου τριμήνου. Ο στόχος είναι να χωριστούν αυτά τα δεδομένα σε ξεχωριστά φύλλα εργασίας με βάση το όνομα κάθε προϊόντος, έτσι ώστε η απόδοση των μεμονωμένων πωλήσεων να μπορεί να αναλυθεί ξεχωριστά.
Διαχωρίστε τα δεδομένα σε πολλά φύλλα εργασίας με βάση την τιμή της στήλης
Διαχωρίστε τα δεδομένα σε πολλά βιβλία εργασίας με βάση την τιμή της στήλης με κώδικα VBA
Διαχωρίστε τα δεδομένα σε πολλά φύλλα εργασίας με βάση την τιμή της στήλης
Κανονικά, μπορείτε να ταξινομήσετε πρώτα τη λίστα δεδομένων και, στη συνέχεια, να τα αντιγράψετε και να τα επικολλήσετε ένα προς ένα σε άλλα νέα φύλλα εργασίας. Αλλά αυτό θα χρειαστεί την υπομονή σας για επανειλημμένη αντιγραφή και επικόλληση. Σε αυτήν την ενότητα, θα εισαγάγουμε δύο απλές μεθόδους για την αποτελεσματική αντιμετώπιση αυτής της εργασίας στο Excel, εξοικονομώντας χρόνο και μειώνοντας την πιθανότητα σφαλμάτων.
Διαχωρίστε τα δεδομένα σε πολλά φύλλα εργασίας με βάση την τιμή της στήλης με κώδικα VBA
1. Κρατήστε πατημένο το ALT + F11 για να ανοίξετε το Microsoft Visual Basic για εφαρμογές παράθυρο.
2. κλικ Κύριο θέμα > Μονάδα μέτρησηςκαι επικολλήστε τον ακόλουθο κώδικα στο παράθυρο της ενότητας.
Sub Splitdatabycol()
'updateby Extendoffice
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
Dim xWS 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
Set xWS = Sheets.Add(after:=Worksheets(Worksheets.Count))
xWS.Name = myarr(i) & ""
Else
xWS.Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
xWS.Paste Destination:=xWS.Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy xWS.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 κλειδί για την εκτέλεση του κώδικα και εμφανίζεται ένα παράθυρο προτροπής για να σας υπενθυμίσει να επιλέξετε τη σειρά κεφαλίδας και, στη συνέχεια, κάντε κλικ OK. Δείτε το στιγμιότυπο οθόνης:
4. Στο δεύτερο πλαίσιο προτροπής, επιλέξτε τα δεδομένα στηλών που θέλετε να χωρίσετε με βάση και, στη συνέχεια, κάντε κλικ OK. Δείτε το στιγμιότυπο οθόνης:
5. Όλα τα δεδομένα στο ενεργό φύλλο εργασίας χωρίζονται σε πολλαπλά φύλλα εργασίας με βάση τις τιμές της στήλης. Τα φύλλα εργασίας που προκύπτουν ονομάζονται σύμφωνα με τις τιμές στα διαχωρισμένα κελιά και τοποθετούνται στο τέλος του βιβλίου εργασίας. Δείτε στιγμιότυπο οθόνης:
Διαχωρίστε τα δεδομένα σε πολλά φύλλα εργασίας με βάση την τιμή της στήλης με το Kutools για Excel
Kutools για Excel φέρνει έξυπνο χαρακτηριστικό – Διαχωρίστε τα δεδομένα απευθείας στο περιβάλλον του Excel. Ο διαχωρισμός δεδομένων σε πολλαπλά φύλλα εργασίας δεν αποτελεί πλέον πρόκληση. Το διαισθητικό εργαλείο μας διαιρεί αυτόματα το σύνολο δεδομένων σας με βάση την επιλεγμένη τιμή στήλης ή τον αριθμό των γραμμών, διασφαλίζοντας ότι κάθε πληροφορία βρίσκεται ακριβώς εκεί που τη χρειάζεστε. Πείτε αντίο στο επίπονο έργο της μη αυτόματης οργάνωσης των υπολογιστικών φύλλων σας και υιοθετήστε έναν ταχύτερο τρόπο διαχείρισης των δεδομένων σας χωρίς σφάλματα.
Μετά την εγκατάσταση Kutools για Excel, επιλέξτε το εύρος δεδομένων και, στη συνέχεια, κάντε κλικ Kutools Plus > Διαχωρίστε τα δεδομένα για να ανοίξετε το Διαχωρίστε τα δεδομένα σε πολλά φύλλα εργασίας κουτί διαλόγου.
- Αγορά Ειδική στήλη επιλογή του Διαχωρισμός με βάση και επιλέξτε την τιμή της στήλης στην οποία θέλετε να χωρίσετε τα δεδομένα από την αναπτυσσόμενη λίστα.
- Εάν τα δεδομένα σας έχουν κεφαλίδες και θέλετε να τις εισάγετε σε κάθε νέο διαχωρισμένο φύλλο εργασίας, ελέγξτε Τα δεδομένα μου έχουν κεφαλίδες επιλογή. (Μπορείτε να καθορίσετε τον αριθμό των σειρών κεφαλίδας με βάση τα δεδομένα σας. Για παράδειγμα, εάν τα δεδομένα σας περιέχουν δύο κεφαλίδες, πληκτρολογήστε 2.)
- Στη συνέχεια, μπορείτε να καθορίσετε τα ονόματα των φύλλων εργασίας που διαχωρίζονται, κάτω από το Νέο όνομα φύλλων εργασίας ενότητα, καθορίστε τον κανόνα ονομάτων φύλλου εργασίας από την αναπτυσσόμενη λίστα Κανόνες, μπορείτε να προσθέσετε το Πρόθεμα or Κατάληξη για τα ονόματα των φύλλων επίσης.
- Κάντε κλικ στο OK κουμπί. Δείτε το στιγμιότυπο οθόνης:
Τώρα, τα δεδομένα στο φύλλο εργασίας χωρίζονται σε πολλά φύλλα εργασίας σε ένα νέο βιβλίο εργασίας.
Διαχωρίστε τα δεδομένα σε πολλά βιβλία εργασίας με βάση την τιμή της στήλης με κώδικα VBA
Περιστασιακά, αντί να διαιρείτε τα δεδομένα σε πολλά φύλλα εργασίας, μπορεί να είναι πιο ωφέλιμο να χωρίσετε τα δεδομένα σε ξεχωριστά βιβλία εργασίας με βάση μια στήλη κλειδιού. Ακολουθεί ένας αναλυτικός οδηγός σχετικά με τον τρόπο χρήσης του κώδικα VBA για την αυτοματοποίηση της διαδικασίας διαχωρισμού δεδομένων σε πολλά βιβλία εργασίας με βάση μια συγκεκριμένη τιμή στήλης.
1. Κρατήστε πατημένο το ALT + F11 για να ανοίξετε το Microsoft Visual Basic για εφαρμογές παράθυρο.
2. κλικ Κύριο θέμα > Μονάδα μέτρησηςκαι επικολλήστε τον ακόλουθο κώδικα στο Παράθυρο ενότητας.
Sub SplitDataByColToWorkbooks()
' Updateby Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWS As Workbook
Dim savePath As String
' Set the directory to save new workbooks
savePath = "C:\Users\AddinsVM001\Desktop\multiple files\" ' Modify this path as needed
Application.DisplayAlerts = False
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.Address(False, False)
titlerow = xTRg.Row
ws.Columns(vcol).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ws.Cells(1, ws.Columns.Count), Unique:=True
myarr = Application.Transpose(ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).Value)
ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).ClearContents
For i = 2 To UBound(myarr)
Set xWS = Workbooks.Add
ws.Range(title).AutoFilter Field:=vcol, Criteria1:=myarr(i)
ws.Range("A" & titlerow & ":A" & lr).SpecialCells(xlCellTypeVisible).EntireRow.Copy
xWS.Sheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteAll
xWS.SaveAs Filename:=savePath & myarr(i) & ".xlsx"
xWS.Close SaveChanges:=False
Next i
ws.AutoFilterMode = False
Application.DisplayAlerts = True
ws.Activate
End Sub
3. Στη συνέχεια, πατήστε F5 κλειδί για την εκτέλεση του κώδικα και εμφανίζεται ένα παράθυρο προτροπής για να σας υπενθυμίσει να επιλέξετε τη σειρά κεφαλίδας και, στη συνέχεια, κάντε κλικ OK. Δείτε το στιγμιότυπο οθόνης:
4. Στο δεύτερο πλαίσιο προτροπής, επιλέξτε τα δεδομένα στηλών που θέλετε να χωρίσετε με βάση και, στη συνέχεια, κάντε κλικ OK. Δείτε το στιγμιότυπο οθόνης:
5. Μετά τον διαχωρισμό, όλα τα δεδομένα στο ενεργό φύλλο εργασίας χωρίζονται σε πολλά βιβλία εργασίας με βάση τις τιμές της στήλης. Όλα τα διαιρεμένα βιβλία εργασίας αποθηκεύονται στον φάκελο που ορίσατε. Δείτε στιγμιότυπο οθόνης:
Σχετικά Άρθρα:
- Διαχωρίστε τα δεδομένα σε πολλά φύλλα εργασίας κατά τον αριθμό γραμμών
- Η αποτελεσματική διαίρεση ενός μεγάλου εύρους δεδομένων σε πολλά φύλλα εργασίας του Excel με βάση έναν συγκεκριμένο αριθμό σειρών μπορεί να βελτιώσει τη διαχείριση δεδομένων. Για παράδειγμα, ο διαχωρισμός ενός συνόλου δεδομένων κάθε 5 σειρές σε πολλά φύλλα μπορεί να το κάνει πιο διαχειρίσιμο και οργανωμένο. Αυτός ο οδηγός προσφέρει δύο πρακτικές μεθόδους για να ολοκληρώσετε αυτήν την εργασία γρήγορα και εύκολα.
- Συγχωνεύστε δύο ή περισσότερους πίνακες σε έναν με βάση τις βασικές στήλες
- Ας υποθέσουμε ότι έχετε τρεις πίνακες σε ένα βιβλίο εργασίας, τώρα, θέλετε να συγχωνεύσετε αυτούς τους πίνακες σε έναν πίνακα με βάση τις αντίστοιχες βασικές στήλες για να λάβετε το αποτέλεσμα όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Αυτό μπορεί να είναι ένα ενοχλητικό έργο για τους περισσότερους από εμάς, αλλά, μην ανησυχείτε, αυτό το άρθρο, θα παρουσιάσω ορισμένες μεθόδους για την επίλυση αυτού του προβλήματος.
- Διαχωρίστε τις συμβολοσειρές κειμένου με διαχωριστή σε πολλαπλές σειρές
- Κανονικά, μπορείτε να χρησιμοποιήσετε τη δυνατότητα "Κείμενο σε στήλη" για να χωρίσετε τα περιεχόμενα των κελιών σε πολλές στήλες με έναν συγκεκριμένο οριοθέτη, όπως κόμμα, τελεία, ερωτηματικό, κάθετο κ.λπ. και επαναλάβετε τα δεδομένα από άλλες στήλες όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Έχετε κάποιους καλούς τρόπους για να αντιμετωπίσετε αυτήν την εργασία στο Excel; Αυτό το σεμινάριο θα εισαγάγει μερικές αποτελεσματικές μεθόδους για την ολοκλήρωση αυτής της εργασίας στο Excel.
- Διαχωρίστε τα περιεχόμενα κελιών πολλών γραμμών σε διαχωρισμένες σειρές/στήλες
- Αν υποθέσουμε ότι έχετε περιεχόμενο κελιών πολλών γραμμών που διαχωρίζεται με Alt + Enter και τώρα πρέπει να χωρίσετε τα περιεχόμενα πολλών γραμμών σε διαχωρισμένες σειρές ή στήλες, τι μπορείτε να κάνετε; Σε αυτό το άρθρο, θα μάθετε πώς να χωρίζετε γρήγορα τα περιεχόμενα των κελιών πολλών γραμμών σε ξεχωριστές σειρές ή στήλες.
Τα καλύτερα εργαλεία παραγωγικότητας γραφείου
Αυξήστε τις δεξιότητές σας στο Excel με τα Kutools για Excel και απολαύστε την αποτελεσματικότητα όπως ποτέ πριν. Το Kutools για Excel προσφέρει πάνω από 300 προηγμένες δυνατότητες για την ενίσχυση της παραγωγικότητας και την εξοικονόμηση χρόνου. Κάντε κλικ εδώ για να αποκτήσετε τη δυνατότητα που χρειάζεστε περισσότερο...
Το Office Tab φέρνει τη διεπαφή με καρτέλες στο Office και κάνει την εργασία σας πολύ πιο εύκολη
- Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
- Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
- Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!