
Tengo una hoja de cálculo que está ordenada por una identificación y una celda calculada. Ordeno la hoja por identificación y celda calculada, lo que me da pares de filas relacionadas. Simplemente quiero eliminar la segunda fila de cada par en toda la hoja. Normalmente hay alrededor de 3000 filas.
¿Existe una manera sencilla de eliminar o mover la segunda fila a otra hoja?
Respuesta1
No es una respuesta de programación ya que dijiste que no estabas familiarizado con VBA en Excel, pero si es única, hazlo en Excel:
- Agregar una nueva columna (digamos A)
- Establezca la primera fila (A1) en
True
- Establezca la fila A2 en
=NOT(A1)
- Luego arrastre la fila A2 hacia todas sus filas.
Luego aplique un filtro automático donde A
está la columna false
, seleccione todas las filas devueltas y elimínelas, y luego elimine el filtro.
Respuesta2
Si se trata de una tarea única, utilice la respuesta de Seph. Si es necesario repetirlo, use VBA, así:
Sub DemoDeleteAlternateRows()
Dim iRow As Long, LastRow As Long
Dim sh As Worksheet
Set sh = ActiveSheet ' <-- Maybe change this to refer to a specific sheet
Application.FindFormat.Clear ' Just in case Find was last used with a Format
LastRow = sh.Cells.Find(What:="*", After:=sh.Cells(1, 1), _
SearchDirection:=xlPrevious, SearchOrder:=xlByRows, SearchFormat:=False).Row
For iRow = LastRow To 1 Step -1
' Delete even numberede rows (to delete odd numbered
' rows, instead use If iRow Mod 2 = 1 Then).
If iRow Mod 2 = 0 Then
sh.Rows(iRow).Delete
End If
Next
End Sub
Asegúrate de hacer una copia de seguridad antes de ejecutarcualquiermacro en su hoja. ¡Las macros no usan Deshacer!