• Làm cách nào để xóa các dòng chẵn/lẻ?

      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:



      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)




      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.




      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.



      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:




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



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



      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.




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




      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:


      Code:
      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)
      Góp ý 2 Góp ý
      1. Hau151978's Avatar
        Hau151978 -
        Đố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.
      1. kbw1's Avatar
        kbw1 -
        Trích Nguyên văn bởi Hau151978 View Post
        Đố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