Jak odstranit prázdné řádky v aplikaci Excel pomocí VBA, vzorců a Power Query

  • Sdílet Toto
Michael Brown

Tento návod vás naučí několik jednoduchých triků, jak bezpečně odstranit více prázdných řádků v aplikaci Excel, aniž byste přišli o jedinou informaci. .

Prázdné řádky v Excelu jsou problémem, se kterým se jednou za čas setkáme všichni, zejména při kombinování dat z různých zdrojů nebo při importu informací odjinud. Prázdné řádky mohou způsobit v pracovních listech spoušť na různých úrovních a jejich ruční odstraňování může být časově náročný a k chybám náchylný proces. V tomto článku se dozvíte několik jednoduchých a spolehlivých metod, jak odstranit prázdné řádky v tabulkách.pracovní listy.

    Jak NEodstraňovat prázdné řádky v aplikaci Excel

    Existuje několik různých způsobů, jak odstranit prázdné řádky v aplikaci Excel, ale překvapivě mnoho online zdrojů se drží toho nejnebezpečnějšího, a to Najít & Vybrat > Přejít na Speciální > Slepé položky .

    Co je na této technice špatně? Vybírá všechny polotovary v rozsahu, a proto nakonec odstraníte všechny řádky, které obsahují byť jen jedinou prázdnou buňku.

    Na následujícím obrázku je vlevo původní tabulka a vpravo výsledná tabulka. A ve výsledné tabulce zmizely všechny neúplné řádky, dokonce i řádek 10, kde chybělo pouze datum ve sloupci D:

    Závěr: Pokud nechcete zaneřádit svá data, nikdy neodstraňujte prázdné řádky výběrem prázdných buněk. Místo toho použijte jeden z promyšlenějších přístupů popsaných níže.

    Jak odstranit prázdné řádky v aplikaci Excel pomocí VBA

    Excel VBA dokáže opravit spoustu věcí, včetně vícenásobných prázdných řádků. Nejlepší na tomto přístupu je, že nevyžaduje žádné programátorské dovednosti. Jednoduše si vezměte jeden z níže uvedených kódů a spusťte ho ve svém Excelu (návod najdete zde).

    Makro 1. Odstranění prázdných řádků ve vybraném rozsahu

    Tento kód VBA tiše odstraní všechny prázdné řádky ve vybraném rozsahu, aniž by uživateli zobrazil jakoukoli zprávu nebo dialogové okno.

    Na rozdíl od předchozí techniky makro smaže řádek, pokud je v něm napsáno celý řádek je prázdný . Při zjišťování počtu neprázdných buněk v každém řádku se spoléhá na funkci listu CountA a poté odstraní řádky s nulovým počtem.

    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

    Poskytnout uživateli možnost vybrat cílový rozsah po spuštění makra , použijte tento kód:

    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

    Po spuštění makra se zobrazí následující vstupní pole, vyberete cílový rozsah a kliknete na tlačítko OK:

    Za okamžik budou všechny prázdné řádky ve zvoleném rozsahu odstraněny a zbývající se posunou nahoru:

    Makro 2. Odstranění všech prázdných řádků v aplikaci Excel

    Odstranění všechny prázdné řádky na aktivní list , určete poslední řádek použitého rozsahu (tj. řádek obsahující poslední buňku s daty) a poté postupujte směrem nahoru a odstraňte řádky, pro které CountA vrátí nulu:

    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. Odstranění řádku, pokud je buňka prázdná

    Pomocí tohoto makra můžete odstranit celý řádek, pokud je buňka v zadaném sloupci prázdná.

    Následující kód kontroluje sloupec A na prázdná místa. Chcete-li odstranit řádky na základě jiného sloupce, nahraďte "A" příslušným písmenem.

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

    Ve skutečnosti makro používá příkaz Přejít na Speciální > Slepé položky a stejného výsledku můžete dosáhnout i ručním provedením těchto kroků.

    Poznámka: Makro odstraní prázdné řádky v tabulce. celý list , proto buďte při jeho používání velmi opatrní. Před spuštěním tohoto makra by bylo vhodné provést zálohu pracovního listu.

    Jak odstranit prázdné řádky v aplikaci Excel pomocí VBA

    Chcete-li v aplikaci Excel odstranit prázdné řádky pomocí makra, můžete buď vložit kód VBA do vlastního sešitu, nebo spustit makro z našeho ukázkového sešitu.

    Přidání makra do sešitu

    Chcete-li do sešitu vložit makro, proveďte následující kroky:

    1. Otevřete pracovní list, ve kterém chcete odstranit prázdné řádky.
    2. Stisknutím kláves Alt + F11 otevřete editor jazyka Visual Basic.
    3. V levém podokně klikněte pravým tlačítkem myši na ThisWorkbook a poté klikněte na tlačítko Vložte > Modul .
    4. Vložte kód do okna Kód.
    5. Stisknutím klávesy F5 makro spustíte.

    Podrobné pokyny krok za krokem naleznete v části Jak vložit a používat VBA v aplikaci Excel.

    Spuštění makra z našeho ukázkového sešitu

    Stáhněte si náš ukázkový sešit s makry pro odstranění prázdných řádků a spusťte z něj jedno z následujících maker:

    DeleteBlankRows - odstraní prázdné řádky v aktuálně vybraném rozsahu.

    RemoveBlankLines - odstraní prázdné řádky a posune je nahoru v rozsahu, který vyberete po spuštění makra.

    DeleteAllEmptyRows - odstraní všechny prázdné řádky na aktivním listu.

    DeleteRowIfCellBlank - odstraní řádek, pokud je buňka v určitém sloupci prázdná.

    Chcete-li spustit makro v aplikaci Excel, postupujte takto:

    1. Otevřete stažený sešit a na výzvu povolte makra.
    2. Otevřete vlastní sešit a přejděte na list, který vás zajímá.
    3. V pracovním listu stiskněte klávesy Alt + F8, vyberte makro a klikněte na tlačítko Spustit .

    Vzorec pro odstranění prázdných řádků v aplikaci Excel

    Pokud chcete vidět, co odstraňujete, použijte k identifikaci prázdných řádků následující vzorec:

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

    Kde A2 je první a D2 je poslední použitá buňka prvního datového řádku.

    Zadejte tento vzorec do sloupce E2 nebo do jakéhokoli jiného prázdného sloupce v řádku 2 a přetažením úchytu výplně vzorec zkopírujte dolů.

    Výsledkem bude, že v prázdných řádcích bude "Prázdné" a v řádcích, které obsahují alespoň jednu buňku s daty, "Není prázdné":

    Logika vzorce je zřejmá: neprázdné buňky spočítáte pomocí funkce COUNTA a příkazem IF vrátíte hodnotu "Prázdný" pro nulový počet, v opačném případě hodnotu "Není prázdný".

    Ve skutečnosti se bez IF obejdete:

    =COUNTA(A2:D2)=0

    V tomto případě vzorec vrátí TRUE pro prázdné řádky a FALSE pro neprázdné řádky.

    Po vložení vzorce proveďte následující kroky k odstranění prázdných řádků:

    1. Vyberte libovolnou buňku v řádku záhlaví a klikněte na tlačítko Třídit a filtrovat > Filtr na Home na kartě Formáty Tím se do všech buněk záhlaví přidají rozbalovací šipky pro filtrování.
    2. Klikněte na šipku v záhlaví sloupce vzorce, zrušte zaškrtnutí políčka (Vybrat vše), vyberte možnost Prázdné stránky a klikněte na OK :
    3. Vyberte všechny filtrované řádky. Za tímto účelem klikněte na první buňku prvního filtrovaného řádku a stiskněte klávesy Ctrl + Shift + End, abyste rozšířili výběr na poslední buňku posledního filtrovaného řádku.
    4. Klikněte na výběr pravým tlačítkem myši, vyberte Odstranit řádek z kontextové nabídky a poté potvrďte, že chcete skutečně odstranit celé řádky:
    5. Filtr odstraníte stisknutím klávesové zkratky Ctrl + Shift + L . Nebo klikněte na tlačítko Home karta> Třídit a filtrovat > Filtr .
    6. Sloupec se vzorcem odstraňte, protože jej již nepotřebujete.

    To je vše! Výsledkem je čistá tabulka bez prázdných řádků, ale se zachováním všech informací:

    Tip. Místo mazání prázdných řádků můžete kopírování neprázdných řádků někam jinam. Chcete-li to mít hotové, vyfiltrujte řádky "Není prázdný", vyberte je a stiskněte klávesy Ctrl + C pro kopírování. Poté se přepněte na jiný list, vyberte levou horní buňku cílového rozsahu a stiskněte klávesy Ctrl + V pro vložení.

    Jak odstranit prázdné řádky v aplikaci Excel pomocí nástroje Power Query

    V aplikacích Excel 2016 a Excel 2019 existuje ještě jeden způsob, jak odstranit prázdné řádky - pomocí funkce Power Query. V aplikacích Excel 2010 a Excel 2013 ji lze stáhnout jako doplněk.

    Důležitá poznámka! Tato metoda funguje s následujícím upozorněním: Power Query převede zdrojová data do tabulky aplikace Excel a změní formátování, například barvu výplně, okraje a některé formáty čísel. Pokud je pro vás formátování původních dat důležité, pak raději zvolte jiný způsob odstranění prázdných řádků v aplikaci Excel.

    1. Vyberte rozsah, ve kterém chcete odstranit prázdné řádky.
    2. Přejděte na Data karta> Získat & amp; Transformovat a klikněte na tlačítko Z tabulky/rozsahu . Tím se tabulka načte do Editoru dotazů Power Query.
    3. Na Home na kartě Power Query Editor klikněte na tlačítko Odstranění řádků > Odstranění prázdných řádků .
    4. Klikněte na Zavřít & Načíst Tím se výsledná tabulka načte do nového pracovního listu a zavře se Editor dotazů.

    Výsledkem těchto manipulací je následující tabulka bez prázdných řádků, ale s několika nepříjemnými změnami - ztratil se formát měny a data se zobrazují ve výchozím formátu namísto vlastního:

    Jak odstranit řádky, pokud je buňka v určitém sloupci prázdná

    Na začátku tohoto návodu jsme vás varovali před odstraňováním prázdných řádků výběrem prázdných míst. Tato metoda se však hodí, pokud chcete odstranit řádky na základě prázdná místa v určitém sloupci .

    Jako příklad odstraňme všechny řádky, kde je buňka ve sloupci A prázdná:

    1. Vyberte klíčový sloupec, v našem případě sloupec A.
    2. Na Home klikněte na kartu Najít & Vybrat > Přejít na Speciální . Nebo stiskněte klávesu F5 a klikněte na Speciální... tlačítko.
    3. V Přejít na Speciální dialogové okno, vyberte možnost Slepé položky a klikněte na OK . Tím se vyberou prázdné buňky v použitém rozsahu ve sloupci A.
    4. Klikněte pravým tlačítkem myši na libovolnou vybranou buňku a vyberte možnost Smazat... z kontextové nabídky.
    5. V Odstranit dialogového okna vyberte možnost Celá řada a klikněte na tlačítko OK.

    Hotovo! Řádky, které nemají hodnotu ve sloupci A, již nejsou:

    Stejného výsledku lze dosáhnout filtrováním prázdných míst ve sloupci klíče.

    Jak odstranit další řádky pod daty

    Někdy mohou řádky, které vypadají zcela prázdné, ve skutečnosti obsahovat některé formáty nebo netisknutelné znaky. Chcete-li zkontrolovat, zda je poslední buňka s daty skutečně poslední použitou buňkou v pracovním listu, stiskněte klávesy Ctrl + End . Pokud jste se tím dostali na vizuálně prázdný řádek pod daty, z hlediska aplikace Excel tento řádek není prázdný. Chcete-li takové řádky odstranit, postupujte následovně:

    1. Kliknutím na záhlaví prvního prázdného řádku pod daty jej vyberte.
    2. Stiskněte klávesovou zkratku Ctrl + Shift + End . Tím vyberete všechny řádky, které obsahují cokoli včetně formátů, mezer a netisknutelných znaků.
    3. Klikněte na výběr pravým tlačítkem myši a vyberte možnost Smazat... > Celá řada.

    Pokud máte relativně malý soubor dat, můžete se chtít zbavit všech prázdných řádků pod daty, např. kvůli snazšímu posouvání. Ačkoli v aplikaci Excel není možné odstranit nepoužívané řádky, nic vám nebrání v tom, abyste skrývání Jak na to:

    1. Kliknutím na záhlaví vyberte řádek pod posledním řádkem s daty.
    2. Stisknutím klávesové zkratky Ctrl + Shift + šipka dolů rozšíříte výběr na poslední řádek listu.
    3. Stisknutím klávesové zkratky Ctrl + 9 vybrané řádky skryjete. Nebo klikněte na výběr pravým tlačítkem myši a poté klikněte na možnost Skrýt .

    Na odkrýt řádky , stiskněte kombinaci kláves Ctrl + A, abyste vybrali celý list, a poté stiskněte kombinaci kláves Ctrl + Shift + 9, aby se všechny řádky opět zviditelnily.

    Podobným způsobem můžete skrýt nepoužívané prázdné sloupce vpravo od dat. Podrobný postup naleznete v části Skrytí nepoužívaných řádků v aplikaci Excel tak, aby byla viditelná pouze pracovní oblast.

    Nejrychlejší způsob odstranění prázdných řádků v aplikaci Excel

    Neměli jste při čtení předchozích příkladů pocit, že používáme kladivo k rozlousknutí ořechu? V Ablebits raději neděláme věci složitější, než je nutné. Udělali jsme tedy další krok a vytvořili cestu k odstranění prázdných řádků v Excelu pomocí dvou kliknutí.

    Po přidání sady Ultimate Suite na stuhu se dozvíte, jak můžete odstranit všechny prázdné řádky v pracovním listu:

    1. Na Nástroje Ablebits na kartě Transformovat klikněte na tlačítko Odstranění prázdných políček > Prázdné řádky :
    2. Doplněk vás bude informovat, že z aktivního listu budou odstraněny všechny prázdné řádky, a požádá vás o potvrzení. Klikněte na tlačítko OK a za okamžik budou všechny prázdné řádky odstraněny.

    Jak ukazuje obrázek níže, odstranili jsme pouze absolutně prázdné řádky které nemají ani jednu buňku s údaji:

    Chcete-li se dozvědět více o úžasných funkcích sady Ultimate Suite pro Excel, můžete si stáhnout zkušební verzi.

    Děkuji vám za přečtení a doufám, že se příští týden uvidíme na našem blogu!

    Michael Brown je oddaný technologický nadšenec s vášní pro zjednodušování složitých procesů pomocí softwarových nástrojů. S více než desetiletými zkušenostmi v technologickém průmyslu zdokonalil své dovednosti v aplikacích Microsoft Excel a Outlook a také v Tabulkách a Dokumentech Google. Michaelův blog je věnován sdílení jeho znalostí a odborných znalostí s ostatními a poskytuje snadno pochopitelné tipy a návody pro zlepšení produktivity a efektivity. Ať už jste zkušený profesionál nebo začátečník, Michaelův blog nabízí cenné postřehy a praktické rady, jak tyto základní softwarové nástroje co nejlépe využít.