Data processing Part 1: Cách xử lý khi cần xóa một số dòng theo nhiều điều kiện "contain" trên nhiều cột(Dùng công thức)
Trong công việc xử lý dữ liệu hàng ngày, việc lọc bỏ các dòng thừa dựa trên nhiều điều kiện khác nhau là yêu cầu mà hầu như công ty nào cũng gặp phải.
Giả sử bạn có một file dữ liệu và cần loại bỏ các dòng thỏa mãn một trong hai yêu cầu sau:
Yêu cầu 1: Cột K có chữ "set" và cột B rỗng.
Yêu cầu 2: Cột C KHÔNG có chữ "set" và cột B KHÔNG rỗng.
Nếu làm thủ công thì rất dễ nhầm lẫn. Dưới đây là 3 cách để giải quyết vấn đề này:
Cách 1: Lọc và xóa tay
Dành cho những bảng dữ liệu ngắn, ít dòng. Bạn dùng chức năng Filter có sẵn trong Excel để lọc từng điều kiện rồi xóa.
Cách 2: Sử dụng VBA
Đây là cách mình luôn ưu tiên dùng nếu bảng dữ liệu quá nặng và bạn không muốn chèn thêm bất kỳ cột phụ nào để giữ file gọn nhẹ.
Cách 3: Thêm cột phụ dùng công thức (Khuyên dùng)
Đây là cách an toàn nhất để tránh xóa nhầm dữ liệu gốc. Chúng ta sẽ thêm một cột ở cuối bảng, dùng công thức để đánh dấu dòng nào cần xóa, sau đó lọc và copy những dòng sạch sang một sheet khác.
Công thức tại ô cuối dòng (giả sử dòng 2):
=IF(OR((IFERROR(IF(SEARCH("set",K2),"o",""),"")&IF(B2="","k",""))="ok",(IFERROR(SEARCH("set",C2),"o")&IF(B2<>"","k",""))="ok"),"xoa","")
Giải thích chi tiết logic công thức:
Đk 1: IFERROR(IF(SEARCH("set",K2),"o",""),""):Nếu ô K2 chứa chữ "set" thì điền "o", nếu không có thì để trống.
Đk 2: IF(B2="","k",""):Nếu ô B2 rỗng thì điền "k", nếu không thì để trống.
Đk 3: IFERROR(SEARCH("set",C2),"o"): Nếu KHÔNG tìm thấy chữ "set" trong C2 thì điền "o".
Đk 4: IF(B2<>"","k",""):Nếu B2 không rỗng thì điền "k", nếu rỗng thì để trống.
Kết quả cuối cùng:
Nếu (Đk1 & Đk2) ghép lại thành chữ "ok" HOẶC (Đk3 & Đk4) ghép lại thành chữ "ok" thì Excel sẽ hiện chữ "Xoa". Ngược lại thì để trống.
Lưu ý nhỏ: dùng SEARCH mà không dùng FIND?
Vì SEARCH không phân biệt chữ hoa hay chữ thường (ví dụ: "SET" hay "set" đều được), còn FIND thì bắt lỗi chính xác từng kiểu chữ, sẽ dễ bị sót dữ liệu.
Nhận xét
Đăng nhận xét