Så här tar du bort tomma rader i Excel med VBA, formler och Power Query

  • Dela Detta
Michael Brown

Den här handledningen kommer att lära dig några enkla knep för att ta bort flera tomma rader i Excel på ett säkert sätt utan att förlora en enda bit information. .

Tomma rader i Excel är ett problem som vi alla ställs inför då och då, särskilt när vi kombinerar data från olika källor eller importerar information från någon annanstans. Tomma rader kan orsaka stor förödelse i dina kalkylblad på olika nivåer och att ta bort dem manuellt kan vara en tidskrävande och felbenägen process. I den här artikeln får du lära dig några enkla och pålitliga metoder för att ta bort tomma rader idina arbetsblad.

    Hur du INTE tar bort tomma rader i Excel

    Det finns några olika sätt att radera tomma rader i Excel, men förvånansvärt många online-resurser håller sig till det farligaste sättet, nämligen Hitta & Välj > Gå till Special > Blanks .

    Vad är felet med den här tekniken? Den väljer alla ämnen i ett intervall, och därför kommer du att ta bort alla rader som innehåller så mycket som en enda tom cell.

    Bilden nedan visar den ursprungliga tabellen till vänster och den resulterande tabellen till höger. I den resulterande tabellen är alla ofullständiga rader borta, även rad 10 där endast datumet i kolumn D saknades:

    Slutsatsen är att om du inte vill förstöra dina data ska du aldrig radera tomma rader genom att välja tomma celler, utan istället använda ett av de mer genomtänkta tillvägagångssätten som diskuteras nedan.

    Hur man tar bort tomma rader i Excel med VBA

    Excel VBA kan åtgärda många saker, inklusive flera tomma rader. Det bästa med det här tillvägagångssättet är att det inte kräver några programmeringskunskaper. Ta helt enkelt en av nedanstående koder och kör den i din Excel (instruktionerna finns här).

    Makro 1. Ta bort tomma rader i ett markerat intervall.

    Den här VBA-koden raderar tyst alla tomma rader i ett valt intervall utan att visa något meddelande eller någon dialogruta för användaren.

    Till skillnad från den tidigare tekniken raderar makrot en rad om Hela raden är tom. Den använder kalkylbladets funktion CountA för att få fram antalet icke-tomma celler på varje rad och tar sedan bort rader med nollresultat.

    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

    Att ge användaren möjlighet att välja målområde efter att ha kört makrot , använd den här koden:

    Public Sub RemoveBlankLines() Dim SourceRange As Range Dim EntireRow As Range On Error Resume Next Set SourceRange = Application.InputBox( _ "Välj ett intervall:" , "Ta bort tomma rader" , _ 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

    När makrot körs visas följande inmatningsruta, du väljer målintervallet och klickar på OK:

    På ett ögonblick kommer alla tomma linjer i det valda området att elimineras och de återstående linjerna kommer att flyttas uppåt:

    Makro 2. Ta bort alla tomma rader i Excel

    För att ta bort alla tomma rader på den aktivt blad , bestämmer den sista raden i det använda intervallet (dvs. den rad som innehåller den sista cellen med data) och går sedan uppåt och raderar de rader för vilka CountA returnerar noll:

    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. Radera raden om cellen är tom

    Med det här makrot kan du radera en hel rad om en cell i den angivna kolumnen är tom.

    Följande kod kontrollerar om kolumn A är tom. Om du vill radera rader som baseras på en annan kolumn ersätter du "A" med en lämplig bokstav.

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

    Faktum är att makrot använder makroet den Gå till Special > Blanks och du kan uppnå samma resultat genom att utföra dessa steg manuellt.

    Observera: Makrot tar bort tomma rader i hela arket Det kan vara klokt att göra en säkerhetskopia av arbetsbladet innan du kör det här makrot.

    Hur du tar bort tomma rader i Excel med VBA

    Om du vill ta bort tomma rader i Excel med hjälp av ett makro kan du antingen infoga VBA-koden i din egen arbetsbok eller köra ett makro från vår exempelarbetsbok.

    Lägg till ett makro i arbetsboken

    Gör så här för att infoga ett makro i arbetsboken:

    1. Öppna arbetsbladet där du vill ta bort tomma rader.
    2. Tryck på Alt + F11 för att öppna Visual Basic Editor.
    3. I den vänstra rutan högerklickar du på Den här arbetsboken och klicka sedan på Infoga > Modul .
    4. Klistra in koden i fönstret Kod.
    5. Tryck på F5 för att köra makrot.

    Detaljerade steg-för-steg-instruktioner finns i Hur man infogar och använder VBA i Excel.

    Kör ett makro från vår exempelarbetsbok

    Ladda ner vår exempelarbetsbok med makron för att ta bort tomma rader och kör en av följande makron därifrån:

    DeleteBlankRows - tar bort tomma rader i det markerade intervallet.

    RemoveBlankLines - tar bort tomma rader och skiftar uppåt i ett intervall som du väljer efter att ha kört makrot.

    DeleteAllEmptyRows - raderar alla tomma rader på det aktiva arket.

    DeleteRowIfCellBlank - raderar en rad om en cell i en viss kolumn är tom.

    Gör följande för att köra makrot i Excel:

    1. Öppna den nedladdade arbetsboken och aktivera makrona om du blir tillfrågad.
    2. Öppna din egen arbetsbok och navigera till det arbetsblad som du är intresserad av.
    3. I kalkylbladet trycker du på Alt + F8, markerar makrot och klickar på Kör .

    Formel för att ta bort tomma rader i Excel

    Om du vill se vad du tar bort kan du använda följande formel för att identifiera tomma rader:

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

    Där A2 är den första och D2 är den sista använda cellen i den första dataraden.

    Skriv in formeln i E2 eller någon annan tom kolumn i rad 2 och dra i fyllningshandtaget för att kopiera formeln nedåt.

    Resultatet blir "Blank" i tomma rader och "Not blank" i de rader som innehåller minst en cell med data:

    Formelns logik är uppenbar: du räknar icke-tomma celler med COUNTA-funktionen och använder IF-angivelsen för att returnera "Blank" för noll och "Not Blank" i annat fall.

    Du kan faktiskt klara dig bra utan IF:

    =COUNTA(A2:D2)=0

    I det här fallet ger formeln TRUE för tomma rader och FALSE för icke-tomma rader.

    Med formeln på plats utför du följande steg för att ta bort tomma rader:

    1. Markera en cell i rubrikraden och klicka på Sortera & Filtrera > Filter på den Hem på fliken Format Detta kommer att lägga till rullgardins-pilar för filtrering i alla rubrikceller.
    2. Klicka på pilen i rubriken för formelkolumnen, avmarkera (Välj alla), välj Blank och klicka på OK :
    3. Markera alla filtrerade rader: Klicka på den första cellen i den första filtrerade raden och tryck på Ctrl + Shift + End för att utvidga markeringen till den sista cellen i den sista filtrerade raden.
    4. Högerklicka på urvalet, välj Radera rad från kontextmenyn och bekräfta sedan att du verkligen vill ta bort hela rader:
    5. Ta bort filtret genom att trycka på Ctrl + Shift + L . Eller klicka på Hem flik> Sortera & Filtrera > Filter .
    6. Ta bort kolumnen med formeln eftersom du inte längre behöver den.

    Så är det! Resultatet är en ren tabell utan tomma rader, men med all information bevarad:

    Tips: Istället för att radera tomma rader kan du kopiera icke-tomma rader till en annan plats. Filtrera rader som inte är tomma, markera dem och tryck Ctrl + C för att kopiera. Byt sedan till ett annat ark, markera den övre vänstra cellen i målområdet och tryck Ctrl + V för att klistra in.

    Hur du tar bort tomma rader i Excel med Power Query

    I Excel 2016 och Excel 2019 finns det ytterligare ett sätt att ta bort tomma rader - genom att använda Power Query-funktionen. I Excel 2010 och Excel 2013 kan den laddas ner som ett tillägg.

    Viktigt att notera! Den här metoden fungerar med följande förbehåll: Power Query omvandlar källdata till en Excel-tabell och ändrar formateringen, t.ex. fyllningsfärg, ramar och vissa sifferformat. Om formateringen av dina originaldata är viktig för dig är det bättre att välja ett annat sätt att ta bort tomma rader i Excel.

    1. Välj det intervall där du vill ta bort tomma rader.
    2. Gå till Uppgifter flik> Få & Förvandla grupp och klicka på Från tabell/intervall Detta laddar tabellen till Power Query Editor.
    3. På den Hem på fliken Power Query Editor, klicka på Ta bort rader > Ta bort tomma rader .
    4. Klicka på Stäng & Ladda Detta laddar in den resulterande tabellen till ett nytt arbetsblad och stänger Query Editor.

    Resultatet av dessa manipuleringar är följande tabell utan tomma rader, men med ett par obehagliga förändringar - valutaformatet har försvunnit och datumen visas i standardformatet i stället för det anpassade formatet:

    Hur raderar du rader om cellen i en viss kolumn är tom?

    I början av den här handledningen varnade vi dig för att ta bort tomma rader genom att välja blankrader. Den här metoden är dock praktisk om du vill ta bort rader baserat på blanksteg i en viss kolumn .

    Låt oss till exempel ta bort alla rader där en cell i kolumn A är tom:

    1. Välj nyckelkolumnen, i vårt fall kolumn A.
    2. På den Hem klickar du på Hitta & Välj > Gå till Special Eller tryck på F5 och klicka på Särskilt... knapp.
    3. I Gå till Special dialogrutan, väljer du Blanks och klicka på OK Detta kommer att välja tomma celler i det använda intervallet i kolumn A.
    4. Högerklicka på en vald cell och välj Radera... från kontextmenyn.
    5. I Ta bort dialogrutan, väljer du Hela raden och klicka på OK.

    Färdiga! De rader som inte har något värde i kolumn A finns inte längre kvar:

    Samma resultat kan uppnås genom att filtrera blanksteg i nyckelkolumnen.

    Hur man tar bort extra rader under data

    Ibland kan rader som ser helt tomma ut i själva verket innehålla format eller tecken som inte kan skrivas ut. Om du vill kontrollera om den sista cellen med data verkligen är den senast använda cellen i kalkylbladet trycker du på Ctrl + End . Om du på så sätt kommer till en visuellt tom rad under dina data är den raden inte tom i Excel. För att ta bort sådana rader gör du så här:

    1. Klicka på rubriken på den första tomma raden under dina data för att markera den.
    2. Tryck på Ctrl + Shift + End för att markera alla rader som innehåller något, inklusive format, mellanslag och tecken som inte skrivs ut.
    3. Högerklicka på urvalet och välj Radera... > Hela raden.

    Om du har en relativt liten datamängd kanske du vill bli av med alla tomma rader under dina data, t.ex. för att göra det lättare att bläddra. Även om det inte finns något sätt att ta bort oanvända rader i Excel finns det inget som hindrar dig från att gömmer sig Så här gör du:

    1. Välj raden under den sista raden med data genom att klicka på dess rubrik.
    2. Tryck på Ctrl + Shift + nedåtpilen för att utvidga urvalet till den sista raden på arket.
    3. Tryck på Ctrl + 9 för att dölja de markerade raderna. Eller högerklicka på markeringen och klicka sedan på Dölj .

    Till dölja raderna Tryck på Ctrl + A för att markera hela arket och tryck sedan på Ctrl + Shift + 9 för att göra alla linjer synliga igen.

    På samma sätt kan du dölja oanvända tomma kolumner till höger om dina data. Detaljerade steg finns i Dölj oanvända rader i Excel så att endast arbetsområdet är synligt.

    Snabbaste sättet att ta bort tomma rader i Excel

    När du läste de tidigare exemplen, kändes det inte som om vi använde en slägga för att knäcka en nöt? Här på Ablebits föredrar vi att inte göra saker och ting mer komplicerade än de behöver vara. Så vi tog ett steg längre och skapade en tvåklickväg för att ta bort tomma rader i Excel.

    När Ultimate Suite har lagts till i ditt band kan du göra så här ta bort alla tomma rader i ett arbetsblad:

    1. På den Verktyg för Ablebits på fliken Förvandla grupp, klicka på Radera ämnen > Tomma rader :
    2. Tilläggsprogrammet informerar dig om att alla tomma rader kommer att tas bort från det aktiva kalkylbladet och ber dig bekräfta. Klicka på OK och om en stund kommer alla tomma rader att tas bort.

    Som framgår av skärmbilden nedan har vi endast tagit bort helt tomma rader som inte har en enda cell med data:

    Om du vill veta mer om de fantastiska funktionerna i vår Ultimate Suite for Excel är du välkommen att ladda ner en testversion.

    Jag tackar dig för att du läste och hoppas att vi ses på vår blogg nästa vecka!

    Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.