Mục lục
Bạn đang cố gắng tạo câu lệnh IF bằng văn bản ký tự đại diện nhưng lần nào cũng thất bại? Vấn đề không nằm ở công thức của bạn mà nằm ở chính hàm đó - Excel IF không hỗ trợ các ký tự đại diện. Tuy nhiên, có một cách để làm cho nó hoạt động đối với khớp một phần văn bản và hướng dẫn này sẽ hướng dẫn bạn cách thực hiện.
Bất cứ khi nào bạn muốn thực hiện khớp một phần hoặc mờ trong Excel, giải pháp rõ ràng nhất là để sử dụng ký tự đại diện. Nhưng nếu một chức năng cụ thể mà bạn cần sử dụng không hỗ trợ các ký tự đại diện thì sao? Thật không may, Excel IF là một trong những chức năng như vậy. Điều này đặc biệt đáng thất vọng khi xét rằng các hàm "có điều kiện" khác như COUNTIF, SUMIF và AVERAGEIFS hoạt động hoàn toàn tốt với các ký tự đại diện.
May mắn thay, đó không phải là trở ngại có thể ngăn người dùng Excel sáng tạo :) Bằng cách kết hợp IF với các hàm khác, bạn có thể buộc nó đánh giá khớp một phần và nhận được một giải pháp thay thế tuyệt vời cho công thức ký tự đại diện Excel IF.
Tại sao hàm Excel IF có ký tự đại diện không hoạt động
Trong bảng mẫu bên dưới, giả sử bạn muốn kiểm tra xem ID trong cột đầu tiên có chứa chữ "A" hay không. Nếu tìm thấy - hiển thị "Có" trong cột B, nếu không - hiển thị "Không".
Có vẻ như bao gồm văn bản ký tự đại diện trong kiểm tra logic sẽ là một giải pháp dễ dàng:
=IF(A2="*a*","Yes", "No")
Nhưng đáng tiếc là nó không hoạt động. Công thức trả về "Không" cho tất cả các ô, ngay cả những ô chứa "A":
Tại saomột câu lệnh NẾU ký tự đại diện không thành công? Từ tất cả các lần xuất hiện, Excel không nhận ra các ký tự đại diện được sử dụng với dấu bằng hoặc các toán tử logic khác. Xem kỹ danh sách các hàm hỗ trợ ký tự đại diện, bạn sẽ nhận thấy rằng cú pháp của chúng giả định văn bản ký tự đại diện xuất hiện trực tiếp trong một đối số như sau:
=COUNTIF(A2:A10, "*a*")
Excel NẾU chứa một phần văn bản
Bây giờ bạn đã biết lý do tại sao công thức IF ký tự đại diện không thành công, hãy thử tìm hiểu cách làm cho công thức đó hoạt động. Đối với điều này, chúng ta chỉ cần nhúng một hàm chấp nhận các ký tự đại diện trong kiểm tra logic của IF, cụ thể là hàm COUNTIF:
IF(COUNTIF( cell, "* text* "), value_if_true, value_if_false)Với cách tiếp cận này, IF không gặp vấn đề gì trong việc hiểu các ký tự đại diện và xác định chính xác các ô chứa "A" hoặc "a" (vì COUNTIF không phân biệt chữ hoa chữ thường):
=IF(COUNTIF(A2, "*a*"),"Yes", "No")
Công thức này chuyển đến ô B2 hoặc bất kỳ ô nào khác trong hàng 2, sau đó bạn có thể kéo công thức xuống bao nhiêu ô tùy ý:
Giải pháp này cũng có thể được sử dụng để định vị chuỗi của một mẫu cụ thể . Giả sử chỉ những ID gồm 2 nhóm gồm 2 ký tự được phân tách bằng dấu gạch ngang là hợp lệ, bạn có thể sử dụng dấu "??-??" chuỗi ký tự đại diện để xác định chúng:
=IF(COUNTIF(A2, "??-??"), "Valid", "")
Cách thức hoạt động của công thức này:
Đối với bài kiểm tra logic của NẾU, chúng tôi sử dụng hàm COUNTIF để đếm số ô khớp với ký tự đại diện đã chỉ địnhsợi dây. Vì phạm vi tiêu chí là một ô duy nhất (A2), nên kết quả luôn là 1 (tìm thấy kết quả khớp) hoặc 0 (không tìm thấy kết quả khớp). Cho rằng 1 tương đương với TRUE và 0 tương đương với FALSE, công thức trả về "Hợp lệ" (value_if_true) khi số đếm là 1 và một chuỗi trống (value_if_false) khi số đếm là 0.
Công thức IF ISNUMBER SEARCH cho một phần các khớp
Một cách khác để buộc Excel IF hoạt động đối với khớp một phần văn bản là bao gồm hàm TÌM hoặc TÌM KIẾM trong kiểm tra logic. Sự khác biệt là TÌM phân biệt chữ hoa chữ thường trong khi TÌM KIẾM thì không.
Vì vậy, tùy thuộc vào việc bạn muốn coi chữ thường và chữ hoa là các ký tự giống nhau hay khác nhau, một trong các công thức này sẽ có tác dụng:
Công thức không phân biệt chữ hoa chữ thường để đối sánh một phần:
IF(ISNUMBER(SEARCH(" text", cell)), value_if_true, value_if_false ) Công thứcPhân biệt chữ hoa chữ thường để khớp một phần:
IF(ISNUMBER(FIND(" text", cell)), value_if_true, value_if_false )Vì cả hai chức năng đều được thiết kế để thực hiện kiểu đối sánh "ô chứa", ký tự đại diện không thực sự cần thiết trong trường hợp này.
Ví dụ: để phát hiện ID chứa "A" hoặc "a" , công thức là:
=IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")
Để chỉ tìm kiếm chữ "A" viết hoa và bỏ qua "a", công thức là:
=IF(ISNUMBER(FIND("A", A2)), "Yes", "No")
Ở B6 trong ảnh chụp màn hình bên dưới, bạn có thể quan sát thấy sự khác biệt trong kết quả:
Cách thức hoạt động của công thức này:
Tại Trung tâmcông thức, có sự kết hợp giữa ISNUMBER và TÌM KIẾM (hoặc TÌM KIẾM):
ISNUMBER(SEARCH("A", A2))
Hàm TÌM KIẾM tìm kiếm văn bản đã chỉ định ("A" trong ví dụ này) và trả về vị trí của nó trong một chuỗi trong A2. Nếu không tìm thấy văn bản, lỗi #VALUE sẽ được trả về. Vì cả TÌM KIẾM và TÌM KIẾM đều được thiết kế để thực hiện kiểu đối sánh "ô chứa", ký tự đại diện không thực sự cần thiết trong trường hợp này.
Hàm ISNUMBER chuyển đổi một số thành TRUE và bất kỳ giá trị nào khác bao gồm cả lỗi thành FALSE . Giá trị logic đi trực tiếp vào kiểm tra logic của IF. Trong trường hợp của chúng tôi, A2 chứa "A", vì vậy ISNUMBER trả về TRUE:
IF(TRUE, "Yes", "No")
Kết quả là, IF trả về giá trị được đặt cho đối số value_if_true , đó là "Yes".
Câu lệnh NẾU HOẶC trong Excel với các ký tự đại diện
Bạn cần xác định các ô có chứa một trong các chuỗi văn bản ký tự đại diện? Trong trường hợp này, bạn có thể kết hợp câu lệnh IF OR cổ điển với công thức COUNTIF hoặc ISNUMBER SEARCH đã thảo luận ở trên.
Ví dụ: để tìm kiếm "aa" OR "bb" trong A2 bỏ qua chữ cái viết hoa và trả về " Có" nếu tìm thấy một trong hai hàm, hãy sử dụng một trong các công thức sau:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")
hoặc
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")
Cộng hai hàm COUNTIF cũng sẽ hoạt động. Trong trường hợp này, dấu cộng hoạt động giống như toán tử OR:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")
Thay vì mã hóa cố định các chuỗi ký tự đại diện trong công thức, bạn có thể nhập chúng vào các ô riêng biệt, chẳng hạn như D2 và F2, như minh họa trong ảnh chụp màn hình bên dưới. Xin lưu ý rằng nhữngcác tham chiếu ô bị khóa bằng ký hiệu $ để công thức sao chép chính xác vào các ô bên dưới:
=IF(OR(COUNTIF(A2, "*"&$D$2&"*"), COUNTIF(A2, "*"&$F$2&"*")), "Yes", "")
Các công thức trên hoạt động tốt cho 2 kết quả khớp từng phần , nhưng nếu bạn đang tìm kiếm 3 hoặc nhiều hơn, chúng sẽ trở nên quá dài. Trong trường hợp này, lý do là để tiếp cận tác vụ theo cách khác:
Cung cấp nhiều chuỗi con cho hàm TÌM KIẾM trong một hằng số mảng, đếm các số được trả về và kiểm tra xem kết quả có lớn hơn 0 không (điều này có nghĩa là rằng ít nhất một trong các chuỗi con nếu tìm thấy):
=IF(COUNT(SEARCH({"aa","bb"}, A2))>0, "Yes", "")
Bằng cách này, bạn sẽ nhận được kết quả chính xác như vậy với công thức nhỏ gọn hơn:
Công thức IF AND trong excel với các ký tự đại diện
Khi bạn muốn kiểm tra xem một ô có chứa hai hoặc nhiều chuỗi con khác nhau hay không, cách dễ nhất là sử dụng hàm COUNTIFS với các ký tự đại diện để kiểm tra logic.
Giả sử bạn muốn định vị các ô trong cột A chứa cả "b" VÀ "2". Để hoàn thành, hãy sử dụng "*b*" và "*2*" cho tiêu chí của COUNTIFS và A2 cho phạm vi tiêu chí:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Yes", "")
Một cách khác là sử dụng công thức IF AND cùng nhau với TÌM KIẾM LÀ SỐ:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")
Mặc dù chúng tôi không bao gồm bất kỳ ký tự đại diện nào trong công thức này, nhưng nó hoạt động giống như tìm kiếm hai chuỗi ký tự đại diện ("*b*" và "*2*" ) trong cùng một ô.
Tất nhiên, không có gì ngăn cản bạn nhập các giá trị tìm kiếm vào các ô được xác định trước, trong trường hợp của chúng tôi là D2 và F2 và cung cấpô tham chiếu đến công thức:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")
Nếu bạn thích sử dụng các công thức nhỏ gọn hơn bất cứ khi nào có thể, thì bạn có thể thích cách tiếp cận hằng số mảng hơn. Công thức TÌM KIẾM ĐẾM NẾU rất giống với ví dụ trước, nhưng vì lần này cả hai chuỗi con phải xuất hiện trong ô A2 nên chúng tôi kiểm tra xem số đếm có bằng 2 không:
=IF(COUNT(SEARCH({"b","2"}, A2))=2, "Yes", "")
Đây là những phương pháp chính để sử dụng ký tự đại diện trong câu lệnh IF trong Excel. Nếu bạn biết bất kỳ giải pháp nào khác, những người dùng khác chắc chắn sẽ đánh giá cao nếu bạn chia sẻ kinh nghiệm của mình trong các nhận xét. Tôi cảm ơn bạn đã đọc và hy vọng sẽ gặp bạn trên blog của chúng tôi vào tuần tới!
Sách bài tập thực hành để tải xuống
Ví dụ về công thức ký tự đại diện Excel IF (tệp .xlsx)