Fjerner tomme celler fra et område

Formulering af problemet

Vi har en række celler med data, der indeholder tomme celler:

 

Opgaven er at fjerne tomme celler, så kun celler efterlades med information.

Metode 1. Groft og hurtigt

  1. Valg af det originale område
  2. Tryk på tasten F5, næste knap Fremhæv (Særlig). Vælg i det vindue, der åbnes Tomme celler(Blank) og klik OK.

    Fjerner tomme celler fra et område

    Alle tomme celler i området er markeret.

  3. Vi giver en kommando i menuen for at slette valgte celler: højreklikSlet celler (Slet celler) med opadgående forskydning.

Metode 2: Matrixformel

For at forenkle, lad os navngive vores arbejdsområder vha Navn Manager (navneadministrator) fanen Formula (Formler) eller, i Excel 2003 og ældre, menuen Indsæt – Navn – Tildel (Indsæt — Navn — Definer)

 

Navngiv området B3:B10 Have tom, område D3:D10 – Ingen Tom. Områder skal være strengt taget samme størrelse og kan placeres hvor som helst i forhold til hinanden.

Vælg nu den første celle i det andet område (D3) og indtast denne skræmmende formel i den:

=HVIS(RÆKKE() -RÆKKE(NejTom)+1>NOTROWS(JaTom)-COUNTBLANK(JaTom);””;INDIREKTE(ADRESSE(LASTE((HVIS(Tom<>“”, RÆKKE(Tom); RÆKKE() + RÆKKER(Der er tomme))); LINJE()-RÆKKE(Ingen tomme)+1); KOLONNE(Der er tomme); 4)))

I den engelske version vil det være:

=HVIS(ROW()-ROW(NoEmpty)+1>ROWS(Empty)-COUNTBLANK(Empty),"",INDIREKTE(ADRESSE(SMALL((HVIS(Empty<>“”,ROW(Empty),RÆKKE() +RÆKKER(Har tom))), RÆKKE()-RÆKKE(Ingen tom)+1), KOLONNE(Har tom),4)))

Desuden skal den indtastes som en matrixformel, dvs. tryk efter indsættelse Indtast (som sædvanligt) og Ctrl + Skift + Enter. Nu kan formlen kopieres ned ved hjælp af autofuldførelse (træk det sorte kryds i nederste højre hjørne af cellen) – og vi får det oprindelige område, men uden tomme celler:

 

Metode 3. Brugerdefineret funktion i VBA

Hvis der er mistanke om, at du ofte skal gentage proceduren for at fjerne tomme celler fra områder, så er det bedre at tilføje din egen funktion til at fjerne tomme celler til standardsættet én gang, og bruge den i alle efterfølgende tilfælde.

For at gøre dette skal du åbne Visual Basic Editor (ALT + F11), indsæt et nyt tomt modul (menu Indsæt – Modul) og kopier teksten til denne funktion derhen:

Funktion 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 Hver Rng I DataRange.Cells Hvis Rng.Value <> vbNullString Så N = N + 1 Resultat(N, 1 ) = Rng.Value End If Next Rng For N2 = N + 1 To MaxCells Result(N2, 1) = vbNullString Next N2 If Application.Caller.Rows.Count = 1 Then NoBlanks = Application.Transpose(Result) Else NoBlanks = Result End If End-funktion  

Glem ikke at gemme filen og skifte tilbage fra Visual Basic Editor til Excel. For at bruge denne funktion i vores eksempel:

  1. Vælg et tilstrækkeligt område af tomme celler, for eksempel F3:F10.
  2. Gå til menuen Indsæt – Funktion (Indsæt — Funktion)eller klik på knappen Indsæt funktion (Indsæt funktion) fanen Formula (Formler) i nyere versioner af Excel. I kategori Brugerdefineret (Brugerdefineret) vælge vores funktion Ingen blanks.
  3. Angiv kildeområdet med tomrum (B3:B10) som funktionsargument og tryk Ctrl + Skift + Enterfor at indtaste funktionen som en matrixformel.

:

  • Sletning af alle tomme rækker i en tabel på én gang med en simpel makro
  • Fjernelse af alle tomme rækker i et regneark på én gang ved hjælp af PLEX-tilføjelsen
  • Fyld hurtigt alle tomme celler
  • Hvad er makroer, hvor skal man indsætte makrokode i VBA

 

Giv en kommentar