tartalom
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
- Az eredeti tartomány kiválasztása
- 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.
A tartomány összes üres cellája ki van jelölve.
- 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:
- Válassza ki az üres cellák megfelelő tartományát, például F3:F10.
- 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.
- 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