Selecione cada enésima linha no Excel

13

Eu tenho uma planilha do Excel com milhares de linhas. Quero selecionar cada 7ª linha dessa planilha. (Por "select", quero dizer excluir todas as outras linhas, ou copie as linhas selecionadas em uma nova planilha.)

Qual é a maneira mais fácil de fazer isso no Excel 2003?

Veja também: Selecione cada enésima linha no Numbers

    
por Patrick McElhaney 11.11.2009 / 23:10

6 respostas

17
  1. Inserir uma coluna
  2. Na primeira linha, insira a fórmula = MOD (ROW (), 7)
  3. Copiar
  4. Copiar / colar especial / valores
  5. Dados / Filtre os que você deseja (0 ou 6, provavelmente)
  6. Excluir o restante das linhas Remover filtro Excluir coluna
por 11.11.2009 / 23:27
3

Pessoalmente, eu gravaria uma macro para fazer as primeiras três ou quatro linhas (com incrementos de 7 linhas, é claro) e copiaria as linhas para uma nova planilha. Em seguida, eu editaria a macro para usar um loop que conta para o número de linhas preenchidas na planilha, com uma etapa de 7.

Exemplo de pseudo-có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
...
    
por 11.11.2009 / 23:25
3

Realmente apenas terminando a ideia que Randolph Potter começou ...

Para o registro, eu não acho que você poderia chegar a isso com a gravação. A gravação de macros é uma boa maneira de se familiarizar com o Modelo de Objetos do Excel, mas não é uma boa maneira de escrever funções reutilizáveis.

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
    
por 12.11.2009 / 01:42
3
  1. Insira uma coluna.
  2. Na primeira linha, insira 1 .
  3. Copiar para a linha 7 com Ctrl pressionado.
  4. Agarre esse bloco e faça o mesmo novamente até o fim.
  5. Dados / Filtrar os que você não deseja e excluir esses.
  6. Exclua a coluna inserida.
por 08.11.2012 / 13:23
1

para selecionar cada 7ª linha, existe um EASIER WAY: nas primeiras 7 linhas da sua coluna, mas uma (a primeira) você escreve alguma coisa dentro dela. Então você seleciona estas 7 linhas e as copia na coluna inteira. Agora, o que você precisa é apenas ir para SELECIONAR- > IR PARA ESPECIAL- > selecionar BLANKS- > OK Você tem a cada 7 linhas uma seleção. Agora você pode fazer o que quiser. Aproveite!

    
por 17.07.2017 / 07:16
0

para cada 7ª linha,

  1. Inserir uma coluna
  2. Na linha 1 até a linha 6, coloque um "X"
  3. na linha 7 coloque 1,
  4. preencha automaticamente sua coluna com esse bloco
  5. Use "Remover duplicatas" nessa coluna
  6. Excluir a primeira linha (com o primeiro "X").
  7. Excluir coluna adicionada
por 25.10.2018 / 18:21