Bài viết: Làm cách nào để xóa các dòng chẵn/lẻ?

Liên hệ QC

kyo

Nguyễn Khắc Duy
Thành viên danh dự
Tham gia
4/6/06
Bài viết
901
Được thích
2,715
Làm cách nào để xóa các dòng chẵn/lẻ?


Đây là một chủ đề mà cách giải cũng rất đa dạng. Giả sử tôi có dữ liệu như sau:

36775512636_8eca24214d_o.png


Cách 1: Giải bằng công thức + Auto Filter

Đầu tiên, bạn hãy dùng 1 cột phụ và gõ công thức như sau: =MOD(ROW(),2)

36775512376_477df48058_o.png


Bạn có thể thấy, ô có số 0 là dòng chẵn, số 1 là dòng lẻ bởi vì công thức MOD là công thức lấy phần dư nên khi nó chia 2, chỉ có dòng chẵn mới mang giá trị 0 mà thôi.

Tiếp theo, bạn hãy dùng Filter và tiến hành lọc số 0 nếu bạn muốn xóa hàng chẵn và số 1 nếu bạn muốn xóa hàng lẻ. Ở đây tôi chọn số 0.

36775512056_2e3fde56e3_o.png


Một cách khác, bạn có thể dùng công thức =ISEVEN(ROW()). Hàm này mang ý nghĩa là nó sẽ kiểm tra dòng bạn đang đứng có phải là dòng chẵn hay không, nếu phải nó sẽ mang giá trị TRUE, còn không sẽ là giá trị FALSE, và bạn sẽ lọc dựa trên hai loại giá trị này, TRUE hoặc FALSE.

36775511866_e62998ce64_b.jpg


Cách 2: Gõ ký tự đại diện + Auto Filter

Ngoài việc dùng công thức, bạn có thể làm cho mọi thứ đơn giản hơn chỉ bằng việc gõ một ký tự đại diện cho ô chẵn hoặc ô lẻ để nhận biết. Dẫu sao thì việc biết hàng nào chẵn hàng nào lẻ đâu phải là một vấn đề khó khăn đâu phải không?

Bạn có thể gõ số 1 và 2 lần lượt vào dòng 2 và dòng 3 như sau:

36775511566_86ea5cd4e7_b.jpg


Sau đó, bạn nhấn giữ Ctrl và kéo công thức xuống vị trí mà bạn cần.

36775511386_e0af3c2867_b.jpg


Và bạn sẽ có kết quả như sau:

36775511146_465f52f62b_b.jpg


Bạn hãy lọc giá trị 1 hoặc 2 tùy theo nhu cầu chẵn hay lẻ của bạn.

Ngoài ra, bạn có thể không cần phải gõ số 1 và 2. Đôi khi, chỉ cần một số cũng đã đủ, sau đó, bạn nắm cả ô 1 và ô rỗng và kéo. Như vậy, bạn có thể lọc theo kiểu ô có giá trị hoặc ô rỗng.

36775510786_cf7aab2395_b.jpg


Cách 3: Thay Filter bằng Sort

Cột phụ thì bạn đã có rồi, nhưng bạn có thể thay việc dùng Filter bằng việc dùng Sort để tăng tốc độ (ở đây, hình bên dưới Sort theo giá trị 1, do đó bạn sẽ thấy cột C và D vẫn như cũ vì nó là công thức chưa Paste Value, tuy nhiên nếu nhìn sang cột A, số thứ tự tôi đã đánh dấu ban đầu thì rõ ràng tất cả đã thay đổi).

36775510556_b593e867f4_b.jpg


Bạn có thể thấy sau khi tôi Sort xong, tất cả hàng chẵn sẽ được đẩy lên trên hết và tất cả hàng lẻ sẽ được mang hết xuống dưới lần lượt theo thứ tự. Như vậy, công cuộc xóa của bạn cũng dễ dàng hơn nhiều.

Cách 4: VBA

Cách cuối cùng này cũng là cách "nặng đô" nhất vì nó đòi hỏi bạn phải biết về VBA. Bạn hãy sử dụng đoạn code sau đây:

Mã:
Sub XoaDongChan()
 
Dim i As Long
 
For i = 26 To 2 Step -2
    ActiveSheet.Rows(i).Delete
Next i
 
End Sub

Bạn hãy lưu ý rằng, đây là vòng lặp ngược từ dưới lên, không phải từ trên xuống.

Chúc bạn thành công.

Một số bài viết có liên quan:
1/ Xử lý các lỗi của công thức (phần 1)
2/ Làm việc với công thức mảng trong Excel
3/ Tiết kiệm thời gian với Excel Table
4/ 6 thói quen cá nhân khi làm việc với dữ liệu và Excel
5/ Tham chiếu trong Excel (3)
6/ Tham chiếu trong Excel (2)
7/ Tham chiếu trong Excel (1)
8/ Cách viết hàm hiệu quả
9/ 29 cách tiết kiệm thời gian với các công thức Excel (phần 2)
10/ 29 cách tiết kiệm thời gian với các công thức Excel (phần 1)
 
Lần chỉnh sửa cuối:
Upvote 0
Đối với dữ liệu rất lớn dùng cách sort sao cho dữ liệu cần xóa xuống dưới sẽ nhanh hơn. Như trong cách 3 để xóa dòng chẵn cần sort thứ tự ngược lại. Lý do khi xóa dòng, excel phải đẩy các dòng dưới lên lấp chỗ trống nên nếu các dòng bị xóa ở trên thì cả khối dữ liệu ở hàng lẻ phải đẩy lên nên tốn thời gian hơn.
 
Đối với dữ liệu rất lớn dùng cách sort sao cho dữ liệu cần xóa xuống dưới sẽ nhanh hơn. Như trong cách 3 để xóa dòng chẵn cần sort thứ tự ngược lại. Lý do khi xóa dòng, excel phải đẩy các dòng dưới lên lấp chỗ trống nên nếu các dòng bị xóa ở trên thì cả khối dữ liệu ở hàng lẻ phải đẩy lên nên tốn thời gian hơn.
Rất hay. Tinh tế.ffffffffffffffffffffffffff
 
Web KT
Back
Top Bottom