Πώς να διαγράψετε κενές γραμμές στο Excel με VBA, τύπους και Power Query

  • Μοιραστείτε Αυτό
Michael Brown

Αυτό το σεμινάριο θα σας διδάξει μερικά απλά κόλπα για να διαγράψετε πολλαπλές κενές γραμμές στο Excel με ασφάλεια χωρίς να χάσετε ούτε μια πληροφορία. .

Οι κενές γραμμές στο Excel είναι ένα πρόβλημα που όλοι αντιμετωπίζουμε μια στο τόσο, ειδικά όταν συνδυάζουμε δεδομένα από διαφορετικές πηγές ή εισάγουμε πληροφορίες από κάπου αλλού. Οι κενές γραμμές μπορούν να προκαλέσουν μεγάλη καταστροφή στα φύλλα εργασίας σας σε διάφορα επίπεδα και η διαγραφή τους με το χέρι μπορεί να είναι μια χρονοβόρα και επιρρεπής σε λάθη διαδικασία. Σε αυτό το άρθρο, θα μάθετε μερικές απλές και αξιόπιστες μεθόδους για να αφαιρέσετε τα κενά σετα φύλλα εργασίας σας.

    Πώς να ΜΗΝ αφαιρέσετε κενές γραμμές στο Excel

    Υπάρχουν μερικοί διαφορετικοί τρόποι για να διαγράψετε κενές γραμμές στο Excel, αλλά παραδόξως πολλοί διαδικτυακοί πόροι επιμένουν στον πιο επικίνδυνο, δηλαδή Εύρεση & επιλογή >, Πηγαίνετε στο Special >, Κενά .

    Ποιο είναι το λάθος σε αυτή την τεχνική; Επιλέγει όλα τα κενά σε μια περιοχή, και κατά συνέπεια θα καταλήξετε να διαγράψετε όλες τις γραμμές που περιέχουν έστω και ένα κενό κελί.

    Στην παρακάτω εικόνα φαίνεται ο αρχικός πίνακας στα αριστερά και ο πίνακας που προκύπτει στα δεξιά. Και στον πίνακα που προκύπτει, όλες οι ελλιπείς γραμμές έχουν εξαφανιστεί, ακόμη και η γραμμή 10 όπου έλειπε μόνο η ημερομηνία στη στήλη D:

    Το συμπέρασμα: αν δεν θέλετε να καταστρέψετε τα δεδομένα σας, μην διαγράφετε ποτέ κενές γραμμές επιλέγοντας κενά κελιά. Αντ' αυτού, χρησιμοποιήστε μία από τις πιο προσεκτικές προσεγγίσεις που αναλύονται παρακάτω.

    Πώς να αφαιρέσετε κενές γραμμές στο Excel με VBA

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

    Μακροεντολή 1. Διαγραφή κενών γραμμών σε επιλεγμένη περιοχή

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

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

    Public Sub DeleteBlankRows() Dim SourceRange As Range Dim EntireRow As Range Set SourceRange = Application.Selection If Not (SourceRange Is Nothing ) Then Application.ScreenUpdating = False For I = SourceRange.Rows.Count To 1 Step -1 Set EntireRow = SourceRange.Cells(I, 1).EntireRow If Application.WorksheetFunction.CountA(EntireRow) = 0 Then EntireRow.Delete End If Next Application.ScreenUpdating= True End If End Sub

    Να δώσει στον χρήστη την ευκαιρία να επιλέξτε το εύρος στόχου μετά την εκτέλεση της μακροεντολής , χρησιμοποιήστε αυτόν τον κωδικό:

    Public Sub RemoveBlankLines() Dim SourceRange As Range Dim EntireRow As Range On Error Resume Next Set SourceRange = Application.InputBox( _ "Select a range:" , "Delete Blank Rows" , _ Application.Selection.Address, Type :=8) If Not (SourceRange Is Nothing ) Then Application.ScreenUpdating = False For I = SourceRange.Rows.Count To 1 Step -1 Set EntireRow = SourceRange.Cells(I, 1).EntireRow IfApplication.WorksheetFunction.CountA(EntireRow) = 0 Then EntireRow.Delete End If Next Application.ScreenUpdating = True End If End Sub

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

    Σε λίγο, όλες οι κενές γραμμές στην επιλεγμένη περιοχή θα εξαλειφθούν και οι υπόλοιπες θα μετατοπιστούν προς τα πάνω:

    Μακροεντολή 2. Διαγραφή όλων των κενών γραμμών στο Excel

    Για να αφαιρέσετε όλες οι κενές γραμμές στο ενεργό φύλλο , προσδιορίστε την τελευταία γραμμή της χρησιμοποιούμενης περιοχής (δηλαδή τη γραμμή που περιέχει το τελευταίο κελί με δεδομένα) και, στη συνέχεια, προχωρήστε προς τα πάνω διαγράφοντας τις γραμμές για τις οποίες η CountA επιστρέφει μηδέν:

    Sub DeleteAllEmptyRows() Dim LastRowIndex As Integer Dim RowIndex As Integer Dim UsedRng As Range Set UsedRng = ActiveSheet.UsedRange LastRowIndex = UsedRng.Row - 1 + UsedRng.Rows.Count Application.ScreenUpdating = False For RowIndex = LastRowIndex To 1 Step -1 If Application.CountA(Rows(RowIndex)) = 0 Then Rows(RowIndex).Delete End If Next RowIndex Application.ScreenUpdating = True End Sub

    Μακροεντολή 3. Διαγραφή γραμμής αν το κελί είναι κενό

    Με αυτή τη μακροεντολή, μπορείτε να διαγράψετε μια ολόκληρη γραμμή εάν ένα κελί στην καθορισμένη στήλη είναι κενό.

    Ο παρακάτω κώδικας ελέγχει τη στήλη A για κενά. Για να διαγράψετε γραμμές με βάση άλλη στήλη, αντικαταστήστε το "A" με ένα κατάλληλο γράμμα.

    Sub DeleteRowIfCellBlank() On Error Resume Next Columns( "A" ).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub

    Για την ακρίβεια, η μακροεντολή χρησιμοποιεί την εντολή Πηγαίνετε στο Special >, Κενά και μπορείτε να επιτύχετε το ίδιο αποτέλεσμα εκτελώντας αυτά τα βήματα χειροκίνητα.

    Σημείωση. Η μακροεντολή διαγράφει κενές γραμμές στο ολόκληρο το φύλλο Για προληπτικούς λόγους, θα ήταν καλό να δημιουργήσετε αντίγραφα ασφαλείας του φύλλου εργασίας πριν εκτελέσετε αυτή τη μακροεντολή.

    Πώς να αφαιρέσετε κενές γραμμές στο Excel με VBA

    Για να διαγράψετε κενές γραμμές στο Excel χρησιμοποιώντας μια μακροεντολή, μπορείτε είτε να εισαγάγετε τον κώδικα VBA στο δικό σας βιβλίο εργασίας είτε να εκτελέσετε μια μακροεντολή από το βιβλίο εργασίας του δείγματός μας.

    Προσθέστε μια μακροεντολή στο βιβλίο εργασίας σας

    Για να εισαγάγετε μια μακροεντολή στο βιβλίο εργασίας σας, εκτελέστε τα εξής βήματα:

    1. Ανοίξτε το φύλλο εργασίας στο οποίο θέλετε να διαγράψετε κενές γραμμές.
    2. Πατήστε Alt + F11 για να ανοίξετε τον επεξεργαστή της Visual Basic.
    3. Στο αριστερό παράθυρο, κάντε δεξί κλικ στο ThisWorkbook , και στη συνέχεια κάντε κλικ στο Εισαγωγή >, Ενότητα .
    4. Επικολλήστε τον κώδικα στο παράθυρο Κώδικας.
    5. Πατήστε F5 για να εκτελέσετε τη μακροεντολή.

    Για λεπτομερείς οδηγίες βήμα προς βήμα, ανατρέξτε στην ενότητα Πώς να εισάγετε και να χρησιμοποιείτε το VBA στο Excel.

    Εκτελέστε μια μακροεντολή από το βιβλίο εργασίας του δείγματός μας

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

    DeleteBlankRows - αφαιρεί τις κενές γραμμές στην τρέχουσα επιλεγμένη περιοχή.

    RemoveBlankLines - διαγράφει κενές γραμμές και μετατοπίζει σε ένα εύρος που επιλέγετε μετά την εκτέλεση της μακροεντολής.

    DeleteAllEmptyRows - διαγράφει όλες τις κενές γραμμές στο ενεργό φύλλο.

    DeleteRowIfCellBlank - διαγράφει μια γραμμή εάν ένα κελί σε μια συγκεκριμένη στήλη είναι κενό.

    Για να εκτελέσετε τη μακροεντολή στο Excel σας, κάντε τα εξής:

    1. Ανοίξτε το βιβλίο εργασίας που κατεβάσατε και ενεργοποιήστε τις μακροεντολές αν σας ζητηθεί.
    2. Ανοίξτε το δικό σας βιβλίο εργασίας και μεταβείτε στο φύλλο εργασίας που σας ενδιαφέρει.
    3. Στο φύλλο εργασίας σας, πατήστε Alt + F8, επιλέξτε τη μακροεντολή και κάντε κλικ στο κουμπί Εκτέλεση .

    Τύπος για τη διαγραφή κενών γραμμών στο Excel

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

    =IF(COUNTA(A2:D2)=0, "Blank", "Not blank")

    Όπου A2 είναι το πρώτο και D2 είναι το τελευταίο χρησιμοποιούμενο κελί της πρώτης γραμμής δεδομένων.

    Εισάγετε αυτόν τον τύπο στην E2 ή σε οποιαδήποτε άλλη κενή στήλη της γραμμής 2 και σύρετε τη λαβή γεμίσματος για να αντιγράψετε τον τύπο προς τα κάτω.

    Ως αποτέλεσμα, θα έχετε "Κενό" στις κενές γραμμές και "Μη κενό" στις γραμμές που περιέχουν τουλάχιστον ένα κελί με δεδομένα:

    Η λογική του τύπου είναι προφανής: μετράτε τα μη κενά κελιά με τη συνάρτηση COUNTA και χρησιμοποιείτε τη δήλωση IF για να επιστρέψετε "Κενό" για μηδενική μέτρηση, "Μη κενό" διαφορετικά.

    Στην πραγματικότητα, μπορείτε να τα καταφέρετε και χωρίς το IF:

    =COUNTA(A2:D2)=0

    Στην περίπτωση αυτή, ο τύπος θα επιστρέφει TRUE για κενές γραμμές και FALSE για μη κενές γραμμές.

    Με τον τύπο στη θέση του, εκτελέστε τα εξής βήματα για να διαγράψετε τις κενές γραμμές:

    1. Επιλέξτε οποιοδήποτε κελί στη γραμμή κεφαλίδας και κάντε κλικ στο Ταξινόμηση & φίλτρο >, Φίλτρο στο Αρχική σελίδα στην καρτέλα Μορφές Αυτό θα προσθέσει τα πτυσσόμενα βέλη φιλτραρίσματος σε όλα τα κελιά κεφαλίδας.
    2. Κάντε κλικ στο βέλος στην επικεφαλίδα της στήλης τύπου, καταργήστε την επιλογή (Επιλογή όλων), επιλέξτε Κενό και κάντε κλικ στο OK :
    3. Επιλέξτε όλες τις φιλτραρισμένες γραμμές. Για το σκοπό αυτό, κάντε κλικ στο πρώτο κελί της πρώτης φιλτραρισμένης γραμμής και πατήστε Ctrl + Shift + End για να επεκτείνετε την επιλογή μέχρι το τελευταίο κελί της τελευταίας φιλτραρισμένης γραμμής.
    4. Κάντε δεξί κλικ στην επιλογή, επιλέξτε Διαγραφή γραμμής από το μενού περιβάλλοντος και, στη συνέχεια, επιβεβαιώστε ότι θέλετε πραγματικά να διαγράψετε ολόκληρες γραμμές:
    5. Αφαιρέστε το φίλτρο πατώντας Ctrl + Shift + L . Ή κάντε κλικ στο Αρχική σελίδα tab>, Ταξινόμηση & φίλτρο >, Φίλτρο .
    6. Διαγράψτε τη στήλη με τον τύπο αφού δεν τη χρειάζεστε πλέον.

    Αυτό είναι όλο! Ως αποτέλεσμα, έχουμε έναν καθαρό πίνακα χωρίς κενές γραμμές, αλλά με όλες τις πληροφορίες διατηρημένες:

    Συμβουλή. Αντί να διαγράφετε κενές γραμμές, μπορείτε να αντιγραφή μη κενών γραμμών σε κάποιο άλλο σημείο. Για να το έχετε κάνει, φιλτράρετε τις γραμμές "Not blank", επιλέξτε τις και πατήστε Ctrl + C για αντιγραφή. Στη συνέχεια, μεταβείτε σε ένα άλλο φύλλο, επιλέξτε το πάνω αριστερό κελί της περιοχής προορισμού και πατήστε Ctrl + V για επικόλληση.

    Πώς να αφαιρέσετε κενές γραμμές στο Excel με το Power Query

    Στο Excel 2016 και στο Excel 2019, υπάρχει ένας ακόμη τρόπος για να διαγράψετε κενές γραμμές - χρησιμοποιώντας τη λειτουργία Power Query. Στο Excel 2010 και στο Excel 2013, μπορείτε να την κατεβάσετε ως πρόσθετο.

    Σημαντική σημείωση! Αυτή η μέθοδος λειτουργεί με την ακόλουθη προειδοποίηση: Το Power Query μετατρέπει τα δεδομένα προέλευσης σε πίνακα του Excel και αλλάζει τη μορφοποίηση, όπως το χρώμα γεμίσματος, τα περιθώρια και ορισμένες μορφές αριθμών. Εάν η μορφοποίηση των αρχικών δεδομένων σας είναι σημαντική για εσάς, τότε καλύτερα να επιλέξετε κάποιον άλλο τρόπο για να αφαιρέσετε κενές γραμμές στο Excel.

    1. Επιλέξτε την περιοχή στην οποία θέλετε να διαγράψετε κενές γραμμές.
    2. Πηγαίνετε στο Δεδομένα tab>, Αποκτήστε & μεταμορφώστε ομάδα και κάντε κλικ στο Από πίνακα/περιοχή Αυτό θα φορτώσει τον πίνακά σας στο Power Query Editor.
    3. Στο Αρχική σελίδα του Power Query Editor, κάντε κλικ στο Αφαίρεση σειρών >, Αφαίρεση κενών σειρών .
    4. Κάντε κλικ στο Κλείσιμο & Φόρτωση Αυτό θα φορτώσει τον προκύπτοντα πίνακα σε ένα νέο φύλλο εργασίας και θα κλείσει τον Επεξεργαστή ερωτημάτων.

    Ως αποτέλεσμα αυτών των χειρισμών, πήρα τον ακόλουθο πίνακα χωρίς κενές γραμμές, αλλά με μερικές δυσάρεστες αλλαγές - η μορφή νομίσματος έχει χαθεί και οι ημερομηνίες εμφανίζονται στην προεπιλεγμένη μορφή αντί της προσαρμοσμένης:

    Πώς να διαγράψετε γραμμές εάν το κελί σε μια συγκεκριμένη στήλη είναι κενό

    Στην αρχή αυτού του σεμιναρίου, σας προειδοποιήσαμε κατά της αφαίρεσης κενών γραμμών επιλέγοντας κενά. Ωστόσο, αυτή η μέθοδος είναι χρήσιμη αν θέλετε να διαγράψετε γραμμές με βάση τις κενά σε μια συγκεκριμένη στήλη .

    Για παράδειγμα, ας αφαιρέσουμε όλες τις γραμμές όπου ένα κελί στη στήλη Α είναι κενό:

    1. Επιλέξτε τη βασική στήλη, τη στήλη Α στην περίπτωσή μας.
    2. Στο Αρχική σελίδα κάντε κλικ στην καρτέλα Εύρεση & επιλογή >, Πηγαίνετε στο Special . ή πατήστε F5 και κάντε κλικ στο Ειδική... κουμπί.
    3. Στο Πηγαίνετε στο Special διαλόγου, επιλέξτε Κενά και κάντε κλικ στο OK Αυτό θα επιλέξει κενά κελιά στη χρησιμοποιούμενη περιοχή στη στήλη Α.
    4. Κάντε δεξί κλικ σε οποιοδήποτε επιλεγμένο κελί και επιλέξτε Διαγραφή... από το μενού περιβάλλοντος.
    5. Στο Διαγραφή παράθυρο διαλόγου, επιλέξτε Ολόκληρη σειρά και κάντε κλικ στο OK.

    Έγινε! Οι γραμμές που δεν έχουν τιμή στη στήλη Α δεν υπάρχουν πλέον:

    Το ίδιο αποτέλεσμα μπορεί να επιτευχθεί φιλτράροντας τα κενά στη στήλη κλειδί.

    Πώς να αφαιρέσετε επιπλέον γραμμές κάτω από τα δεδομένα

    Μερικές φορές, οι γραμμές που φαίνονται εντελώς κενές μπορεί στην πραγματικότητα να περιέχουν κάποιες μορφές ή μη εκτυπώσιμους χαρακτήρες. Για να ελέγξετε αν το τελευταίο κελί με δεδομένα είναι πραγματικά το τελευταίο χρησιμοποιούμενο κελί στο φύλλο εργασίας σας, πατήστε Ctrl + End . Αν αυτό σας έχει οδηγήσει σε μια οπτικά κενή γραμμή κάτω από τα δεδομένα σας, από την άποψη του Excel, η γραμμή αυτή δεν είναι κενή. Για να αφαιρέσετε τέτοιες γραμμές, κάντε τα εξής:

    1. Κάντε κλικ στην επικεφαλίδα της πρώτης κενής γραμμής κάτω από τα δεδομένα σας για να την επιλέξετε.
    2. Πατήστε Ctrl + Shift + End . Αυτό θα επιλέξει όλες τις γραμμές που περιέχουν οτιδήποτε, συμπεριλαμβανομένων των μορφοτύπων, των κενών και των μη εκτυπωμένων χαρακτήρων.
    3. Κάντε δεξί κλικ στην επιλογή και επιλέξτε Διαγραφή... >, Ολόκληρη σειρά.

    Εάν έχετε ένα σχετικά μικρό σύνολο δεδομένων, μπορεί να θέλετε να απαλλαγείτε από όλες τις κενές γραμμές κάτω από τα δεδομένα σας, π.χ. για να διευκολύνετε την κύλιση. Αν και δεν υπάρχει τρόπος να διαγράψετε αχρησιμοποίητες γραμμές στο Excel, δεν υπάρχει τίποτα που να σας εμποδίζει να κρύβοντας Ακούστε πώς:

    1. Επιλέξτε τη γραμμή κάτω από την τελευταία γραμμή με δεδομένα κάνοντας κλικ στην επικεφαλίδα της.
    2. Πατήστε Ctrl + Shift + Κάτω βέλος για να επεκτείνετε την επιλογή στην τελευταία γραμμή του φύλλου.
    3. Πατήστε Ctrl + 9 για να αποκρύψετε τις επιλεγμένες σειρές. Ή κάντε δεξί κλικ στην επιλογή και, στη συνέχεια, επιλέξτε Απόκρυψη .

    Προς ξεκρύψτε τις γραμμές , πατήστε Ctrl + A για να επιλέξετε ολόκληρο το φύλλο και, στη συνέχεια, πατήστε Ctrl + Shift + 9 για να γίνουν και πάλι ορατές όλες οι γραμμές.

    Με παρόμοιο τρόπο, μπορείτε να αποκρύψετε τις αχρησιμοποίητες κενές στήλες στα δεξιά των δεδομένων σας. Για τα λεπτομερή βήματα, ανατρέξτε στην ενότητα Απόκρυψη αχρησιμοποίητων γραμμών στο Excel ώστε να είναι ορατή μόνο η περιοχή εργασίας.

    Ο γρηγορότερος τρόπος για την αφαίρεση κενών γραμμών στο Excel

    Όταν διαβάζατε τα προηγούμενα παραδείγματα, δεν είχατε την αίσθηση ότι χρησιμοποιούσαμε μια βαριοπούλα για να σπάσουμε ένα καρύδι; Εδώ, στο Ablebits, προτιμούμε να μην κάνουμε τα πράγματα πιο πολύπλοκα από ό,τι χρειάζεται. Έτσι, κάναμε ένα βήμα παραπέρα και δημιουργήσαμε μια διαδρομή δύο κλικ για τη διαγραφή κενών γραμμών στο Excel.

    Με την προσθήκη της Ultimate Suite στην κορδέλα σας, δείτε πώς μπορείτε να διαγραφή όλων των κενών γραμμών σε ένα φύλλο εργασίας:

    1. Στο Εργαλεία Ablebits στην καρτέλα Μετασχηματισμός ομάδα, κάντε κλικ στο Διαγραφή κενών >, Κενές σειρές :
    2. Το πρόσθετο θα σας ενημερώσει ότι όλες οι κενές γραμμές πρόκειται να αφαιρεθούν από το ενεργό φύλλο εργασίας και θα σας ζητήσει επιβεβαίωση. Κάντε κλικ στο OK και σε λίγο όλες οι κενές γραμμές θα εξαλειφθούν.

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

    Για να ανακαλύψετε περισσότερα απίθανα χαρακτηριστικά που περιλαμβάνονται στην Ultimate Suite for Excel, μπορείτε να κατεβάσετε μια δοκιμαστική έκδοση.

    Σας ευχαριστώ για την ανάγνωση και ελπίζω να σας δω στο blog μας την επόμενη εβδομάδα!

    Ο Michael Brown είναι ένας αφοσιωμένος λάτρης της τεχνολογίας με πάθος για την απλοποίηση πολύπλοκων διαδικασιών χρησιμοποιώντας εργαλεία λογισμικού. Με περισσότερο από μια δεκαετία εμπειρίας στον κλάδο της τεχνολογίας, έχει βελτιώσει τις δεξιότητές του στο Microsoft Excel και το Outlook, καθώς και στα Φύλλα Google και στα Έγγραφα. Το blog του Michael είναι αφιερωμένο στο να μοιράζεται τη γνώση και την τεχνογνωσία του με άλλους, παρέχοντας εύκολες συμβουλές και σεμινάρια για τη βελτίωση της παραγωγικότητας και της αποτελεσματικότητας. Είτε είστε έμπειρος επαγγελματίας είτε αρχάριος, το ιστολόγιο του Michael προσφέρει πολύτιμες πληροφορίες και πρακτικές συμβουλές για να αξιοποιήσετε στο έπακρο αυτά τα βασικά εργαλεία λογισμικού.