Su pensión en Colpensiones. Calcule la que tendría hoy o planee la que quiere tener. Conózcalo aquí

Cómo eliminar filas en Excel que cumplan una condición

Cuando una base de datos tiene muchas filas que deben eliminarse, por ejemplo todas las de un proveedor o las que contienen una palabra, hacerlo una por una toma demasiado tiempo. Excel permite seleccionarlas todas de una vez con «Buscar» o con un filtro y eliminarlas en un solo paso, y una macro puede hacerlo automáticamente. ¿Cuál método usar y cómo se aplica?

Antes de cualquiera de ellos conviene guardar una copia del archivo, porque una eliminación masiva es difícil de revisar después.

Con «Buscar todo».

Es el método más rápido cuando la condición es que la fila contenga un texto o un valor determinado, como «ACM»:

  1. Seleccionar la columna donde se buscará el dato, o toda la tabla.
  2. Abrir «Buscar» con Ctrl + B, escribir el texto y hacer clic en «Buscar todos».
  3. En la lista de resultados, presionar Ctrl + E para seleccionarlos todos y cerrar la ventana. Las celdas encontradas quedan seleccionadas en la hoja.
  4. Ir a «Inicio», «Eliminar», «Eliminar filas de hoja».

En «Opciones» se puede marcar «Coincidir con el contenido de toda la celda» para que solo se encuentren las celdas que dicen exactamente «ACM», y no las que lo contienen como parte de otro texto. El atajo para seleccionar todos los resultados es Ctrl + E en Excel en español, y Ctrl + A en inglés.

Con un filtro.

El filtro permite condiciones más complejas, como valores menores que un número, fechas de un periodo o varios textos a la vez, y deja ver las filas antes de eliminarlas:

  1. Seleccionar la tabla y activar el filtro con «Datos», «Filtro» (Ctrl + Mayús + L).
  2. En la flecha de la columna, elegir los valores o un «Filtro de texto», «Filtro de número» o «Filtro de fecha» con la condición.
  3. Seleccionar las filas visibles, sin el encabezado, desde los números de fila.
  4. Hacer clic derecho y elegir «Eliminar fila». Excel elimina solo las filas visibles.
  5. Quitar el filtro para ver las filas que quedaron.

Si la condición es la contraria, conservar ciertas filas y eliminar las demás, se filtra por los valores que no se quieren conservar. Otra opción es ordenar la tabla por la columna de la condición, para que las filas a eliminar queden juntas y se seleccionen como un solo bloque.

Contar antes de eliminar.

Para saber cuántas filas se van a eliminar, se cuentan con CONTAR.SI. Con los productos en C5:C16:

=CONTAR.SI(C5:C16;"ave")
=CONTAR.SI(C5:C16;"*ave*")

La primera cuenta las celdas que dicen exactamente «ave», sin distinguir mayúsculas; la segunda, las que contienen «ave» en cualquier parte, lo que incluye «Avena» y «Ave de corral». La diferencia muestra por qué hay que revisar bien la condición antes de eliminar.

Con una macro.

Cuando la eliminación se repite con frecuencia, una macro la hace con un clic. Esta elimina las filas cuya celda de la columna C sea igual a alguno de los criterios de la lista, sin distinguir mayúsculas:

Sub EliminarFilasIguales()

Dim ws As Worksheet, i As Long, u As Long, c As Variant

Dim criterios As Variant

criterios = Array("ave", "arroz")

Set ws = ThisWorkbook.Worksheets("Datos")

u = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row

Application.ScreenUpdating = False

For i = u To 5 Step -1

For Each c In criterios

If LCase(Trim(ws.Cells(i, "C").Text)) = LCase(c) Then

ws.Rows(i).Delete

Exit For

End If

Next c

Next i

Application.ScreenUpdating = True

End Sub

Los datos que se adaptan son el nombre de la hoja, la columna, la primera fila de datos (5 en el ejemplo, porque el encabezado está en la 4) y los criterios, que pueden ser uno o varios. El recorrido se hace de abajo hacia arriba porque, al eliminar una fila, las de abajo suben; si se recorriera hacia abajo, la fila siguiente quedaría sin revisar.

Variantes de la macro.

Con pequeños cambios en la condición del If, la macro resuelve otros casos:

  • Filas que contienen el texto: If InStr(1, ws.Cells(i, "C").Text, texto, vbTextCompare) > 0 Then.
  • Conservar un valor y eliminar los demás: If LCase(ws.Cells(i, "C").Text) <> LCase(valor) Then.
  • Valores menores que un número: If ws.Cells(i, "E").Value < 100000 Then.
  • Filas vacías: If Application.WorksheetFunction.CountA(ws.Rows(i)) = 0 Then.

El módulo descargable incluye las cinco macros completas. Una vez importado, se puede asignar cada macro a un botón, como se explica en el artículo sobre cómo crear un botón en Excel. Las filas eliminadas con una macro no se recuperan con Ctrl + Z.

Eliminar filas duplicadas.

Si lo que se busca es eliminar las filas repetidas y dejar una de cada una, no hace falta ninguno de estos métodos: se usa «Datos», «Quitar duplicados», como se explica en el artículo sobre cómo encontrar, contar, quitar y evitar valores repetidos.

Descargar el ejemplo y las macros.

El libro de Excel tiene una base de doce compras para practicar los tres métodos, con los conteos de CONTAR.SI. El archivo de texto contiene cinco macros: eliminar filas iguales a uno o varios criterios, que contienen un texto, distintas de un valor, menores que un límite y vacías. Descargar archivo.

Preguntas frecuentes.

A continuación respondemos las preguntas frecuentes de nuestros lectores.

¿Cómo elimino todas las filas que contienen una palabra?

Con Ctrl + B, «Buscar todos», Ctrl + E para seleccionar los resultados y «Eliminar filas de hoja».

¿Cómo elimino las filas que cumplen una condición numérica?

Filtrando la columna con un «Filtro de número» y eliminando las filas visibles.

¿Por qué la macro debe recorrer las filas de abajo hacia arriba?

Porque al eliminar una fila las siguientes suben, y recorriendo hacia abajo se saltaría una fila en cada eliminación.

¿Cómo elimino las filas con varios criterios?

Con un filtro que marque varios valores, o con la macro que recibe una lista de criterios en Array.

¿Se pueden recuperar las filas eliminadas con una macro?

No con Ctrl + Z. Por eso conviene trabajar sobre una copia.

¿Aún no tienes cuenta en Gerencie.com?
El registro es completamente gratis y desbloquea beneficios exclusivos.

Forma de citar este artículo (APA):

Gerencie.com. (2026, octubre 15). Cómo eliminar filas en Excel que cumplan una condición [Entrada de blog]. Recuperado de https://www.gerencie.com/eliminar-filas-en-excel-con-condicion.html

Deje su opinión o su pregunta. Trataremos de darle respuesta. Su comentario o pregunta será editada automáticamente por el sistema.

Regístrese para que le avisemos cuando respondan su pregunta.

2 comentarios

  1. Mi caso es que tengo varios criterios para eliminar. ¿Cómo puedo modificar la macro para llevar a cabo esta eliminación?

    Responder a Jorge3467 1 respuesta
    1. Un ejemplo con barios criterios:

      Sub Eliminar_Filas()
      Dim ws As Worksheet
      Set ws = Sheets(“Hoja1”) ‘ nombre de la hoja con la información
      Dim col As String
      col = “A” ‘ columna para aplicar la condición

      Dim texto As String
      texto = “ave” ‘ texto de la condición

      Dim valor As Variant
      valor = texto

      If IsNumeric(texto) Then valor = Val(texto)
      If IsDate(texto) Then valor = CDate(texto)

      Application.ScreenUpdating = False

      Dim i As Long
      For i = ws.Range(col & ws.Rows.Count).End(xlUp).Row To 1 Step -1
      Select Case LCase(valor)
      Case LCase(“123”) ‘ Condición 1
      If IsNumeric(ws.Cells(i, col).Value) And ws.Cells(i, col).Value = Val(valor) Then
      ws.Rows(i).Delete
      End If
      Case LCase(“10/07/2017”) ‘ Condición 2
      If IsDate(ws.Cells(i, col).Value) And CDate(ws.Cells(i, col).Value) = CDate(valor) Then
      ws.Rows(i).Delete
      End If
      Case LCase(“ave”) ‘ Condición 3
      If LCase(ws.Cells(i, col).Value) = LCase(valor) Then
      ws.Rows(i).Delete
      End If
      ‘ Puedes agregar más condiciones según sea necesario
      End Select
      Next i

      Application.ScreenUpdating = True
      MsgBox “Filas eliminadas”, vbInformation, “DAM”
      End Sub