Přejít k hlavnímu obsahu

Jak odstranit řádky na základě hodnoty buňky v aplikaci Excel?

Chcete-li rychle odstranit nebo odebrat více řádků na základě hodnoty buňky v aplikaci Excel, možná budete muset nejprve vybrat ty celé řádky obsahující konkrétní hodnotu buňky a poté je odebrat. Zdá se, že neexistuje rychlý způsob, jak odstranit řádky na základě hodnoty buňky, ale pomocí kódu VBA. Zde je několik rychlých triků, které vám pomohou.


Odeberte řádky na základě hodnoty buňky pomocí funkce Najít a nahradit

V aplikaci Excel můžete použít výkonnou funkci Najít a nahradit a snadno odstranit řádky založené na určité hodnotě buňky. Postupujte prosím následovně:

1. Vyberte rozsah, ve kterém odeberete řádky na základě určité hodnoty buňky, a otevřete dialogové okno Najít a nahradit stisknutím klávesy Ctrl + F současně.

2. V dialogovém okně Najít a nahradit zadejte určitou hodnotu buňky (v našem případě zadáme Soe) do Find what a klepněte na tlačítko Find All knoflík. Viz první snímek obrazovky níže:

3. Vyberte všechny výsledky hledání v dolní části dialogového okna Najít a nahradit a zavřete toto dialogové okno. (Poznámka: Můžete vybrat jeden z výsledků vyhledávání a poté Ctrl + A klávesy pro výběr všech nalezených výsledků. Viz druhý snímek obrazovky výše.)
A pak můžete vidět, že jsou vybrány všechny buňky obsahující určitou hodnotu.

4. Pokračujte klepnutím pravým tlačítkem na vybrané buňky a vyberte Delete z nabídky pravého tlačítka myši. A pak zkontrolujte Entire row v rozbalovacím dialogovém okně Odstranit a klepněte na OK knoflík. Nyní uvidíte, že jsou odstraněny všechny buňky obsahující určitou hodnotu. Viz screenshoty níže:

A poté byly na základě určité hodnoty odstraněny celé řádky.


Odeberte řádky na základě hodnoty buňky pomocí kódu VBA

S následujícím kódem VBA můžete rychle odstranit řádky s určitou hodnotou buňky, proveďte následující kroky:

1. zmáčkni Alt + F11 současně otevřete Microsoft Visual Basic for applications okno,

2, klikněte Insert > Modulea do modulu zadejte následující kód:

VBA: Odeberte celé řádky na základě hodnoty buňky

Sub DeleteRows()
'Updateby20211217
Dim rng As Range
Dim InputRng As Range
Dim DeleteRng As Range
Dim DeleteStr As String
Dim xTitleId As String
Dim xArr
Dim xF As Integer
Dim xWSh As Worksheet
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set rng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, rng.Address, Type:=8)
If InputRng Is Nothing Then Exit Sub
DeleteStr = Application.InputBox("Delete Text", xTitleId, Type:=2)
Set xWSh = InputRng.Worksheet
For Each rng In InputRng
    If rng.Value = DeleteStr Then
        If DeleteRng Is Nothing Then
            Set DeleteRng = rng
        Else
            Set DeleteRng = Application.Union(DeleteRng, rng)
            Set DeleteRng = DeleteRng.EntireRow
        End If
    End If
Next
xArr = Split(DeleteRng.AddressLocal, ",")
DeleteRng.Select
DeleteRng.Delete
For xF = UBound(xArr) To 0 Step -1
    Set DeleteRng = xWSh.Range(xArr(xF))
    DeleteRng.Delete
Next
End Sub

3. Poté klikněte na tlačítko Run tlačítko pro spuštění kódu.

4. V rozbalovacím dialogovém okně vyberte rozsah, ve kterém odeberete řádky na základě určité hodnoty, a klikněte na OK .

5. V jiném dialogovém okně zadejte určitou hodnotu, podle které odeberete řádky, a kliknete na OK knoflík. Viz screenshot:

A pak uvidíte, že celé řádky již byly odstraněny na základě zadané hodnoty.


Odstraňte řádky na základě hodnot jedné nebo dvou buněk pomocí Kutools for Excel

Pokud jste nainstalovali Kutools for Excel, to je Select Specific Cells funkce vám pomůže rychle odstranit řádky se specifickou hodnotou. Postupujte prosím následovně:

Kutools for Excel - Supercharge Excel s více než 300 základními nástroji. Užijte si plnohodnotný 30-denní zkušební verze ZDARMA bez nutnosti kreditní karty! Get It Now

1. Vyberte rozsah, který odeberete na základě určité hodnoty, a klikněte Kutools > Select > Select Specific Cells. Viz snímek obrazovky:

2. V úvodním dialogovém okně Vybrat určené buňky zkontrolujte Entire row vyberte možnost Contains od Specific type rozevírací seznam, zadejte zadanou hodnotu do pravého pole a klepněte na Ok tlačítko (viz výše uvedený snímek obrazovky).
Po použití této funkce se zobrazí dialogové okno, které vám ukáže, kolik buněk bylo nalezeno na základě zadaných kritérií. Klikněte prosím na OK pro jeho zavření.

3. Nyní jsou vybrány celé řádky s určitou hodnotou. Klikněte prosím pravým tlačítkem na vybrané řádky a klikněte na Delete z nabídky pravého tlačítka myši. Viz snímek obrazovky níže:

Poznámka: Tento Select Specific Cells funkce podporuje mazání řádků o jednu nebo dvě určité hodnoty. Chcete-li odstranit řádky založené na dvou zadaných hodnotách, uveďte prosím jinou hodnotu v Specific type v části Vybrat konkrétní buňky dialogové okno, jak ukazuje následující snímek obrazovky:

Kutools for Excel - Supercharge Excel s více než 300 základními nástroji. Užijte si plnohodnotný 30-denní zkušební verze ZDARMA bez nutnosti kreditní karty! Get It Now


Odstraňte řádky na základě více hodnot buněk pomocí Kutools for Excel

V některých případech možná budete muset odstranit řádky založené na více hodnotách buněk z jiného sloupce / seznamu v aplikaci Excel. Zde představím Kutools for Excel's Select Same & Different Cells funkce, která to snadno a rychle vyřeší.

Kutools for Excel - Supercharge Excel s více než 300 základními nástroji. Užijte si plnohodnotný 30-denní zkušební verze ZDARMA bez nutnosti kreditní karty! Get It Now

1, klikněte Kutools > Select > Select Same & Different Cells otevřete dialogové okno Vybrat stejné a různé buňky.

2. V otvoru Select Same & Different Cells dialogové okno, postupujte následovně (viz screenshot):

(1) V Find values in do pole vyberte sloupec, kde najdete určité hodnoty;
(2) V According to pole, vyberte prosím sloupec / seznam s více hodnotami, podle kterých odstraníte řádky;
(3) V Based on sekce, prosím zkontrolujte Each row volba;
(4) V Find sekce, prosím zkontrolujte Same Values volba;
(5) Zkontrolujte Select entire rows ve spodní části úvodního dialogového okna.
Poznámka: Pokud dva zadané sloupce obsahují stejné záhlaví, zkontrolujte My data has headers volba.

3, Klepněte na tlačítko Ok tlačítko pro použití tohoto nástroje. A pak vyjde dialogové okno a ukazuje, kolik řádků bylo vybráno. Stačí kliknout na OK pro jeho zavření.

A poté byly vybrány všechny řádky obsahující hodnoty mezi zadaným seznamem.

4, klikněte Home > Delete > Delete Sheet Rows odstranit všechny vybrané řádky.


Ukázka: Odeberte řádky na základě jedné nebo více hodnot buněk v aplikaci Excel


Kutools for Excel: Více než 300 užitečných nástrojů na dosah ruky! Začněte svůj 30-denní bezplatná zkušební verze bez omezení funkcí ještě dnes. Stáhnout nyní!

Nejlepší nástroje pro produktivitu v kanceláři

Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50 + Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své excelentní dovednosti pomocí Kutools for Excela zažijte efektivitu jako nikdy předtím. Kutools for Excel Nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

karta kte 201905


Office Tab Přináší rozhraní s kartami do Office a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
Comments (39)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
In given range, if any cell contains defined text the entire row gets deleted.

Pls share code
This comment was minimized by the moderator on the site
Hi Yogesh,
On this webpage, the second method is to delete rows by cell values with VBA code. You can go to there and copy the code directly!
https://www.extendoffice.com/documents/excel/815-excel-remove-rows-based-on-cell-value.html#vba
This comment was minimized by the moderator on the site
There are two issues with the code posted as of this date. 1) the variable xTitleId is not declared, which causes a compilation error if Option Explicit is in use. 2) With Excel 2016, it appears that a range is limited to 129 areas. Each discontiguous matching cell found in the loop creates another area in the DeleteRng variable. Unfortunately, the Union method does not raise an error if that number of areas is exceeded; it just ignores the remaining cells. When the loop is finished, DeleteRng will have no more than 129 areas.
This comment was minimized by the moderator on the site
Hi TomTheToolman,
Thank you so much for your feedback. I've already updated the new code in the article. If you have any other questions, please don't hesitate to let me know.
Amanda
This comment was minimized by the moderator on the site
very well. Thank you!
This comment was minimized by the moderator on the site
Can someone help me...If 3rd column has value 0, then delete all values of corresponding column 1st. In this case answer should be the last line only.... Check MenuName ID 3149 VNLA MILFLLE 2 3149 TURKEY PNN 0 3149 R. BEEF PNN 0 3149 MIX MOCHA 38 3150 M.G.R 1/2 0 3150 THE PEPPE L 0 3150 MIX SLD 0 3150 EGGPLANT 0 3150 STILL WATER 7 3151 MIX MOCHA 38
This comment was minimized by the moderator on the site
Thanks for sharing. I am actually looking for a code that doesn't ask user for range but instead selects a specific column say column "A" and runs till the last row of that column. Can you please help..
This comment was minimized by the moderator on the site
Hi everybody, I am wondering what can we do to delete the following (According to the example shown in this page): Soe appears at several date (sept, October... etc). What I would like is to delete the line where Soe is but to keep the line with last date she appeared. In addition, some lines could be in double but I still want to keep it. So for example, you have the lines: - July 3 /Soe - Sep 4 / Soe - Sep 4 / Soe - Oct 19/ Soe - Nov 13 / Soe - Nov 13 / Soe and what I want to keep is: - Nov 13 / Soe - Nov 13 / Soe My real case is: I have different EAN code and version 1, 2, 3 or 4 and I want to keep the line where the version is the higher. e.g.: I have: - EAN 1 / Version 1 - EAN 1 / Version 1 - EAN 1 / Version 2 - EAN 1 / Version 2 - EAN 2 / Version 2 - EAN 2 / Version 3 - EAN 2 / Version 3 and I want to keep: - EAN 1 / Version 2 - EAN 1 / Version 2 - EAN 2 / Version 3 - EAN 2 / Version 3 I am searching since hours and I am completely blocked on this issue. Many thanks in advance for your brain and help. Best, Marion
This comment was minimized by the moderator on the site
Hi, Thank you this was really helpful. However, there's an error that pops up when I run the codes it says "Object variable or with block variable not set" and it points to " the line DeleteRNG.EntireRow.Delete". Could you please help me with debugging this. Thanks.
This comment was minimized by the moderator on the site
I am trying to use this macro in order to delete unused formulas, because excel views blank formula cells as a zero value and will print extra pages. I was hoping when I deleted the unused formulas, when I printed it would only print the pages that had information. This is not the case and I really need help to find a solution. I have tried using this formula and it is not working and prints three extra pages that I do not need even with the extra formulas being deleted. Sub selectonly() ' ' selectonly Macro ' Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)" End Sub
This comment was minimized by the moderator on the site
thank you so much. That save me a lot of time
This comment was minimized by the moderator on the site
Trying to find a delete Function that will delete entire designated rows automatically, based on certain values or certain text contained in other cell(s), using only automated formulas.
This comment was minimized by the moderator on the site
How can i delete selected cell that i want based on value that i entered for example : A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 A4 B4 C4 D4 When i entered in some cell for example "2" then 2 row will be deleted from A3:D4. If i entered "1" then 1 row will be deleted from A4:D4. if i entered "3" then 3 row will be deleted from A2:D4
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations