2012-08-08 12 views
48

Làm cách nào để gán giá trị cho ô nếu hàng xóm chứa chuỗi cụ thể?NẾU ô chứa chuỗi

Ví dụ, lĩnh vực trong cột A:

dog11 
    cat22 
    cow11 
    chick11 
    duck22 
    cat11 
    horse22 
    cat33 

Cú pháp trong cột B sẽ là:

=IF(SEARCH("cat",A1),"cat",IF(SEARCH("22",A1),"22","none")) 

Nó luôn luôn nhặt các tế bào TRUE đầu tiên, nhưng giảm khi giá trị không phải là thật.

Trả lời

102

SEARCH không trả về 0 nếu không có kết quả phù hợp, nó trả về #VALUE!. Vì vậy, bạn phải bao gồm các cuộc gọi đến SEARCH với IFERROR.

Ví dụ ...

= IF (hàm IFERROR (TÌM KIẾM ("mèo", A1), 0), "con mèo", "none")

hoặc

= IF (IFERROR (TÌM KIẾM ("mèo", A1), 0), "mèo", NẾU (IFERROR (TÌM KIẾM ("22", A1), 0), "22", "none"))

Ở đây, IFERROR trả về giá trị từ SEARCH khi hoạt động; giá trị đã cho của 0 nếu không.

+1

Cảm ơn bạn đã trả lời. Không thể tin rằng MS đã không làm một phương pháp ngắn để xử lý điều này, chẳng hạn như "CONTAINS" trả về trực tiếp đúng hoặc sai hoặc "INDEX" trả về "-1" hoặc vị trí thực tế ... – AFract

4

Bạn có thể sử dụng OR() để biểu thức nhóm (cũng như AND()):

=IF(OR(condition1, condition2), true, false) 

=IF(AND(condition1, condition2), true, false) 

Vì vậy, nếu bạn muốn kiểm tra cho "mèo" và "22":

=IF(AND(SEARCH("cat",a1),SEARCH("22",a1)),"cat and 22","none") 
+0

Xin cảm ơn, nhưng tôi hy vọng sẽ nhận được hai kết quả khác nhau tại đây. khi một chuỗi có chứa "con mèo", tôi muốn nói "con mèo" khi nó chứa "22" tôi muốn nói 22. Trong ví dụ thế giới thực sẽ không có chồng chéo. cảm ơn – Csongor

+0

Và miễn là giá trị có một, nó sẽ tiếp tục ngắn mạch, trừ khi bạn nối. ví dụ. '= Kết hợp (NẾU (TÌM KIẾM (" mèo ", a1)," mèo "," "), NẾU (TÌM KIẾM (" 22 ", a1)," 22 "," "))' –