2009-11-11 22:10:59 +0000 2009-11-11 22:10:59 +0000
15
15

Seleccione cada enésima fila en Excel

Tengo una hoja de cálculo de Excel con miles de filas. Quiero seleccionar una de cada siete filas de esa hoja de cálculo. (Con “seleccionar” me refiero a eliminar todas las demás filas, o copiar las filas seleccionadas en una nueva hoja de cálculo).

¿Cuál es la forma más fácil de hacerlo en Excel 2003?

Ver también: Seleccionar cada enésima fila en Números

Respuestas (5)

19
19
19
2009-11-11 22:27:52 +0000
  1. Inserte una columna
  2. En la primera fila inserte la fórmula =MOD(ROW(),7)
  3. Copiar hacia abajo
  4. Copiar/pegar especiales/valores
  5. Datos/Filtro fuera los que quieras (0 o 6, probablemente)
  6. Eliminar el resto de las filas Eliminar el filtro Eliminar la columna
3
3
3
2012-11-08 12:23:18 +0000
  1. Inserte una columna.
  2. En la primera fila, inserte 1.
  3. Copiar hasta la fila 7 con Ctrl pulsada.
  4. Coge ese bloque y vuelve a hacer lo mismo hasta el final.
  5. Filtra los datos que no quieras y bórralos.
  6. Borrar la columna insertada.
3
3
3
2009-11-12 00:42:01 +0000

En realidad, sólo terminando la idea Randolph Potter comenzó….

Para que conste, no creo que se pueda llegar a esto grabando. La grabación de macros es una buena manera de familiarizarse con el modelo de objetos de Excel, pero no es una muy buena manera 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
1
1
1
2017-07-17 05:16:57 +0000

para seleccionar cada 7 filas hay una MANERA MAS FACIL: en las primeras 7 filas de tu columna menos una (la primera) escribes algo dentro. Luego seleccionas estas 7 filas y las copias en toda la columna. Ahora lo que necesitas es ir a SELECCIONAR-\N- IR A ESPECIAL-\N-Seleccionar BLANCOS-\N-Aceptar Tienes cada 7 filas una selección. Ahora puedes hacer lo que quieras. ¡Que lo disfrutes!

0
0
0
2018-10-25 16:21:05 +0000

para cada 7 filas,

  1. Inserte una columna
  2. En la fila 1 a la fila 6 ponga una “X”
  3. en la fila 7 ponga 1,
  4. autocomplete su columna con ese bloque
  5. 5. Usar “Eliminar Duplicados” en esa columna
  6. Borrar la primera fila (con la primera “X”)
  7. Borrar la columna añadida