Rút gọn công thức IF với kết quả trả về là trong khoảng giá trị giới hạn cho phép

Liên hệ QC

Cu Tồ

Tìm đến kiến thức! ꧁༺ Cu Tồ ༻꧂
Tham gia
6/5/20
Bài viết
734
Được thích
346
Chào các Bác Thầy Anh Chị Em trong diễn đàn
Em có công thức if như sau với kết quả phép nhân trả về lớn hơn giới hạn được chỉ định thì sẽ lấy ngay giới hạn trên đó làm kết quả. vậy có cách nào hay hơn để thay thế công thức này không hoặc có cách nào để rút ngắn nó không ạ?

Mã:
E6=IF(C6=0,0,IF(C6=2,IF(D6*3<55,D6*3,55),IF(C6=3,IF(D6*10<155,D6*10,155),IF(C6=4,IF(D6*20<1555,D6*20,1555),IF(C6=5,IF(D6*50<2555,D6*50,2555),IF(C6=6,IF(D6*150<5555,D6*150,5555),IF(C6=7,IF(D6*300<15555,D6*300,15555),)))))))

file đính kèm ở dưới ạ.cảm ơn mọi người nhiều
 

File đính kèm

  • test.xlsx
    9 KB · Đọc: 25
Chào các Bác Thầy Anh Chị Em trong diễn đàn
Em có công thức if như sau với kết quả phép nhân trả về lớn hơn giới hạn được chỉ định thì sẽ lấy ngay giới hạn trên đó làm kết quả. vậy có cách nào hay hơn để thay thế công thức này không hoặc có cách nào để rút ngắn nó không ạ?

Mã:
E6=IF(C6=0,0,IF(C6=2,IF(D6*3<55,D6*3,55),IF(C6=3,IF(D6*10<155,D6*10,155),IF(C6=4,IF(D6*20<1555,D6*20,1555),IF(C6=5,IF(D6*50<2555,D6*50,2555),IF(C6=6,IF(D6*150<5555,D6*150,5555),IF(C6=7,IF(D6*300<15555,D6*300,15555),)))))))

file đính kèm ở dưới ạ.cảm ơn mọi người nhiều
Thử:
PHP:
=MIN((B6=F6:F11)*(C6*G6:G11),(B6=F6:F11)*(H6:H11))
 
Thử:
PHP:
=MIN((B6=F6:F11)*(C6*G6:G11),(B6=F6:F11)*(H6:H11))
Cảm ơn bác đã giúp đỡ,em thử kết quả là 0 bác ạ·
Bài đã được tự động gộp:

Thử:
PHP:
=MIN((B6=F6:F11)*(C6*G6:G11),(B6=F6:F11)*(H6:H11))
Em cũng không hiểu công thức này lắm nên không biết nó lỗi chỗ nào nữa
 
1596594648919.png
Em cũng không hiểu công thức này lắm nên không biết nó lỗi chỗ nào nữa
Công thức trên cần sửa lại như vầy:
=MIN(SUMPRODUCT((B6=$F$6:$F$11)*(C6*$G$6:$G$11)),SUMPRODUCT((B6=$F$6:$F$11)*($H$6:$H$11)))
Tuy nhiên, bài này có bảng tra khá tốt cho nên dùng công thức bảng tra (bài #4) tốt hơn.
 
Công thức trên cần sửa lại như vầy:
=MIN(SUMPRODUCT((B6=$F$6:$F$11)*(C6*$G$6:$G$11)),SUMPRODUCT((B6=$F$6:$F$11)*($H$6:$H$11)))
Tuy nhiên, bài này có bảng tra khá tốt cho nên dùng công thức bảng tra (bài #4) tốt hơn.
Lúc đầu em nháp ở ô B8 (nó trùng với dòng có điều kiện là 4) thế là hàm này ra kết quả luôn. Em copy gửi luôn, Sau nghĩ lại Min phải ra 0 mà sao đúng được nhưng thấy có bạn khác giúp rồi nên không xem lại nữa :D
 
Bạn thử như này xem có dễ hiểu hơn không =MIN(C6*VLOOKUP(B6;$F$6:$H$11;2;0);VLOOKUP(B6;$F$6:$H$11;3;0))
cảm ơn bác đã giúp đỡ công thức chạy đúng rồi ạ
Bài đã được tự động gộp:

Công thức trên cần sửa lại như vầy:
=MIN(SUMPRODUCT((B6=$F$6:$F$11)*(C6*$G$6:$G$11)),SUMPRODUCT((B6=$F$6:$F$11)*($H$6:$H$11)))
Tuy nhiên, bài này có bảng tra khá tốt cho nên dùng công thức bảng tra (bài #4) tốt hơn.
cảm ơn bác nhiều ạ. công thức bác sửa lại đã chạy đúng như ý muốn ạ
Bài đã được tự động gộp:

Lúc đầu em nháp ở ô B8 (nó trùng với dòng có điều kiện là 4) thế là hàm này ra kết quả luôn. Em copy gửi luôn, Sau nghĩ lại Min phải ra 0 mà sao đúng được nhưng thấy có bạn khác giúp rồi nên không xem lại nữa :D
hihi không sao bác ạ,cảm ơn bác vì đã nhiệt tình giúp ạ
Bài đã được tự động gộp:

các bác cho em hỏi là nếu như không dùng bảng tra cứu thì liệu có công thức nào tối ưu hơn không ạ? em tìm hiểu thêm cách thôi ạ
 
Lần chỉnh sửa cuối:
cảm ơn bác đã giúp đỡ công thức chạy đúng rồi ạ
Bài đã được tự động gộp:


cảm ơn bác nhiều ạ. công thức bác sửa lại đã chạy đúng như ý muốn ạ
Bài đã được tự động gộp:


hihi không sao bác ạ,cảm ơn bác vì đã nhiệt tình giúp ạ
Bài đã được tự động gộp:

các bác cho em hỏi là nếu như không dùng bảng tra cứu thì liệu có công thức nào tối ưu hơn không ạ? em tìm hiểu thêm cách thôi ạ
Mã:
=MIN(C6*INDEX({3;10;20;50;150;300},B6-1),INDEX({55;155;1555;2555;5555;15555},B6-1))
 
Web KT
Back
Top Bottom