Tabla de contenido
Este breve tutorial explica cómo eliminar una de cada dos filas en Excel mediante filtrado o con código VBA. También aprenderá cómo eliminar una de cada tres, cuatro o cualquier otra enésima fila.
Hay muchas situaciones en las que puede ser necesario eliminar filas alternativas en hojas de cálculo de Excel. Por ejemplo, es posible que desee conservar los datos de las semanas pares (filas 2, 4, 6, 8, etc.) y mover todas las semanas impares (filas 3, 5, 7, etc.) a otra hoja.
Por lo general, eliminar una fila sí y otra no en Excel se reduce a seleccionar filas alternativas. Una vez seleccionadas las filas, basta con pulsar una vez el botón Borrar Más adelante en este artículo, aprenderás algunas técnicas para seleccionar y eliminar rápidamente una fila sí y una fila no en Excel.
Cómo eliminar todas las demás filas en Excel mediante filtrado
En esencia, una forma habitual de borrar una fila sí y otra no en Excel es la siguiente: primero, se filtran las filas alternas, luego se seleccionan y se borran todas a la vez. A continuación se detallan los pasos:
- En una columna vacía junto a tus datos originales, introduce una secuencia de ceros y unos. Puedes hacerlo rápidamente escribiendo 0 en la primera celda y 1 en la segunda, luego copiando las dos primeras celdas y pegándolas columna abajo hasta la última celda con datos.
También puedes utilizar esta fórmula:
Ver también: Cómo utilizar el filtro avanzado en Excel - ejemplos de rangos de criterios con fórmulas=MOD(ROW(),2)
La lógica de la fórmula es muy sencilla: la función ROW devuelve el número de fila actual, la función MOD lo divide por 2 y devuelve el resto redondeado al número entero.
Como resultado, tienes 0 en todas las filas pares (porque se dividen por 2 uniformemente sin resto) y 1 en todas las filas impares:
- Dependiendo de si desea eliminar filas pares o impares, filtre unos o ceros.
Para hacerlo, seleccione cualquier celda de su columna Ayudante, vaya a la pestaña Datos tab> Ordenar y filtrar y haga clic en el botón Filtro Las flechas de filtro desplegables aparecerán en todas las celdas de encabezado. Haga clic en el botón de flecha de la columna Ayudante y marque una de las casillas:
- 0 para borrar las filas pares
- 1 para borrar las filas impares
En este ejemplo, vamos a eliminar las filas con valores "0", por lo que las filtramos:
- Ahora que todas las filas "1" están ocultas, seleccione todas las filas "0" visibles, haga clic con el botón derecho en la selección y haga clic en Borrar fila :
- El paso anterior le ha dejado con una tabla vacía, pero no se preocupe, las filas "1" siguen ahí. Para hacerlas visibles de nuevo, simplemente elimine el autofiltro haciendo clic en el botón Filtro de nuevo:
- La fórmula de la columna C se recalcula para las filas restantes, pero ya no la necesita. Ahora puede eliminar con seguridad la columna Ayudante:
Como resultado, en nuestra hoja de cálculo sólo quedan las semanas pares, ¡las impares han desaparecido!
Sugerencia: si desea mover las filas filtradas a otro lugar en lugar de eliminarlas por completo, copie primero las filas filtradas y péguelas en una nueva ubicación y, a continuación, elimine las filas filtradas.
Cómo eliminar filas alternas en Excel con VBA
Si no está dispuesto a perder el tiempo en una tarea tan trivial como eliminar una de cada dos filas de sus hojas de cálculo de Excel, la siguiente macro VBA puede automatizar el proceso por usted:
Sub Delete_Alternate_Rows_Excel() Dim SourceRange As Range Set SourceRange = Application.Selection Set SourceRange = Application.InputBox( "Range:" , "Select the range" , SourceRange.Address, Type :=8) If SourceRange.Rows.Count>= 2 Then Dim FirstCell As Range Dim RowIndex As Integer Application.ScreenUpdating = False For RowIndex = SourceRange.Rows.Count - (SourceRange.Rows.Count Mod 2) To 1Step -2 Set FirstCell = SourceRange.Cells(RowIndex, 1) FirstCell.EntireRow.Delete Next Application.ScreenUpdating = True End If End SubCómo eliminar cada dos filas en Excel utilizando la macro
Inserte la macro en su hoja de cálculo de la forma habitual a través del Editor de Visual Basic:
- Pulse Alt + F11 para abrir la ventana de Visual Basic para Aplicaciones.
- En la barra de menús superior, haga clic en Inserte > Módulo y pegue la macro anterior en el campo Módulo
- Pulse la tecla F5 para ejecutar la macro.
- Aparecerá un cuadro de diálogo que le pedirá que seleccione un rango. Seleccione su tabla y haga clic en Aceptar:
Se eliminan todas las demás filas del rango seleccionado:
Cómo eliminar cada N filas en Excel
Para esta tarea, vamos a ampliar la técnica de filtrado que hemos utilizado para eliminar una de cada dos filas. La diferencia está en la fórmula en la que se basa el filtrado:
MOD(ROW()- m , n )Dónde:
- m es el número de fila de la primera celda con datos menos 1
- n es la fila N que desea eliminar
Digamos que sus datos comienzan en la fila 2 y desea eliminar cada 3 filas. Entonces, en su fórmula n es igual a 3, y m es igual a 1 (fila 2 menos 1):
=MOD(FILA() - 1, 3)
Si nuestros datos comenzaron en la fila 3, entonces m sería igual a 2 (fila 3 menos 1), y así sucesivamente. Esta corrección es necesaria para numerar secuencialmente las filas, empezando por el número 1.
Lo que hace la fórmula es dividir un número de fila relativo por 3 y devolver el resto después de la división. En nuestro caso, da cero para cada tercera fila porque cada tercer número se divide por 3 sin resto (3,6,9, etc.):
Y ahora, realiza los pasos ya conocidos para filtrar las filas "0":
- Seleccione cualquier celda de la tabla y haga clic en el botón Filtro en el botón Datos
- Filtra la columna Ayudante para mostrar sólo valores "0".
- Seleccione todas las filas "0" visibles, haga clic con el botón derecho y elija Borrar fila del menú contextual.
- Quite el filtro y elimine la columna Helper.
De forma similar, puede eliminar cada 4ª, 5ª o cualquier otra fila Nth en Excel.
En caso de que necesite eliminar filas con datos irrelevantes, el siguiente tutorial le será de utilidad: Cómo eliminar filas basándose en el valor de una celda.
Le agradezco su lectura y espero volver a verle en nuestro blog la semana que viene.