Wählen Sie jede n-te Zeile in Excel aus

116135
Patrick McElhaney

Ich habe eine Excel-Tabelle mit Tausenden von Zeilen. Ich möchte jede 7. Zeile aus dieser Tabelle auswählen. (Mit "Auswählen" meine ich alle anderen Zeilen löschen oder die ausgewählten Zeilen in ein neues Arbeitsblatt kopieren.)

Was ist der einfachste Weg, dies in Excel 2003 zu tun?

Siehe auch: Wählen Sie jede n-te Zeile in Zahlen aus

13

6 Antworten auf die Frage

17
Todd Pierzina
  1. Fügen Sie eine Spalte ein
  2. Einfügen der Formel in der ersten Zeile = MOD (ROW (), 7)
  3. Abschreiben
  4. Spezial / Werte kopieren / einfügen
  5. Daten / Filtern Sie die gewünschten (0 oder 6, wahrscheinlich)
  6. Restliche Zeilen löschen Filter entfernen Spalte löschen
Keine schlechte Lösung. Ich mag meine Makros, also ist dies meine erste Wahl, aber dies könnte auch mit ein bisschen Aufwand funktionieren. vor 15 Jahren 0
= MOD (ROW (), 7) benötigen Sie das zweite Argument. dkusleika vor 15 Jahren 2
3

Ich persönlich würde ein Makro aufnehmen, um die ersten drei oder vier Zeilen (natürlich in Schritten von 7 Zeilen) auszuführen und die Zeilen auf ein neues Blatt zu kopieren. Dann würde ich das Makro so bearbeiten, dass eine Schleife verwendet wird, die bis zur Anzahl der ausgefüllten Zeilen im Arbeitsblatt zählt (Schritt 7).

Pseudocode-Beispiel:

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 ... 
If you do use a macro, try going backward
Sub delrows() Dim i As Long For i = 988 To 1 Step -7 Sheet1.Cells(i, 1).Offset(1, 0).Resize(6).EntireRow.Delete Next i End Sub
If you delete rows, it the loop won't go crazy. dkusleika vor 15 Jahren 0
Er löscht nicht, sondern fügt einem Bereichsobjekt lediglich eine Zeile hinzu (im Kommentar enthalten). DaveParillo vor 15 Jahren 0
Er sagt "mit select, ich meine alle anderen Zeilen löschen ..." dkusleika vor 15 Jahren 0
3
DaveParillo

Wirklich nur die Idee zu Ende bringen, die Randolph Potter begonnen hat ....

Ich glaube nicht, dass Sie dies jemals durch Aufnahmen machen könnten. Die Makroaufnahme ist eine gute Möglichkeit, sich mit dem Excel-Objektmodell vertraut zu machen, aber keine sehr gute Möglichkeit, wiederverwendbare Funktionen zu schreiben.

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 
Mit Ihnen auf der wiederverwendbaren Vorstellung. vor 15 Jahren 0
3
pnuts
  1. Fügen Sie eine Spalte ein.
  2. In der ersten Zeile dort einfügen 1.
  3. Mit Ctrlgedrückter Taste in Zeile 7 kopieren .
  4. Schnapp dir den Block und mache dasselbe noch mal bis zum Ende.
  5. Daten / Filtern Sie die, die Sie nicht möchten, und löschen Sie diese.
  6. Löschen Sie die eingefügte Spalte.
Danke für die Antwort. Können Sie auf Schritt 3 näher eingehen? Wollen Sie die Strg-Taste gedrückt halten, während Sie die Maus ziehen? Ich habe momentan keinen Zugriff auf Excel 2003, daher kann ich nicht testen. Patrick McElhaney vor 12 Jahren 0
@PatrickMcElhaney Entschuldigung, ich hätte deutlicher sein können! Nehmen Sie die Zelle mit der eingetasteten '1' und ziehen Sie sie mit gedrückter linker Maustaste auf die Zeile 7. Halten Sie die Strg-Taste gedrückt, bevor Sie die Maustaste loslassen. Wenn Sie einfach nach unten ziehen, sollte eine kleine "1" SE des Cursors angezeigt werden, und dies sollte sich in "7" ändern, während Sie die Strg-Taste gedrückt halten. Zu 2003 habe ich auch nicht, aber in Bezug auf den Speicher ist Excel 2007 diesbezüglich nicht anders (hoffe ich!) pnuts vor 12 Jahren 0
1
Davide Di Grumo

Um jede 7. Zeile auszuwählen, gibt es einen EINFACHSEN WEG: In den ersten 7 Zeilen Ihrer Spalte außer einer (der ersten) schreiben Sie etwas hinein. Dann wählen Sie diese 7 Zeilen aus und kopieren Sie sie auf die gesamte Spalte. Nun brauchen Sie nur noch SELECT-> GO TO SPECIAL-> Select BLANKS-> OK. Sie haben jeweils 7 Zeilen zur Auswahl. Jetzt können Sie machen, was Sie wollen. Genießen!

0
Ponch

für jede 7. Reihe,

  1. Fügen Sie eine Spalte ein
  2. In Zeile 1 bis Zeile 6 ein "X" einfügen
  3. in Reihe 7 setzen Sie 1,
  4. fülle deine Spalte automatisch mit diesem Block
  5. Verwenden Sie "Remove Duplicates" für diese Spalte
  6. 1. Zeile löschen (mit dem 1. "X").
  7. Löschen Sie die hinzugefügte Spalte
Willkommen bei Super User. Dies ist im Wesentlichen die in der akzeptierten Antwort vorgeschlagenen Methoden und die von pnuts nur mehr Arbeit (und destruktiv). Es ist nicht klar, was es leistet. fixer1234 vor 6 Jahren 0
Es ist nur ein anderes Menü, nicht wirklich mehr Arbeit aus meiner Sicht oder zerstörerischer als die ursprünglichen Posteranforderungen ("Alle anderen Zeilen löschen"). Ponch vor 6 Jahren 0