Ewechzehuelen eidel Zellen aus engem Beräich

Formuléierung vum Problem

Mir hunn eng Rei vun Zellen mat Daten déi eidel Zellen enthalen:

 

D'Aufgab ass eidel Zellen ze läschen, nëmmen Zellen mat Informatioun ze loossen.

Method 1. Rau a séier

  1. Auswiel vun der original Gamme
  2. Dréckt de Schlëssel F5, nächst Knäppchen Highlight (Speziell). An der Fënster déi opmaacht, wielt Eidel Zellen(Blancë) a klickt op OK.

    Ewechzehuelen eidel Zellen aus engem Beräich

    All eidel Zellen am Beräich sinn ausgewielt.

  3. Mir ginn e Kommando am Menü fir ausgewielte Zellen ze läschen: Riets-klickt- Zellen läschen (Zellen läschen) mat erop Verréckelung.

Method 2: Array Formel

Fir ze vereinfachen, loosst eis eis Aarbechtsbereich nennen mat Numm Manager (Numm Manager) Reiter Formule (Formelen) oder, an Excel 2003 a méi al, de Menü Insert - Numm - Assignéieren (Insert - Numm - Definéieren)

 

Benennt de Beräich B3:B10 Huet eidel, Beräich D3:D10 - Keen eidel. Beräicher muss strikt déi selwecht Gréisst ginn, a kann iwwerall relativ zu all aner etabléiert ginn.

Wielt elo déi éischt Zell vun der zweeter Gamme (D3) a gitt dës grujeleg Formel an:

=WANN(ZEIEL() -REI(NeeEmpty)+1>NOTROWS(JoEmpty)-COUNTBLANK(JoEmpty);"";INDIRECT(ADDRESS(NEIDERSTE((WANN(Empty<>“”,ROW(Empty);ROW() + ROWS(Et ginn eidel))); LINE()-ROW(Keng eidel)+1); KOLONN(Et sinn eidel); 4)))

An der englescher Versioun wäert et sinn:

=IF(REI()-ZEILEN(NeeEmpty)+1>ZEILEN(Eidel)-COUNTBLANK(Empty),",",INDIRECT(ADRES(KLEIN((IF(Empty<>“",REIL(Empty),ROW() +REIEREN(Eidel))),ZEILEN()-ZEILEN(Keng eidel)+1),KOLONN(Eieg),4)))

Ausserdeem muss et als Arrayformel aginn ginn, also dréckt no der Paste gitt (wéi gewinnt) an Ctrl + Umeldung + Enter. Elo kann d'Formel mat Autocomplete kopéiert ginn (zéckt de schwaarze Kräiz an der ënneschter rechter Ecke vun der Zell) - a mir kréien den urspréngleche Beräich, awer ouni eidel Zellen:

 

Method 3. Benotzerdefinéiert Funktioun am VBA

Wann et e Verdacht ass datt Dir d'Prozedur fir d'Ewechhuele vu eidel Zellen aus de Beräicher dacks muss widderhuelen, ass et besser fir Är eege Funktioun fir eidel Zellen op de Standardset eemol ze läschen, a benotzt se an all spéider Fäll.

Fir dëst ze maachen, öffnen de Visual Basic Editor (ALT + F11), en neien eidele Modul setzen (Menu Insert - Modul) a kopéiert den Text vun dëser Funktioun dohinner:

Function 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 Then N = N + 1 Result(N, 1) ) = Rng.Value End Wann Nächste Rng Fir N2 = N + 1 Ze MaxCells Result (N2, 1) = vbNullString Nächst N2 Wann Application.Caller.Rows.Count = 1 Dann NoBlanks = Application.Transpose(Result) Else NoBlanks = Result Enn Wann Enn Funktioun  

Vergiesst net d'Datei ze späicheren an zréck vum Visual Basic Editor op Excel ze wiesselen. Fir dës Funktioun an eisem Beispill ze benotzen:

  1. Wielt eng genuch Gamme vu eidel Zellen, zum Beispill F3: F10.
  2. Gitt op de Menu Insert - Funktioun (Insert - Funktioun)oder klickt op de Knäppchen Fonktioun asetzen (Insert Funktioun) Reiter Formule (Formelen) an nei Versioune vun Excel. An der Kategorie Benotzerdefinéiert (Benotzerdefinéiert) wielt eis Funktioun Nee Blanks.
  3. Gitt d'Quellberäich mat Voiden (B3: B10) als Funktiounsargument un an dréckt Ctrl + Umeldung + Enterfir d'Funktioun als Arrayformel anzeginn.

:

  • Läschen all eidel Zeile an enger Tabell op eemol mat engem einfachen Macro
  • Ewechzehuelen all eidel Zeilen an engem Aarbechtsblat op eemol mat der PLEX Add-on
  • Fëllt séier all eidel Zellen
  • Wat sinn Macroen, wou Dir Makrocode an VBA aginn

 

Hannerlooss eng Äntwert