Xóa hàng có điều kiện (Microsoft Excel)
Khi bạn đang làm việc với các bảng dữ liệu chứa thông tin mà bạn đã nhận được từ người khác, bạn có thể muốn cắt bớt lượng dữ liệu trong bảng bằng cách xóa các hàng nếu một điều kiện cụ thể được đáp ứng. Có một số cách bạn có thể tiếp cận một nhiệm vụ như vậy.
Phương pháp đầu tiên là sử dụng tính năng AutoFilter của Excel. Điều này đặc biệt hiệu quả nếu bạn có một tiêu chí khá đơn giản để xóa các hàng. Khi bạn bật Tự động lọc, Excel sẽ đặt các nút kéo xuống ở bên phải của mỗi ô trong hàng tiêu đề của bảng dữ liệu.
Sử dụng các nút kéo xuống này, bạn có thể chỉ định các bản ghi mà bạn muốn hiển thị. Bạn nên chọn một giá trị bộ lọc sẽ dẫn đến việc chỉ hiển thị những hàng bạn muốn xóa. Với các hàng được hiển thị, bạn có thể chọn chúng và sử dụng menu để loại bỏ các hàng.
Khi bạn tắt Tự động lọc, thì bạn chỉ còn lại những hàng bạn muốn.
Một phương pháp khác liên quan đến việc sử dụng macro để thực hiện việc xóa cho bạn.
Cách tiếp cận này hoạt động tốt nếu bạn phải thực hiện xóa nhiều dữ liệu hoặc nếu bạn thực hiện nó khá thường xuyên. Macro sau có thể xóa các hàng dựa trên giá trị khóa:
Sub DeleteRows() Dim strToDelete As String Dim rngSrc As Range Dim NumRows As Integer Dim ThisRow As Integer Dim ThatRow As Integer Dim ThisCol As Integer Dim J As Integer Dim DeletedRows As Integer strToDelete = InputBox("Value to Trigger Delete?", "Delete Rows") Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address) NumRows = rngSrc.Rows.Count ThisRow = rngSrc.Row ThatRow = ThisRow + NumRows - 1 ThisCol = rngSrc.Column For J = ThatRow To ThisRow Step -1 If Cells(J, ThisCol) = strToDelete Then Rows(J).Select Selection.Delete Shift:=xlUp DeletedRows = DeletedRows + 1 End If Next J MsgBox "Number of deleted rows: " & DeletedRows End Sub
Để sử dụng macro, hãy chọn phạm vi phạm vi khóa bao gồm các hàng bạn muốn chọn. Ví dụ: nếu khóa cần kiểm tra nằm trong cột G và bạn muốn kiểm tra các hàng từ 5 đến 73, thì bạn sẽ chọn phạm vi G5: G73. Khi bạn chạy macro, nó sẽ hỏi bạn giá trị mà nó nên kiểm tra. Nếu bất kỳ ô nào trong phạm vi G5: G73 chứa giá trị bạn chỉ định, hàng tương ứng cho ô đó sẽ bị xóa.
Rõ ràng là có nhiều cách khác để xóa các hàng dựa trên một giá trị. Để có lựa chọn tốt các phương pháp khác nhau, hãy xem trang này của Dave Hawley tại Ozgrid:
http://www.ozgrid.com/VBA/VBACode.htm
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (2386) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: