Nhờ giải thích cách dùng hàm SEARCH

Liên hệ QC

TrungChinhs

Thành viên tích cực
Tham gia
18/2/08
Bài viết
1,475
Được thích
2,469
Nghề nghiệp
Công chức
Nhờ các bạn giải thích giúp công thức này sai ở đâu mà không chặn hết lỗi #VALUE ?
=IF(OR(SEARCH("hỗ trợ";K10;1)>0;ISERROR(SEARCH("hỗ trợ";K10;1));ISERROR(VLOOKUP(F10;DonGia;3;0)));0;VLOOKUP(F10;DonGia;3;0))

Công thức này được ghép từ 3 công thức sau:
= IF(SEARCH("hỗ trợ";K10;1)>0; 0;VLOOKUP(F10;DonGia;3;0)
= IF(ISERROR(SEARCH("hỗ trợ";K10;1));0;VLOOKUP(F10;DonGia;3;0)
= IF(ISERROR(VLOOKUP(F10;DonGia;3;0));0;VLOOKUP(F10;DonGia;3;0))

Xin cảm ơn !
 
Lần chỉnh sửa cuối:
Nhờ các bạn giải thích giúp công thức này sai ở đâu mà không chặn hết lỗi #VALUE ?
=IF(OR(SEARCH("hỗ trợ";K10;1)>0;ISERROR(SEARCH("hỗ trợ";K10;1));ISERROR(VLOOKUP(F10;DonGia;3;0)));0;VLOOKUP(F10;DonGia;3;0))

Công thức này được ghép từ 3 công thức sau:
= IF(SEARCH("hỗ trợ";K10;1)>0; 0;VLOOKUP(F10;DonGia;3;0)
= IF(ISERROR(SEARCH("hỗ trợ";K10;1));0;VLOOKUP(F10;DonGia;3;0)
= IF(ISERROR(VLOOKUP(F10;DonGia;3;0));0;VLOOKUP(F10;DonGia;3;0))

Xin cảm ơn !
Tốt nhất bạn đưa 1 đoạn bảng tính có hàm trên lên đây sẽ dể nhận định hơn!
Nhưng tôi cũng có vài nhận xét thế này:
- Ta có 1 hàm, như ví dụ của bạn là
- Tiếp theo là hàm
ISERROR(SEARCH("hỗ trợ",K10,1))
- Cuối cùng là toán tử OR
OR(SEARCH("hỗ trợ",K10,1),ISERROR(SEARCH("hỗ trợ",K10,1)))
Vậy 2 hàm này e rằng không thể nằm chung trong toán tử OR được, vì:
Khi hàm 1 bị lổi thì dù có ISERROR phía sau nhưng hàm OR cũng sẽ bị lổi, không thể ra kết quả được
Theo tôi nên tách ra thành nhiều IF
ví dụ:
2 cái cùng dạng ISERROR thì cho chung vào OR được
 
Lần chỉnh sửa cuối:
Bạn có thể up file lên để mọi người được hiểu rõ công thức này hơn kô? Theo cách hiểu của tôi mục đích của hàm OR(SEARCH("hỗ trợ";K10;1)>0;ISERROR(SEARCH("hỗ trợ";K10;1));ISERROR(VLOOKUP(F10;DonGia;3;0))) để xác định giá trị bị lỗi phải kô? Nếu đúng thì bạn nên dùng hàm Type(K10=16) thì gọn hơn.
 
Nhờ các bạn giải thích giúp công thức này sai ở đâu mà không chặn hết lỗi #VALUE ?
=IF(OR(SEARCH("hỗ trợ";K10;1)>0;ISERROR(SEARCH("hỗ trợ";K10;1));ISERROR(VLOOKUP(F10;DonGia;3;0)));0;VLOOKUP(F10;DonGia;3;0))

Công thức này được ghép từ 3 công thức sau:
= IF(SEARCH("hỗ trợ";K10;1)>0; 0;VLOOKUP(F10;DonGia;3;0)
= IF(ISERROR(SEARCH("hỗ trợ";K10;1));0;VLOOKUP(F10;DonGia;3;0)
= IF(ISERROR(VLOOKUP(F10;DonGia;3;0));0;VLOOKUP(F10;DonGia;3;0))

Xin cảm ơn !

Không thể dùng cái SEARCH để làm điều kiện được so sánh được. Bởi khi dùng thuật toán so sánh (IF và OR) thì bạn phải dùng những hàm luận lý, là những hàm trả về kết quả là TRUE hoặc FALSE.

Hàm SEARCH trả về một con số, cho nên nó không phải là một hàm luận lý. Nếu như không tìm ra "hỗ trợ" trong F10, thì SEARCH báo lỗi #VALUE!, và hàm OR cũng bị #VALUE! theo luôn, do đó công thức của bạn sẽ luôn luôn báo lỗi #VALUE! khi không có chữ "hỗ trợ" trong F10.

Thêm điều nữa, bạn không cần thiết phải làm cái OR như vậy. Nếu như mục đích của bạn là: "Nếu như trong ô F10 không có chữ "hỗ trợ", thì trả về 0, còn không thì trả về giá trị dò tìm được (của F10) tại cột thứ 3 của dongia", thì bạn chỉ cần dùng công thức thứ 3, là được rồi: =IF(ISERROR(VLOOKUP...),0,VLOOKUP...)
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom