Seleccione cada enésima fila en Excel

Respuestas:

19
  1. Insertar una columna
  2. En la primera fila, inserte la fórmula = MOD (ROW (), 7)
  3. Copia
  4. Copiar / pegar valores / especiales
  5. Datos / Filtra los que quieras (0 o 6, probablemente)
  6. Eliminar el resto de las filas Eliminar filtro Eliminar columna
Todd Pierzina
fuente
No es una mala solución. Me gustan mis macros, así que esa es mi primera opción, pero esto también podría funcionar con un poco de esfuerzo.
2
= MOD (ROW (), 7) necesitas ese segundo argumento.
dkusleika
3

Personalmente, grabaría una macro para hacer las primeras tres o cuatro líneas (en incrementos de 7 filas, por supuesto), y copiaría las líneas en una nueva hoja. Luego editaría la macro para usar un bucle que cuente el número de filas pobladas en la hoja, con un paso de 7.

Ejemplo de pseudocódigo:

Dim i as Integer

For i = 1 To 1000 Step 7
    'Add current row to selection
    ...
Next i

'Copy the selected rows to new sheet
...

fuente
Si utiliza una macro, intente retroceder <code> <pre> Sub delrows () Dim i As Long For i = 988 To 1 Step -7 Sheet1.Cells (i, 1) .Offset (1, 0) .Resize (6) .EntireRow.Delete Siguiente i End Sub </pre> </code> Si elimina filas, el bucle no se volverá loco.
dkusleika
No está eliminando, solo agrega una fila a un objeto de rango (implícito en el comentario)
DaveParillo
1
Él dice "por select, me refiero a eliminar todas las otras filas ..."
dkusleika
3

Realmente solo terminando la idea que comenzó Randolph Potter ...

Para el registro, no creo que alguna vez se te ocurra esto grabando. La grabación de macros es una buena forma de familiarizarse con el Modelo de objetos de Excel, pero no es una muy buena forma de escribir funciones reutilizables.

Option Explicit

'A simple test that copies every 7th row from the active sheet to a new sheet.
Sub SimpleTest()
    Dim r As Range
    Dim ws As Worksheet

    Set r = GetEveryNthRow(7)
    If Not r Is Nothing Then
        Set ws = Worksheets.Add(Before:=Sheets(1))

        r.Copy ws.Range("A1")
    Else
        MsgBox "Nothing came back from GetEveryNthRow"
    End If
    Set ws = Nothing
    Set r = Nothing
End Sub

'
Function GetEveryNthRow(ByVal NthRow As Long) As Range
    Dim keepRows As Range
    Dim r As Range

    If NthRow > 0 Then
        Set keepRows = Rows(1)
        For Each r In ActiveSheet.UsedRange.Rows
            If (r.Row Mod NthRow) = 0 Then
                Set keepRows = Union(keepRows, Rows(r.Row))
            End If
        Next r
        Set GetEveryNthRow = keepRows
    Else
        MsgBox "The row multiple provided must be greater than 0"
    End If

    Set keepRows = Nothing
End Function
DaveParillo
fuente
Contigo en la noción reutilizable.
3
  1. Insertar una columna.
  2. En la primera fila allí, inserte 1.
  3. Copie hacia abajo a la fila 7 con Ctrldeprimido.
  4. Toma ese bloque y haz lo mismo hasta el final.
  5. Datos / Filtre los que no desea y elimínelos.
  6. Eliminar la columna insertada.
nueces
fuente
Gracias por la respuesta. ¿Puedes dar más detalles sobre el paso 3? ¿Quiere decir mantener presionada la tecla Ctrl mientras arrastra el mouse? No tengo acceso a Excel 2003 en este momento, así que no puedo probar.
Patrick McElhaney
1

para seleccionar cada 7ma fila hay una MANERA MÁS FÁCIL: en las primeras 7 filas de su columna, pero una (la primera) escribe algo dentro. Luego selecciona estas 7 filas y las copia en toda la columna. Ahora lo que necesita es ir a SELECCIONAR-> IR A ESPECIAL-> seleccionar EN BLANCO-> OK. Cada una de las 7 filas tiene una selección. Ahora puedes hacer lo que quieras. ¡Disfrutar!

Davide Di Grumo
fuente
0

por cada 7ma fila,

  1. Insertar una columna
  2. En la fila 1 a la fila 6 ponga una "X"
  3. en la fila 7 poner 1,
  4. autocompletar su columna con ese bloque
  5. Use "Eliminar duplicados" en esa columna
  6. Eliminar primera fila (con la primera "X").
  7. Eliminar columna agregada
Ponch
fuente
Bienvenido a Super User. Esto es esencialmente los métodos propuestos en la respuesta aceptada y el de las nueces, solo que más trabajo (y destructivo). No está claro qué aporta.
Fixer1234
Solo está usando otro menú, no es realmente más trabajo en mi opinión ni más destructivo que las solicitudes de póster originales ("eliminar todas las otras filas").
Ponch