Chọn từng hàng thứ n trong Excel


15

Tôi có một bảng tính Excel với hàng ngàn hàng. Tôi muốn chọn mỗi hàng thứ 7 từ bảng tính đó. (Bằng cách "chọn", ý tôi là xóa tất cả các hàng khác hoặc sao chép các hàng đã chọn vào một bảng tính mới.)

Cách dễ nhất để làm điều đó trong Excel 2003 là gì?

Xem thêm: Chọn từng hàng thứ n trong Số

Câu trả lời:


19
  1. Chèn một cột
  2. Trong công thức chèn hàng đầu tiên = MOD (ROW (), 7)
  3. Sao chép xuống
  4. Sao chép / dán đặc biệt / giá trị
  5. Dữ liệu / Lọc ra những cái bạn muốn (0 hoặc 6, có thể)
  6. Xóa phần còn lại của hàng Xóa bộ lọc Xóa cột

Một giải pháp không tồi. Tôi thích macro của mình vì vậy đó là lựa chọn đầu tiên của tôi, nhưng điều này cũng có thể hoạt động với một chút nỗ lực.

2
= MOD (ROW (), 7) bạn cần đối số thứ hai đó.
dkusleika

3

Cá nhân, tôi sẽ ghi lại một macro để thực hiện ba hoặc bốn dòng đầu tiên (tất nhiên là ở mức tăng 7 hàng) và sao chép các dòng vào một trang tính mới. Sau đó, tôi sẽ chỉnh sửa macro để sử dụng một vòng lặp đếm đến số lượng hàng được điền trong trang tính, với bước 7.

Ví dụ mã giả:

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

Nếu bạn sử dụng macro, hãy thử quay lại <code> <pre> Sub delrow () Dim i As Long For i = 988 To 1 Step -7 Sheet1.Cells (i, 1). Offerset (1, 0) .Resize (6) .EntireRow.Delete Next i End Sub </ pre> </ code> Nếu bạn xóa các hàng, vòng lặp sẽ không phát điên.
dkusleika

Anh ta không xóa, chỉ thêm một hàng vào một đối tượng phạm vi (ngụ ý trong bình luận)
DaveParillo

1
Anh ta nói "bằng cách chọn, ý tôi là xóa tất cả các hàng khác ..."
dkusleika

3

Thực sự chỉ cần hoàn thành ý tưởng Randolph Potter đã bắt đầu ....

Đối với hồ sơ, tôi không nghĩ bạn có thể nghĩ ra điều này bằng cách ghi lại. Ghi macro là một cách tốt để làm quen với Mô hình đối tượng Excel, nhưng không phải là cách hay để viết các hàm có thể sử dụng lại.

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

Với bạn về khái niệm tái sử dụng.

3
  1. Chèn một cột.
  2. Trong hàng đầu tiên có, chèn 1.
  3. Sao chép xuống hàng 7 với sự Ctrlchán nản.
  4. Lấy khối đó và làm tương tự một lần nữa cho đến hết.
  5. Dữ liệu / Lọc những cái bạn không muốn và xóa chúng.
  6. Xóa cột được chèn.

Cảm ơn câu trả lời. Bạn có thể xây dựng bước 3 không? Bạn có nghĩa là giữ phím Ctrl trong khi kéo chuột? Hiện tại tôi không có quyền truy cập vào Excel 2003 vì vậy tôi không thể kiểm tra.
Patrick McElhaney

1

để chọn mỗi hàng thứ 7 có CÁCH DỄ DÀNG: trong 7 hàng đầu tiên của cột của bạn nhưng một (hàng đầu tiên) bạn viết một cái gì đó bên trong. Sau đó, bạn chọn 7 hàng này và sao chép chúng trên toàn bộ cột. Bây giờ những gì bạn cần chỉ là vào CHỌN-> ĐI ĐẶC BIỆT-> chọn BLANKS-> OK Bạn có mỗi 7 hàng một lựa chọn. Bây giờ bạn có thể làm những gì bạn muốn. Thưởng thức!


0

cho mỗi hàng thứ 7,

  1. Chèn một cột
  2. Trong hàng 1 đến hàng 6, đặt "X"
  3. ở hàng 7 đặt 1,
  4. tự động điền cột của bạn với khối đó
  5. Sử dụng "Xóa bản sao" trên cột đó
  6. Xóa hàng thứ 1 (với chữ "X" thứ 1).
  7. Xóa cột đã thêm

Chào mừng đến với Siêu người dùng. Đây thực chất là các phương pháp được đề xuất trong câu trả lời được chấp nhận và phương pháp của pnuts, chỉ có nhiều công việc hơn (và phá hoại). Nó không rõ ràng những gì nó đóng góp.
fixer1234

Đó chỉ là sử dụng một menu khác, không thực sự nhiều công việc hơn trong quan điểm của tôi cũng không phá hủy hơn các yêu cầu poster ban đầu ("xóa tất cả các hàng khác").
Ponch
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.