Kako izbrisati prazne redove u Excelu pomoću VBA, formula i Power Queryja

  • Podijeli Ovo
Michael Brown

Ovaj vodič će vas naučiti nekoliko jednostavnih trikova za sigurno brisanje više praznih redova u Excelu bez gubljenja ijedne informacije .

Prazni redovi u Excelu su problem s kojim se svi suočavamo s vremena na vrijeme, posebno kada se kombiniraju podaci iz različitih izvora ili uvoze informacije s nekog drugog mjesta. Prazni redovi mogu uzrokovati puno pustošenja vašim radnim listovima na različitim nivoima, a njihovo ručno brisanje može biti dugotrajan proces sklon greškama. U ovom članku ćete naučiti nekoliko jednostavnih i pouzdanih metoda za uklanjanje praznina u vašim radnim listovima.

    Kako NE ukloniti prazne redove u Excelu

    Postoji nekoliko različiti načini za brisanje praznih redova u Excelu, ali iznenađujuće mnogi online resursi se drže najopasnijeg, odnosno Pronađi & Odaberite > Idi na posebno > Praznine .

    Šta nije u redu s ovom tehnikom? Odabire sve praznine u rasponu, i prema tome ćete na kraju izbrisati sve redove koji sadrže čak i jednu praznu ćeliju.

    Slika ispod prikazuje originalnu tablicu s lijeve strane i rezultujuća tabela sa desne strane. I u rezultirajućoj tabeli, svi nepotpuni redovi su nestali, čak i red 10 gdje je nedostajao samo datum u stupcu D:

    Suština: ako ne želite zabrljati svoje podatke, nikada ne brišite prazno redove odabirom praznih ćelija. Umjesto toga, koristite jedan od razmatranih pristupa o kojima se raspravljačine stvari složenijim nego što bi trebalo da budu. Dakle, napravili smo korak dalje i kreirali rutu s dva klika za brisanje praznih redova u Excelu.

    Sa Ultimate Suite dodatim na vašu traku, evo kako možete izbrisati sve prazne redove na radnom listu:

    1. Na kartici Alati za Ablebits , u grupi Transformiraj , kliknite na Izbriši praznine > Prazni redovi :
    2. Dodatak će vas obavijestiti da će svi prazni redovi biti uklonjeni iz aktivnog radnog lista i zatražiti potvrdu. Kliknite OK i za trenutak će svi prazni redovi biti eliminisani.

    Kao što je prikazano na slici ispod, uklonili smo samo apsolutno prazne linije koje nemaju ni jednu ćeliju s podacima:

    Da biste pronašli iz još sjajnih funkcija uključenih u naš Ultimate Suite for Excel, dobrodošli ste da preuzmete probnu verziju.

    Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeće sedmice!

    ispod.

    Kako ukloniti prazne redove u Excelu pomoću VBA

    Excel VBA može popraviti mnogo stvari, uključujući više praznih redova. Najbolja stvar u vezi ovog pristupa je što ne zahtijeva nikakve vještine programiranja. Jednostavno, uzmite jedan od donjih kodova i pokrenite ga u svom Excelu (uputstva su ovdje).

    Makro 1. Izbrišite prazne linije u odabranom rasponu

    Ovaj VBA kod tiho briše sve prazne redova u odabranom rasponu, bez prikazivanja bilo kakve poruke ili dijaloškog okvira korisniku.

    Za razliku od prethodne tehnike, makro briše redak ako je cijeli red prazan . Oslanja se na funkciju radnog lista CountA da dobije broj nepraznih ćelija u svakoj liniji, a zatim briše redove sa nultim brojem.

    Public Sub DeleteBlankRows() Dim SourceRange As Range Dim EntireRow As Range Postavi SourceRange = Application. Odabir ako nije (SourceRange is Nothing) Tada Application.ScreenUpdating = False Za I = SourceRange.Rows.Count do 1 korak -1 Postavite EntireRow = SourceRange.Cells(I, 1).EntireRow If Application.WorksheetFunction.CountA(EntireRow) = 0 Zatim EntireRow.Delete End If Next Application.ScreenUpdating = True End If End Sub

    Da korisniku date priliku da odabere ciljni raspon nakon pokretanja makronaredbe , koristite ovaj kod:

    Javno Sub RemoveBlankLines() Zatamni SourceRange kao opseg Zatamni cijeli red kao raspon u slučaju greške Nastavi Sljedeći Set SourceRange = Application.InputBox( _"Select a range:" , "Delete Blank Rows" , _ Application.Selection.Address, Type :=8) Ako nije (SourceRange is Nothing) onda Application.ScreenUpdating = False For I = SourceRange.Rows.Count To 1 Step - 1 Postavite EntireRow = SourceRange.Cells(I, 1).EntireRow Ako Application.WorksheetFunction.CountA(EntireRow) = 0 Onda EntireRow.Delete End Ako je sljedeća Application.ScreenUpdating = True End If End Sub

    Po pokretanju, makro prikazuje u sljedećem polju za unos, odabirete ciljni raspon i kliknite OK:

    U trenutku, sve prazne linije u odabranom rasponu će biti eliminirane, a preostale će se pomaknuti prema gore:

    Makro 2. Izbrišite sve prazne redove u programu Excel

    Da biste uklonili sve prazne redove na aktivnom listu , odredite zadnji red korištenog raspona (tj. red koji sadrži posljednja ćelija s podacima), a zatim idite prema gore brišući linije za koje CountA vraća nulu:

    Sub DeleteAllEmptyRows() Dim LastRowIndex As Integer Dim RowIndex As Integer Dim UsedRng As Range Set UsedRng = Activ eSheet.UsedRange LastRowIndex = UsedRng.Row - 1 + UsedRng.Rows.Count Application.ScreenUpdating = False For RowIndex = LastRowIndex na 1 korak -1 If Application.CountA(Rows(RowIndex)) = 0 Onda Rows(RowIndex) Ako Next RowIndex Application.ScreenUpdating = True End Sub

    Makro 3. Izbriši red ako je ćelija prazna

    Sa ovim makroom, možete izbrisati cijeli red ako je ćelija u navedenojstupac je prazan.

    Sljedeći kod provjerava prazna kolona A. Da izbrišete redove na osnovu druge kolone, zamijenite "A" odgovarajućim slovom.

    Sub DeleteRowIfCellBlank() U slučaju greške Nastavi sljedeće kolone( "A" ).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub

    Kao u stvari, makro koristi funkciju Go To Special > Praznine , a isti rezultat možete postići izvođenjem ovih koraka ručno.

    Napomena. Makro briše prazne redove u cijelom listu , stoga budite vrlo oprezni kada ga koristite. Kao mera predostrožnosti, možda bi bilo pametno napraviti rezervnu kopiju radnog lista pre pokretanja ovog makroa.

    Kako ukloniti prazne redove u Excelu pomoću VBA

    Da biste izbrisali prazne redove u Excelu koristeći makro, morate može umetnuti VBA kod u svoju radnu svesku ili pokrenuti makro iz naše radne sveske.

    Dodajte makro u svoju radnu svesku

    Da biste umetnuli makro u svoju radnu svesku, izvršite ove korake:

    1. Otvorite radni list na kojem želite da izbrišete prazne redove.
    2. Pritisnite Alt + F11 da otvorite Visual Basic Editor.
    3. U lijevom oknu, kliknite desnim tasterom miša Ova radna sveska , a zatim kliknite na Insert > Module .
    4. Zalijepite kod u prozor koda.
    5. Pritisnite F5 da pokrenete makro.

    Za detaljna uputstva korak po korak pogledajte Kako umetnuti i koristiti VBA u Excelu.

    Pokrenite makro iz naše radne knjige uzorka

    Preuzmite naš uzorakradna knjiga sa makroima za brisanje praznih redova i odatle pokrenite jedan od sljedećih makroa:

    DeleteBlankRows - uklanja prazne redove u trenutno odabranom rasponu.

    RemoveBlankLines - briše prazne redove i pomiče prema gore u rasponu koji odaberete nakon pokretanja makronaredbe.

    DeleteAllEmptyRows - briše sve prazne redove na aktivnom listu.

    DeleteRowIfCellBlank - briše red ako je ćelija u određenoj koloni prazna.

    Da biste pokrenuli makro u svom Excelu, učinite sljedeće:

    1. Otvorite preuzeta radna sveska i omogućite makronaredbe ako se to od vas zatraži.
    2. Otvorite svoju radnu svesku i idite na radni list koji vas zanima.
    3. U svom radnom listu pritisnite Alt + F8, odaberite makro i kliknite Pokreni .

    Formula za brisanje praznih redova u Excelu

    U slučaju da želite vidjeti šta brišete, koristite sljedeću formulu da identifikujete prazne redove:

    =IF(COUNTA(A2:D2)=0, "Blank", "Not blank")

    Gdje je A2 prva, a D2 posljednja korištena ćelija prvog reda podataka.

    Unesite ovu formulu a u E2 ili bilo kojoj drugoj praznoj koloni u redu 2, i povucite ručicu za popunjavanje da kopirate formulu nadolje.

    Kao rezultat, imat ćete "Prazno" u praznim redovima i "Nije prazno" u redovima koje sadrže barem jednu ćeliju s podacima:

    Logika formule je očigledna: brojite neprazne ćelije s funkcijom COUNTA i koristite IF naredbu da vratite "Prazno" za nulti broj, "Not Blank" u suprotnom .

    Uu stvari, možete lijepo učiniti bez IF:

    =COUNTA(A2:D2)=0

    U ovom slučaju, formula će vratiti TRUE za prazne redove i FALSE za neprazne redove.

    Sa formulu, izvršite ove korake da izbrišete prazne redove:

    1. Odaberite bilo koju ćeliju u redu zaglavlja i kliknite Sort & Filter > Filter na kartici Početna , u Formati Ovo će dodati padajuće strelice za filtriranje svim ćelijama zaglavlja.
    2. Kliknite na strelicu u zaglavlju stupca formule, poništite (Odaberi sve), odaberite Prazno i kliknite OK :
    3. Odaberi sve filtrirane redove . Da biste to učinili, kliknite na prvu ćeliju prvog filtriranog retka i pritisnite Ctrl + Shift + End da proširite odabir na posljednju ćeliju posljednjeg filtriranog retka.
    4. Kliknite desnom tipkom miša na odabir, odaberite Izbrišite red iz kontekstnog menija, a zatim potvrdite da zaista želite da izbrišete čitave redove:
    5. Uklonite filter pritiskom na Ctrl + Shift + L . Ili kliknite karticu Početna > Sortiraj & Filter > Filter .
    6. Izbrišite kolonu s formulom jer vam više ne treba.

    To je to! Kao rezultat, imamo čistu tabelu bez praznih linija, ali su sve informacije sačuvane:

    Savjet. Umjesto brisanja praznih redova, možete kopirati neprazne redove na neko drugo mjesto. Da biste to učinili, filtrirajte redove "Nije prazne", odaberite ih i pritisnite Ctrl + C za kopiranje. Zatim prebacite nana drugom listu, odaberite gornju lijevu ćeliju odredišnog raspona i pritisnite Ctrl + V za lijepljenje.

    Kako ukloniti prazne redove u Excelu pomoću Power Query

    U Excel 2016 i Excel 2019, postoji još jedan način za brisanje praznih redova - korištenjem funkcije Power Query. U Excel 2010 i Excel 2013 može se preuzeti kao dodatak.

    Važna napomena! Ova metoda radi sa sljedećim upozorenjem: Power Query pretvara izvorne podatke u Excel tablicu i mijenja formatiranje kao što su boja popune, ivice i neki formati brojeva. Ako vam je formatiranje originalnih podataka važno, onda je bolje da odaberete neki drugi način uklanjanja praznih redova u Excelu.

    1. Odaberite raspon u kojem želite izbrisati prazne redove.
    2. Idite na karticu Podaci > Preuzmi & Transformiraj grupu i kliknite na Iz tabele/dometa . Ovo će učitati vašu tabelu u Power Query Editor.
    3. Na kartici Početna u Power Query Editoru kliknite na Ukloni redove > Ukloni prazne redove .
    4. Kliknite na Zatvori & Load Ovo će učitati rezultujuću tabelu na novi radni list i zatvoriti uređivač upita.

    Kao rezultat ovih manipulacija, dobio sam sljedeću tabelu bez praznih redova, ali uz par gadnih promjena - format valute je izgubljen i datumi su prikazani u zadanom formatu umjesto prilagođenog:

    Kako izbrisati redove akoćelija u određenoj koloni je prazna

    Na početku ovog uputstva upozorili smo vas da ne uklanjate prazne redove odabirom praznina. Međutim, ova metoda je zgodna ako želite da izbrišete redove na osnovu praznina u određenoj koloni .

    Kao primjer, uklonimo sve redove u kojima je ćelija u stupcu A prazna :

    1. Odaberite ključnu kolonu, kolonu A u našem slučaju.
    2. Na kartici Početna kliknite na Pronađi & Odaberite > Idi na posebno . Ili pritisnite F5 i kliknite na dugme Posebno... .
    3. U dijaloškom okviru Idi na posebno odaberite Praznine i kliknite OK . Ovo će odabrati prazne ćelije u korištenom rasponu u koloni A.
    4. Kliknite desnom tipkom miša na bilo koju odabranu ćeliju i odaberite Izbriši... iz kontekstnog izbornika.
    5. U dijaloškom okviru Izbriši odaberite Cijeli red i kliknite OK.

    Gotovo! Redovi koji nemaju vrijednost u koloni A više nisu tu:

    Isti rezultat se može postići filtriranjem praznina u ključnoj koloni.

    Kako ukloniti dodatne redove ispod podataka

    Ponekad, redovi koji izgledaju potpuno prazni mogu zapravo sadržavati neke formate ili znakove koji se ne mogu ispisati. Da biste provjerili je li posljednja ćelija s podacima zaista zadnja korištena ćelija na vašem radnom listu, pritisnite Ctrl + End . Ako vas je ovo dovelo do vizualno praznog reda ispod vaših podataka, u smislu Excela, taj red nije prazan. Da biste uklonili takve redove, učinitesljedeće:

    1. Kliknite na zaglavlje prvog praznog reda ispod vaših podataka da biste ga odabrali.
    2. Pritisnite Ctrl + Shift + End . Ovo će odabrati sve redove koji sadrže bilo šta uključujući formate, razmake i znakove koji se ne štampaju.
    3. Kliknite desnim tasterom miša na odabir i odaberite Izbriši... > Cijeli red.

    Ako imate relativno mali skup podataka, možda ćete želeti da se riješite svih praznih linija ispod vaših podataka, npr. da olakšate skrolovanje. Iako ne postoji način da izbrišete neiskorištene redove u Excelu, ne postoji ništa što bi vas spriječilo da ih sakrijete . Evo kako:

    1. Odaberite red ispod posljednjeg reda s podacima klikom na njegovo zaglavlje.
    2. Pritisnite Ctrl + Shift + strelica nadolje da proširite odabir do posljednjeg reda na listu .
    3. Pritisnite Ctrl + 9 da sakrijete odabrane redove. Ili kliknite desnim tasterom miša na odabir, a zatim kliknite na Sakrij .

    Da otkrijete redove , pritisnite Ctrl + A da odaberete cijeli list, a zatim pritisnite Ctrl + Shift + 9 da sve redove ponovo učinite vidljivim.

    Na sličan način možete sakriti neiskorištene prazne stupce desno od podataka. Za detaljne korake, molimo pogledajte Sakrij neiskorištene redove u Excelu tako da je vidljivo samo radno područje.

    Najbrži način uklanjanja praznih redova u Excelu

    Kada ste čitali prethodne primjere, zar ne osjećate se kao da koristimo malj da razbijemo orah? Ovdje, u Ablebitsu, ne želimo

    Michael Brown je posvećen tehnološki entuzijasta sa strašću za pojednostavljenje složenih procesa pomoću softverskih alata. Sa više od decenije iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google Sheets i Docs. Michaelov blog je posvećen dijeljenju svog znanja i stručnosti s drugima, pružajući jednostavne savjete i tutorijale za poboljšanje produktivnosti i efikasnosti. Bilo da ste iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.