Wybierz każdy n-ty wiersz w programie Excel

14

Mam arkusz kalkulacyjny Excel z tysiącami wierszy. Chcę wybierać co 7 wiersz z tego arkusza kalkulacyjnego. (Przez „wybierz” mam na myśli usunięcie wszystkich innych wierszy lub skopiowanie wybranych wierszy do nowego arkusza).

Jak najłatwiej to zrobić w programie Excel 2003?

Zobacz także: Wybierz każdy n-ty wiersz w Liczbach

Patrick McElhaney
źródło

Odpowiedzi:

19
  1. Wstaw kolumnę
  2. W pierwszym wierszu wstaw formułę = MOD (ROW (), 7)
  3. Skopiuj
  4. Skopiuj / wklej specjalne / wartości
  5. Dane / Odfiltruj te, które chcesz (prawdopodobnie 0 lub 6)
  6. Usuń resztę wierszy Usuń filtr Usuń kolumnę
Todd Pierzina
źródło
Niezłe rozwiązanie. Lubię moje makra, więc to mój pierwszy wybór, ale może to również przy odrobinie wysiłku.
2
= MOD (ROW (), 7) potrzebujesz drugiego argumentu.
dkusleika
3

Osobiście nagrałbym makro, aby zrobić pierwsze trzy lub cztery wiersze (oczywiście w odstępach 7-rzędowych), i skopiowałem wiersze do nowego arkusza. Następnie edytowałbym makro, aby użyć pętli, która liczy się do liczby wypełnionych wierszy w arkuszu, z krokiem 7.

Przykład pseudokodu:

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
...

źródło
Jeśli używasz makra, spróbuj przejść wstecz <kod> <pre> Sub delrows () Dim i As Long For i = 988 To 1 Krok -7 Arkusz 1 Komórki (i, 1). Offset (1, 0). (6) .EntireRow.Delete Next i End Sub </pre> </code> Jeśli usuniesz wiersze, pętla nie zwariuje.
dkusleika
Nie usuwa, tylko dodaje wiersz do obiektu zakresu (sugerowany w komentarzu)
DaveParillo,
1
Mówi: „wybierz, mam na myśli usunięcie wszystkich innych wierszy ...”
dkusleika,
3

Naprawdę właśnie kończyłem pomysł, który rozpoczął Randolph Potter ...

Dla przypomnienia, nie sądzę, żebyś mógł coś takiego wymyślić, nagrywając. Nagrywanie makr to dobry sposób na zapoznanie się z modelem obiektów Excel, ale niezbyt dobry sposób na pisanie funkcji wielokrotnego użytku.

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
źródło
Z tobą na pojęcie wielokrotnego użytku.
3
  1. Wstaw kolumnę.
  2. W pierwszym rzędzie tam wstaw 1.
  3. Skopiuj do wiersza 7 z Ctrlwciśniętym.
  4. Chwyć ten blok i zrób to samo do końca.
  5. Dane / Filtruj te, których nie chcesz, i usuń je.
  6. Usuń wstawioną kolumnę.
orzechy
źródło
Dziękuję za odpowiedź. Czy potrafisz rozwinąć krok 3? Czy chcesz przytrzymać klawisz Ctrl podczas przeciągania myszy? W tej chwili nie mam dostępu do programu Excel 2003, więc nie mogę przetestować.
Patrick McElhaney,
1

aby wybrać co 7 rząd, jest ŁATWIEJSZY SPOSÓB: w pierwszych 7 wierszach kolumny, ale w jednym (pierwszym) piszesz coś w środku. Następnie zaznacz 7 wierszy i skopiuj je do całej kolumny. Teraz wystarczy przejść do WYBIERZ-> PRZEJDŹ DO SPECJALNEGO-> wybierz PUSTE-> OK Każdy z 7 wierszy ma zaznaczenie. Teraz możesz robić, co chcesz. Cieszyć się!

Davide Di Grumo
źródło
0

dla każdego 7 rzędu

  1. Wstaw kolumnę
  2. W wierszach 1 do 6 wstaw „X”
  3. w wierszu 7 wstaw 1,
  4. automatycznie wypełnij kolumnę tym blokiem
  5. Użyj „Usuń duplikaty” w tej kolumnie
  6. Usuń pierwszy wiersz (z pierwszym „X”).
  7. Usuń dodaną kolumnę
Ponch
źródło
Witamy w Super User. Są to w zasadzie metody zaproponowane w zaakceptowanej odpowiedzi i ta przez orzechy, tylko więcej pracy (i destrukcyjne). Nie jest jasne, co wnosi.
fixer1234,
Po prostu używa innego menu, moim zdaniem nie więcej pracy ani bardziej niszczących niż oryginalne żądania plakatów („usuń wszystkie pozostałe wiersze”).
Ponch