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)



Loại bỏ 1 số dòng chứa giá trị theo yêu cầu trong bảng data là một yêu cầu gần như công ty nào cũng gặp.

Ví dụ (thực tế) trong cùng 1 file có yêu cầu thế này:

Yêu cầu 1:Lọc những ô cột K có chữ "set" và cột B rỗng, 

Yêu cầu 2:Lọc những ô cột C KO CÓ CHỮ SET và cột B KHÔNG RỖNG

=>Thỏa 1 trong 2 dk này sẽ bị loại trừ

Có nhiều cách:

Cách 1:Lọc tay, xóa tay theo hướng dẫn

Cách 2 :Dùng VBA (Nếu bảng của bạn đã nặng và bạn không muốn thêm bất kỳ cột nào-đây là cách mình luôn dùng)

Cách 3:(Khuyến khích) Thêm 1 cột ở cuối bảng và điền công thức để lọc ra những kết quả cần giữ và copy sang 1 bảng khác để làm tiếp (tránh xóa data), những dòng thỏa 1 trong hai điều kiện sẽ điền "Xoa"

=IF(OR((IFERROR(IF(SEARCH("set",K2),"o",""),"")&IF(B2="","k",""))="ok",(IFERROR(SEARCH("set",C2),"o")&IF(B2<>"","k",""))="ok"),"xoa","")

Trong đó:

  • Đk1: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
  • Đk2:IF(B2="","k",""))=Nếu ô B2 rỗng thì điền "K", nếu không thì để trống
  • Đk3:(IFERROR(SEARCH("set",C2),"o")= Nếu tìm không ra chữ "set" trong C2 thì điền "o"
  • Đk4:IF(B2<>"","k",""))=Nếu B2 không rỗng thì điền "k", nếu rỗng thì để trống.

IF(OR((IFERROR(IF(SEARCH("set",K2),"o",""),"")&IF(B2="","k",""))="ok",(IFERROR(SEARCH("set",C2),"o")&IF(B2<>"","k",""))="ok"),"xoa","")

=>Nếu dk1&dk2 mà ra "OK" hoặc dk3&dk4 mà ra "OK" thì điền "Xoa", không thì để trống.

Lưu ý: công thức trên dùng Search thay vì Find vì Find phân biệt chữ hoa ,chữ thường. Còn Search thì không.


Nhận xét