Αφαίρεση κενών κελιών από μια περιοχή

Διατύπωση του προβλήματος

Έχουμε μια σειρά κελιών με δεδομένα που περιέχουν κενά κελιά:

 

Ο στόχος είναι να αφαιρέσετε κενά κελιά, αφήνοντας μόνο κελιά με πληροφορίες.

Μέθοδος 1. Τραχύ και γρήγορο

  1. Επιλογή της αρχικής περιοχής
  2. Πατήστε το πλήκτρο F5, κουμπί επόμενο Επισημάνετε (Ειδικός). Στο παράθυρο που ανοίγει, επιλέξτε Άδεια κελιά(Κενά) και κάντε κλικ στο κουμπί OK.

    Αφαίρεση κενών κελιών από μια περιοχή

    Επιλέγονται όλα τα άδεια κελιά στην περιοχή.

  3. Δίνουμε μια εντολή στο μενού για να διαγράψετε επιλεγμένα κελιά: κάντε δεξί κλικ- Διαγραφή κελιών (Διαγραφή κελιών) με μετατόπιση προς τα πάνω.

Μέθοδος 2: Τύπος πίνακα

Για απλοποίηση, ας ονομάσουμε τις περιοχές εργασίας μας χρησιμοποιώντας Όνομα Διευθυντής (Όνομα διαχειριστή) αυτί τύπος (ΜΑΘΗΜΑΤΙΚΟΙ τυποι) ή, στο Excel 2003 και παλαιότερα, το μενού Εισαγωγή – Όνομα – Εκχώρηση (Εισαγωγή — Όνομα — Ορισμός)

 

Ονομάστε το εύρος B3:B10 HaveEmpty, εύρος D3:D10 – ΚανέναΚενό. Οι σειρές πρέπει να έχουν αυστηρά το ίδιο μέγεθος και να μπορούν να βρίσκονται οπουδήποτε σε σχέση μεταξύ τους.

Τώρα επιλέξτε το πρώτο κελί της δεύτερης περιοχής (D3) και εισαγάγετε αυτόν τον τρομακτικό τύπο σε αυτό:

=IF(ROW() -ROW(NoEmpty)+1>NOTROWS(YesEmpty)-COUNTBLANK(YesEmpty);””;INDIRECT(ADDRESS(LOWEST((IF(Empty<>“”,ROW(Empty);ROW() + ROWS(Υπάρχουν κενά))); LINE()-ROW(No Empty)+1); COLUMN(Υπάρχουν κενές); 4)))

Στην αγγλική έκδοση θα είναι:

=IF(ROW()-ROW(NoEmpty)+1>ROWS(Empty)-COUNTBLANK(Empty),””,INDIRECT(ADDRESS(SMALL((IF(Empty<>“”,ROW(Empty),ROW() +ROWS(HaveEmpty))),ROW()-ROW(NoEmpty)+1),COLUMN(HaveEmpty),4)))

Επιπλέον, πρέπει να εισαχθεί ως τύπος πίνακα, δηλαδή πατήστε μετά την επικόλληση εισάγετε (ως συνήθως) και Ctrl + Shift + Εισαγωγή. Τώρα ο τύπος μπορεί να αντιγραφεί χρησιμοποιώντας την αυτόματη συμπλήρωση (σύρετε τον μαύρο σταυρό στην κάτω δεξιά γωνία του κελιού) – και θα λάβουμε το αρχικό εύρος, αλλά χωρίς άδεια κελιά:

 

Μέθοδος 3. Προσαρμοσμένη συνάρτηση σε VBA

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

Για να το κάνετε αυτό, ανοίξτε το πρόγραμμα επεξεργασίας Visual Basic (ALT + F11), εισαγάγετε μια νέα κενή μονάδα (μενού Εισαγωγή – Ενότητα) και αντιγράψτε το κείμενο αυτής της συνάρτησης εκεί:

Συνάρτηση NoBlanks(DataRange As Range) As Variant() Dim N As Long Dim N2 As Long Dim Rng as Range Dim MaxCells As Long Dim Result() As Variant Dim R As Long Dim C As Long MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) ReDim Result(1 To MaxCells, 1 To 1) For Every Rng In DataRange.Cells If Rng.Value <> vbNullString Τότε N = N + 1 Result(N, 1 ) = Rng.Value End If Next Rng Για N2 = N + 1 To MaxCells Αποτέλεσμα(N2, 1) = vbNullString Επόμενο N2 If Application.Caller.Rows.Count = 1 Τότε NoBlanks = Application.Tranpose(Result) Else NoBlanks = Αποτέλεσμα Λειτουργία End If End  

Μην ξεχάσετε να αποθηκεύσετε το αρχείο και να επιστρέψετε από το Visual Basic Editor στο Excel. Για να χρησιμοποιήσετε αυτήν τη συνάρτηση στο παράδειγμά μας:

  1. Επιλέξτε μια επαρκή περιοχή κενών κελιών, για παράδειγμα F3:F10.
  2. Μεταβείτε στο μενού Εισαγωγή – Λειτουργία (Εισαγωγή — Λειτουργία)ή κάντε κλικ στο κουμπί Λειτουργία εισαγωγής (Εισαγωγή συνάρτησης) αυτί τύπος (ΜΑΘΗΜΑΤΙΚΟΙ τυποι) σε νεότερες εκδόσεις του Excel. Στην κατηγορία Ορίζεται Χρήστη (Ορισμένο από τον χρήστη) επιλέξτε τη λειτουργία μας Noblanks.
  3. Καθορίστε την περιοχή πηγής με κενά (B3:B10) ως όρισμα συνάρτησης και πατήστε Ctrl + Shift + Εισαγωγήγια να εισαγάγετε τη συνάρτηση ως τύπο πίνακα.

:

  • Διαγραφή όλων των κενών σειρών σε έναν πίνακα ταυτόχρονα με μια απλή μακροεντολή
  • Κατάργηση όλων των κενών σειρών σε ένα φύλλο εργασίας ταυτόχρονα χρησιμοποιώντας το πρόσθετο PLEX
  • Γρήγορη συμπλήρωση όλων των κενών κελιών
  • Τι είναι οι μακροεντολές, πού να εισαγάγετε κώδικα μακροεντολής στο VBA

 

Αφήστε μια απάντηση