Üres cellák eltávolítása egy tartományból

A probléma megfogalmazása

Van egy sor cellánk olyan adatokkal, amelyek üres cellákat tartalmaznak:

 

A feladat az üres cellák eltávolítása, így csak az információt tartalmazó cellák maradnak meg.

1. módszer. Durva és gyors

  1. Az eredeti tartomány kiválasztása
  2. Nyomja meg a gombot F5, Következő gomb Kiemel (Különleges). A megnyíló ablakban válassza ki a lehetőséget Üres cellák(Üresek) és kattintson OK.

    Üres cellák eltávolítása egy tartományból

    A tartomány összes üres cellája ki van jelölve.

  3. Parancsot adunk a menüben a kijelölt cellák törlésére: kattintson a jobb gombbal- Cellák törlése (Cellák törlése) felfelé tolással.

2. módszer: Tömbképlet

Az egyszerűsítés kedvéért nevezzük el munkatartományainkat a használatával Névkezelő (Névkezelő) lap képlet (Képletek) vagy Excel 2003 és régebbi verziókban a menü Beszúrás – Név – Hozzárendelés (Beszúrás — Név — Meghatározás)

 

Nevezze el a tartományt B3:B10 HaveEmpty, tartomány D3:D10 – NincsÜres. A tartományoknak szigorúan azonos méretűnek kell lenniük, és egymáshoz képest bárhol elhelyezkedhetnek.

Most válassza ki a második tartomány első celláját (D3), és írja be ezt az ijesztő képletet:

=HA(SOR() -SORO(NincsÜres)+1>NOTROWS(IgenÜres)-COUNTBLANK(IgenÜres);””;INDIRECT(CÍM(LEGALACSONYABB((HA(Üres<>“”,SORO(Üres);ROW()) + SOROK(Vannak üresek))); LINE()-ROW(nincs üres)+1); OSZLOP(Vannak üresek); 4)))

Az angol változatban ez lesz:

=HA(SORO()-SORO(Nincs Üres)+1>SORAK(Üres)-COUNTÜRES(üres),””,INDIRECT(CÍM(KICS((HA(Üres<>“”,SORA(Üres),SORA)) +SOROK(Üres)),SOR()-SORO(Nincs Üres)+1),OSZLOP(Üres),4)))

Ráadásul tömbképletként kell megadni, azaz beillesztés után nyomni kell belép (szokás szerint) és Ctrl + Shift + Enter. Most a képletet le lehet másolni az automatikus kiegészítéssel (húzza a fekete keresztet a cella jobb alsó sarkában) - és megkapjuk az eredeti tartományt, de üres cellák nélkül:

 

3. módszer: Egyéni függvény a VBA-ban

Ha felmerül a gyanú, hogy gyakran meg kell ismételnie az üres cellák tartományokból való eltávolításának eljárását, akkor jobb, ha egyszer hozzáadja az üres cellák eltávolítására szolgáló saját funkciót a szabványkészlethez, és minden további esetben használja.

Ehhez nyissa meg a Visual Basic szerkesztőt (ALT + F11), helyezzen be egy új üres modult (menü Beszúrás – Modul), és másolja oda ennek a függvénynek a szövegét:

Függvény 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-től MaxCells-ig, 1-től 1-ig) Minden Rng-hez a DataRange.Cells-ben If Rng.Value <> vbNullString Then N = N + 1 Eredmény(N, 1) ) = Rng.Value End If Next Rng For N2 = N + 1 To MaxCells Eredmény(N2, 1) = vbNullString Next N2 Ha Application.Caller.Rows.Count = 1 Akkor NoBlanks = Application.Transpose(Result) Else NoBlanks = Eredmény End If End Funkció  

Ne felejtse el menteni a fájlt, és váltson vissza a Visual Basic Editorból az Excelre. A függvény használatához a példánkban:

  1. Válassza ki az üres cellák megfelelő tartományát, például F3:F10.
  2. Menj a menübe Beszúrás – Funkció (Beszúrás – Funkció)vagy kattintson a gombra Funkció beszúrása (Funkció beszúrása) lap képlet (Képletek) az Excel újabb verzióiban. Kategóriában Felhasználó által meghatározott (Felhasználó által meghatározott) válassza ki funkciónkat Nincs üres.
  3. Adja meg a forrás tartományt üres helyekkel (B3:B10) függvény argumentumként, és nyomja meg a gombot Ctrl + Shift + Enterhogy a függvényt tömbképletként adja meg.

:

  • Egy táblázat összes üres sorának törlése egy egyszerű makróval
  • Egy munkalap összes üres sorának egyidejű eltávolítása a PLEX kiegészítővel
  • Gyorsan töltse ki az összes üres cellát
  • Mik azok a makrók, hova kell beszúrni a makrókódot a VBA-ban

 

Hagy egy Válaszol