Kuidas kustutada tühje ridu Excelis VBA, valemite ja Power Query abil

  • Jaga Seda
Michael Brown

See õpetus õpetab teile mõned lihtsad nipid, et kustutada Excelis mitu tühja rida ohutult, ilma et kaotaksite ühegi teabeosa. .

Tühjad read Excelis on probleem, millega me kõik aeg-ajalt silmitsi seisame, eriti kui kombineerime andmeid erinevatest allikatest või impordime teavet mujalt. Tühjad read võivad tekitada teie töölehtedel erinevatel tasanditel palju hävingut ja nende käsitsi kustutamine võib olla aeganõudev ja vigadega seotud protsess. Selles artiklis saate teada mõned lihtsad ja usaldusväärsed meetodid tühjade ridade eemaldamiseksteie töölehed.

    Kuidas EI eemalda tühje ridu Excelis

    Excelis tühjade ridade kustutamiseks on mitu erinevat võimalust, kuid üllatavalt paljud veebiressursid jäävad kõige ohtlikuma, nimelt Leia & vali; vali > Mine Speciali juurde > Aherained .

    Mis selles tehnikas valesti on? See valib kõik toorikud vahemikus ja järelikult kustutate lõpuks kõik read, mis sisaldavad ka ainult üht tühja lahtrit.

    Alloleval pildil on vasakul algne tabel ja paremal tulemuseks saadud tabel. Ja tulemuseks saadud tabelis on kõik mittetäielikud read kadunud, isegi rida 10, kus puudus ainult kuupäev veerus D:

    Kokkuvõttes: kui te ei taha oma andmeid segi ajada, ärge kunagi kustutage tühje ridu, valides tühje lahtreid. Selle asemel kasutage ühte allpool kirjeldatud kaalutletumatest lähenemisviisidest.

    Kuidas eemaldada tühjad read Excelis VBAga

    Excel VBA abil saab parandada palju asju, sealhulgas mitu tühja rida. Parim asi selle lähenemisviisi juures on see, et see ei nõua programmeerimisoskusi. Lihtsalt, haarake üks allpool toodud koodidest ja käivitage see oma Excelis (juhised on siin).

    Makro 1. Tühjade ridade kustutamine valitud vahemikus

    See VBA-kood kustutab vaikselt kõik tühjad read valitud vahemikus, ilma et kasutajale kuvataks mingit teadet või dialoogiakent.

    Erinevalt eelmisest tehnikast kustutab makro rea, kui kogu rida on tühi See tugineb töölehe funktsioonile CountA, et saada igas reas olevate mittetühjade lahtrite arv ja seejärel kustutab read, mille arv on null.

    Public Sub DeleteBlankRows() Dim SourceRange As Range Dim EntireRow As Range Set SourceRange = Application.Selection If Not (SourceRange Is Nothing ) Then Application.ScreenUpdating = False For I = SourceRange.Rows.Count To 1 Step -1 Set EntireRow = SourceRange.Cells(I, 1).EntireRow If Application.WorksheetFunction.CountA(EntireRow) = 0 Then EntireRow.Delete End If Next Application.ScreenUpdating= True End If End Sub

    Anda kasutajale võimalus valige sihtvahemik pärast makro käivitamist , kasutage seda koodi:

    Public Sub RemoveBlankLines() Dim SourceRange As Range Dim EntireRow As Range On Error Resume Next Set SourceRange = Application.InputBox( _ "Select a range:" , "Delete Blank Rows" , _ Application.Selection.Address, Type :=8) If Not (SourceRange Is Nothing ) Then Application.ScreenUpdating = False For I = SourceRange.Rows.Count To 1 Step -1 Set EntireRow = SourceRange.Cells(I, 1).EntireRow IfApplication.WorksheetFunction.CountA(EntireRow) = 0 Then EntireRow.Delete End If Next Application.ScreenUpdating = True End If End Sub

    Makro käivitamisel kuvatakse järgmine sisendkast, valige sihtvahemik ja klõpsake OK:

    Hetke pärast kõrvaldatakse kõik tühjad read valitud vahemikus ja allesjäänud read nihkuvad ülespoole:

    Makro 2. Kustuta kõik tühjad read Excelis

    Eemaldada kõik tühjad read kohta aktiivne leht , määrab kasutatud vahemiku viimase rea (st rea, mis sisaldab viimast lahtrit, kus on andmed), ja läheb siis ülespoole, kustutades read, mille puhul CountA annab nulli:

    Sub DeleteAllEmptyRows() Dim LastRowIndex As Integer Dim RowIndex As Integer Dim UsedRng As Range Set UsedRng = ActiveSheet.UsedRange LastRowIndex = UsedRng.Row - 1 + UsedRng.Rows.Count Application.ScreenUpdating = False For RowIndex = LastRowIndex To 1 Step -1 If Application.CountA(Rows(RowIndex)) = 0 Then Rows(RowIndex).Delete End If Next RowIndex Application.ScreenUpdating = True End Sub

    Makro 3. Kustuta rida, kui lahter on tühi

    Selle makroga saate kustutada terve rea, kui määratud veeru lahter on tühi.

    Järgnev kood kontrollib veergu A tühikute suhtes. Kui soovite kustutada ridu mõne teise veeru alusel, asendage "A" sobiva tähega.

    Sub DeleteRowIfCellBlank() On Error Resume Next Columns( "A" ).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub

    Õigupoolest kasutab makro makroga Mine Speciali juurde > Aherained funktsiooniga ja sama tulemuse saate saavutada, kui te täidate need sammud käsitsi.

    Märkus. Makro kustutab tühjad read tabelis kogu leht , seega olge selle kasutamisel väga ettevaatlik. Ettevaatusabinõuna võib olla mõistlik teha enne selle makro käivitamist töölehest varukoopia.

    Kuidas eemaldada tühjad read Excelis VBAga

    Tühjade ridade kustutamiseks Excelis makro abil saate VBA-koodi kas sisestada omaenda töövihikusse või käivitada makro meie näidistöövihikust.

    Makro lisamine oma töövihikusse

    Makro lisamiseks oma töövihikusse tehke järgmised toimingud:

    1. Avage tööleht, kust soovite tühjad read kustutada.
    2. Vajutage Alt + F11, et avada Visual Basic'i redaktor.
    3. Klõpsake vasakul paanil paremklõpsuga ThisWorkbook ja seejärel klõpsake Sisesta > Moodul .
    4. Sisestage kood koodide aknasse.
    5. Makro käivitamiseks vajutage F5.

    Üksikasjalikud samm-sammulised juhised leiate jaotisest Kuidas sisestada ja kasutada VBA-d Excelis.

    Käivita makro meie näidistööraamatust

    Laadige alla meie näidistööraamat tühjade ridade kustutamise makrotega ja käivitage sealt üks järgmistest makrotest:

    DeleteBlankRows - eemaldab tühjad read hetkel valitud vahemikus.

    RemoveBlankLines - kustutab tühjad read ja nihutab üles vahemikku, mille valite pärast makro käivitamist.

    DeleteAllEmptyRows - kustutab kõik tühjad read aktiivsel lehel.

    DeleteRowIfCellBlank - kustutab rea, kui konkreetse veeru lahter on tühi.

    Makro käivitamiseks Excelis tehke järgmist:

    1. Avage allalaaditud töövihik ja lubage makrosid, kui seda nõutakse.
    2. Avage oma töövihik ja navigeerige huvipakkuvale töölehele.
    3. Vajutage oma töölehel Alt + F8, valige makro ja klõpsake nuppu Käivita .

    Valem tühjade ridade kustutamiseks Excelis

    Kui soovite näha, mida te kustutate, kasutage tühjade ridade tuvastamiseks järgmist valemit:

    =IF(COUNTA(A2:D2)=0, "Tühi", "Mitte tühi")

    Kus A2 on esimene ja D2 on esimese andmerea viimane kasutatud lahter.

    Sisestage see valem E2 või mõnda teise tühja veergu reas 2 ja lohistage täitekäepidet, et valemit alla kopeerida.

    Tulemuseks on "Tühi" tühjadel ridadel ja "Mitte tühi" ridadel, mis sisaldavad vähemalt ühte lahtrit andmetega:

    Valemi loogika on ilmselge: loendate mitte-tühjad lahtrid funktsiooniga COUNTA ja kasutate IF avaldust, et tagastada "tühi", kui arv on null, ja "mitte tühi", kui see on tühi.

    Tegelikult saab kenasti hakkama ka ilma IF-ta:

    =COUNTA(A2:D2)=0

    Sellisel juhul tagastab valem tühjade ridade puhul TRUE ja mitte-tühjade ridade puhul FALSE.

    Kui valem on paigas, viige tühjade ridade kustutamiseks läbi järgmised sammud:

    1. Valige ükskõik milline lahter päise reas ja klõpsake nuppu Sort & Filter > Filter kohta Kodu vahekaardil Formaadid See lisab filtreerimise rippnooled kõigile päise lahtritele.
    2. Klõpsake noolt valemi veeru päises, eemaldage linnuke (valige kõik), valige Tühi ja klõpsake OK :
    3. Valige kõik filtreeritud read. Selleks klõpsake esimese filtreeritud rea esimesel lahtril ja vajutage Ctrl + Shift + End, et laiendada valikut viimase filtreeritud rea viimase lahtrini.
    4. Tehke paremklõps valikul, valige Kustuta rida kontekstmenüüst ja kinnitage seejärel, et soovite tõesti kustutada terveid ridu:
    5. Eemaldage filter, vajutades Ctrl + Shift + L . Või klõpsake nuppu Kodu tab> Sort & Filter > Filter .
    6. Kustutage valemiga veerg, sest te ei vaja seda enam.

    See on kõik! Tulemusena on meil puhas tabel, kus ei ole tühje ridu, kuid kogu teave on säilinud:

    Vihje. Tühjade ridade kustutamise asemel võite kopeerida mitte-tühjad read kuhugi mujale. Selleks filtreeri "Mitte tühjad" read, vali need välja ja vajuta kopeerimiseks Ctrl + C. Seejärel vaheta teisele lehele, vali sihtvahemiku vasakpoolne ülemine lahter ja vajuta kleepimiseks Ctrl + V.

    Kuidas eemaldada tühjad read Excelis Power Query abil

    Excel 2016-is ja Excel 2019-is on veel üks võimalus tühjade ridade kustutamiseks - kasutades funktsiooni Power Query. Excel 2010-is ja Excel 2013-is saab seda alla laadida lisavõimalusena.

    Oluline märkus! See meetod töötab järgmise hoiatusega: Power Query teisendab lähteandmed Exceli tabeliks ja muudab vormingut, näiteks täitevärvi, piire ja mõningaid numbrivorminguid. Kui teie algandmete vorming on teile oluline, siis valige parem mõni muu viis tühjade ridade eemaldamiseks Excelis.

    1. Valige vahemik, kust soovite tühje ridu kustutada.
    2. Minge Andmed tab> Saada &; Transformeeri rühma ja klõpsake Alates tabelist/vahemikust See laadib teie tabeli Power Query Editorisse.
    3. On Kodu vahelehel Power Query Editor, klõpsake Eemalda read > Tühjade ridade eemaldamine .
    4. Klõpsake nuppu Sulge & Laadi See laeb saadud tabeli uuele töölehele ja sulgeb päringu redaktori.

    Nende manipulatsioonide tulemusena sain järgmise tabeli ilma tühjade ridadeta, kuid paari ebameeldiva muudatusega - valuutaformaat on kadunud ja kuupäevad kuvatakse kohandatud formaadi asemel vaikimisi formaadis:

    Kuidas kustutada ridu, kui teatud veeru lahter on tühi

    Selle õpetuse alguses hoiatasime teid tühjade ridade eemaldamise eest tühikute valimise teel. See meetod tuleb aga kasuks, kui soovite kustutada ridu, mille aluseks on tühjad kohad konkreetses veerus .

    Eemaldame näiteks kõik read, kus veeru A lahter on tühi:

    1. Valige võtmesammas, meie puhul veerg A.
    2. On Kodu vahekaart, klõpsake Leia & vali > Mine Speciali juurde . või vajutage F5 ja klõpsake Eriline... nupp.
    3. In the Mine Speciali juurde dialoogis, valige Aherained ja klõpsake OK See valib tühjad lahtrid kasutatud vahemikus veerus A.
    4. Tehke paremklõps mis tahes valitud lahtril ja valige Kustuta... kontekstmenüüst.
    5. In the Kustuta dialoogiaknas valige Kogu rida ja klõpsake OK.

    Valmis! Ridu, millel ei ole väärtust veerus A, enam ei ole:

    Sama tulemuse saab saavutada, kui filtreerida tühikuid võtmesarjas.

    Kuidas eemaldada andmete all olevad täiendavad read

    Mõnikord võivad täiesti tühjadena näivad read tegelikult sisaldada mõningaid vorminguid või mittetrükitavaid märke. Et kontrollida, kas viimane andmetega lahter on tõesti teie töölehe viimane kasutatud lahter, vajutage Ctrl + End . Kui see on viinud teid andmete all oleva visuaalselt tühja rea juurde, siis Exceli seisukohalt ei ole see rida tühi. Selliste ridade eemaldamiseks tehke järgmist:

    1. Klõpsake oma andmete all oleva esimese tühja rea pealkirjal, et valida see.
    2. Vajutage Ctrl + Shift + End . See valib kõik read, mis sisaldavad midagi, sealhulgas vorminguid, tühikuid ja mittetrükkivaid märke.
    3. Tehke paremklõps valikul ja valige Kustuta... > Kogu rida.

    Kui teil on suhteliselt väike andmestik, võite soovida vabaneda kõigist tühjadest ridadest andmete all, nt kerimise lihtsustamiseks. Kuigi Excelis ei ole võimalik kasutamata ridu kustutada, ei takista miski seda, et te peidus neid. Siin on, kuidas:

    1. Valige viimase andmetega rea all olev rida, klõpsates selle pealkirjal.
    2. Vajutage Ctrl + Shift + allapoole noolt, et laiendada valikut lehe viimasele reale.
    3. Valitud ridade peitmiseks vajutage Ctrl + 9. Või tehke paremklõps valikul ja seejärel klõpsake nuppu Peida .

    aadressile ridade peitmise tühistamine , vajutage Ctrl + A, et valida kogu leht ja seejärel vajutage Ctrl + Shift + 9, et muuta kõik read uuesti nähtavaks.

    Samamoodi saate varjata kasutamata tühjad veerud andmete paremal pool. Üksikasjalikud sammud leiate jaotisest Kasutamata ridade varjamine Excelis, nii et nähtav oleks ainult tööala.

    Kiireim viis tühjade ridade eemaldamiseks Excelis

    Kas eelmisi näiteid lugedes ei tundunud, et me kasutame pähkli murdmiseks haamrit? Me siin Ablebitsis eelistame mitte teha asju keerulisemaks kui vaja. Seega astusime sammu edasi ja lõime kahe klikiga marsruudi tühjade ridade kustutamiseks Excelis.

    Kui Ultimate Suite on lisatud teie lintide hulka, saate järgmist teha kustutada kõik tühjad read töölehel:

    1. On Ablebits tööriistad vahekaardil Transform rühma, klõpsake Kustuta tühjad kohad > Tühjad read :
    2. Lisavahend teatab teile, et kõik tühjad read eemaldatakse aktiivsest töölehest ja palub kinnitada. Vajutage OK ja mõne hetke pärast on kõik tühjad read kõrvaldatud.

    Nagu allpool oleval ekraanipildil näidatud, oleme eemaldanud ainult absoluutselt tühjad read mis ei sisalda ühtegi lahtrit andmetega:

    Kui soovite teada saada rohkem meie Ultimate Suite for Exceli suurepäraseid funktsioone, võite alla laadida prooviversiooni.

    Tänan teid lugemise eest ja loodan, et näeme teid järgmisel nädalal meie blogis!

    Michael Brown on pühendunud tehnoloogia entusiast, kelle kirg on tarkvaratööriistade abil keerukate protsesside lihtsustamine. Rohkem kui kümneaastase kogemusega tehnoloogiatööstuses on ta lihvinud oma oskusi Microsoft Excelis ja Outlookis, samuti Google Sheetsis ja Docsis. Michaeli ajaveebi eesmärk on jagada oma teadmisi ja teadmisi teistega, pakkudes hõlpsasti järgitavaid näpunäiteid ja õpetusi tootlikkuse ja tõhususe parandamiseks. Olenemata sellest, kas olete kogenud professionaal või algaja, pakub Michaeli ajaveebi väärtuslikke teadmisi ja praktilisi nõuandeid nende oluliste tarkvaratööriistade maksimaalseks kasutamiseks.