Công thức dùng hàm điều kiện if, với điều kiện chỉ xét chữ đầu

  • Thread starter Thread starter vinhbinh
  • Ngày gửi Ngày gửi
Liên hệ QC

vinhbinh

Thành viên mới
Tham gia
6/11/07
Bài viết
3
Được thích
6
Em có bài tập thế này, em sử dụng hàm if.
Ví dụ mặt hàng có chữ bắt đầu là sách thì chiết khấu 10%, nên dùng trong điều kiện là D5 = "Sách*", nó không tính đúng, không biết trong bài này phải làm sao nhỉ, em gửi file đính kèm.

Bảng sản phẩm

STT Tên sản phẩm Giá sản phẩm Chiết khấu Sản phẩm có chữ đầu
1 Sách loại 1 23000 Bút 10%
2 Sách loại 2 120000 Sách 20%
3 Bút bi 18000 Vở 15%
4 Bút chì 4300 Khác 8%
5 Bút máy 52000
6 Vở ô ly 9800
7 Vở tệp 150000
 

File đính kèm

Bạn dùng công thức này chẳng phải là ổn sao? Tại ô D5 gõ công thức này vào. Rồi Fill xuống là xong. =VLOOKUP(LEFT(B5,FIND(" ",B5,1)-1),$G$5:$H$8,2) Thân.
 
Lần chỉnh sửa cuối:
Thế có cách nào để thay thế cho một loạt các ký tự trong chuỗi không ạ, nếu đề ra là bắt đầu không bằng 1 từ thì sao ạ.

Tại đây là ví dụ em gõ lại để hỏi, chứ bài nó một loạt ý ạ, nó bắt đầu có thể là 2 ký tự đầu, nên em nghĩ phải dùng điều kiện kiểu "Sách loại --một cái gì đó biểu hiện chuỗi bất ký, em tưởng là *--"
 
Chỉnh sửa lần cuối bởi điều hành viên:
Tại đây là ví dụ em gõ lại để hỏi, chứ bài nó một loạt ý ạ, nó bắt đầu có thể là 2 ký tự đầu, nên em nghĩ phải dùng điều kiện kiểu "Sách loại --một cái gì đó biểu hiện chuỗi bất ký, em tưởng là *--"

Chào bạn,
Như thế này cho dễ hình dung nhé!
1. Bạn phải có một danh mục điều kiện chiết khấu trước cái đã.
2. Căn cứ vào danh mục đó, ta xét trong dữ liệu nhập vào, nếu thỏa điều kiện trong danh mục thì cho ra % chiết khấu!

Công việc hiện tại bạn nên làm là đưa ra cái danh mục điều kiện chiết khấu cho rõ ràng trước, vậy nhé bạn!
 
Bạn dùng công thức này chẳng phải là ổn sao? Tại ô D5 gõ công thức này vào. Rồi Fill xuống là xong.
=VLOOKUP(LEFT(B5,FIND(" ",B5,1)-1),$G$5:$H$8,2)
Thân.
Trong bảng chiết khấu có loại Khác nên tôi nghĩ nên sửa lại công thức một tí cho phù hợp. Ví dụ:
=IF(ISERROR(VLOOKUP(LEFT(B5,FIND(" ",B5,1)-1),$G$5:$H$8,2)),$H$8,VLOOKUP(LEFT(B5,FIND(" ",B5,1)-1),$G$5:$H$8,2))
 
Trong bảng chiết khấu có loại Khác nên tôi nghĩ nên sửa lại công thức một tí cho phù hợp. Ví dụ:
=IF(ISERROR(VLOOKUP(LEFT(B5,FIND(" ",B5,1)-1),$G$5:$H$8,2)),$H$8,VLOOKUP(LEFT(B5,FIND(" ",B5,1)-1),$G$5:$H$8,2))
Công thức này cũng chưa chính xác tuyệt đối. Bạn thử sang bên bản tra cứu, đổi chỗ Sách và Bút, rồi nhìn lại kết quả xem... Công thức này đúng, chỉ "may mắn" là bên bản tra cứu đang xếp theo ABC...
Nếu muốn rằng, cho dù bên bản tra cứu có thêm bao nhiêu thứ khác vào và chưa Sort lại, mà công thức vẫn luôn luôn đúng, thì bạn nên dùng thêm tham số thứ tư cho hàm VLOOKUP là 0.
=IF(ISERROR(VLOOKUP(LEFT(B5,FIND(" ",B5,1)-1),$G$5:$H$8,2)),$H$8,VLOOKUP(LEFT(B5,FIND(" ",B5,1)-1),$G$5:$H$8,2,0))​
 
Công thức này cũng chưa chính xác tuyệt đối. Bạn thử sang bên bản tra cứu, đổi chỗ Sách và Bút, rồi nhìn lại kết quả xem... Công thức này đúng, chỉ "may mắn" là bên bản tra cứu đang xếp theo ABC...
Nếu muốn rằng, cho dù bên bản tra cứu có thêm bao nhiêu thứ khác vào và chưa Sort lại, mà công thức vẫn luôn luôn đúng, thì bạn nên dùng thêm tham số thứ tư cho hàm VLOOKUP là 0.
=IF(ISERROR(VLOOKUP(LEFT(B5,FIND(" ",B5,1)-1),$G$5:$H$8,2)),$H$8,VLOOKUP(LEFT(B5,FIND(" ",B5,1)-1),$G$5:$H$8,2,0))
Ẹc ẹc! Không lẽ chỉ vì thiếu một dấu (,) mà bảo công thức của tôi cho kết quả đúng chỉ là may mắn sao. Chỉ là sơ xuất thôi chứ không phải là không biết đến nỗi phải ngồi mò để rồi ra kết quả một cách may mắn.

Với lại công thức này tôi sửa lại từ công thức của Po_Pikachu, công thức của Po_Pikachu đã thiếu tham số này từ đầu, lúc sửa lại tôi đã không chú ý.
 
Lần chỉnh sửa cuối:
Ẹc ẹc! Không lẽ chỉ vì thiếu một dấu (,) mà bảo công thức của tôi cho kết quả đúng chỉ là may mắn sao. Chỉ là sơ xuất thôi chứ không phải là không biết đến nỗi phải ngồi mò để rồi ra kết quả một cách may mắn.

Với lại công thức này tôi sửa lại từ công thức của Po_Pikachu, công thức của Po_Pikachu đã thiếu tham số này từ đầu, lúc sửa lại tôi đã không chú ý.
Ah... ha... Cái... Ẹc... Ẹc... này là hàng độc quyền của tôi à nha (đã đăng ký)
Tôi thấy hầu hết các bạn đều dùng hàm FIND để tìm khoảng trắng... vậy các bạn thử phương pháp này xem thế nào nha:
=LOOKUP(1,MATCH("*"&$G$5:$G$8&"*",$B5,0),$H$5:$H$8)
Đương nhiên đây chỉ là gợi ý ---> Còn phải thêm vài món nữa để nếu không tìm ra thì xem nó là KHÁC = 8%
Ẹc... Ẹc...
 
Ah... ha... Cái... Ẹc... Ẹc... này là hàng độc quyền của tôi à nha (đã đăng ký)
Tôi thấy hầu hết các bạn đều dùng hàm FIND để tìm khoảng trắng... vậy các bạn thử phương pháp này xem thế nào nha:
=LOOKUP(1,MATCH("*"&$G$5:$G$8&"*",$B5,0),$H$5:$H$8)
Đương nhiên đây chỉ là gợi ý ---> Còn phải thêm vài món nữa để nếu không tìm ra thì xem nó là KHÁC = 8%
Ẹc... Ẹc...
Bác làm gì mà ghê thế, thôi thì tôi đổi thành Ọc ọc! Không có ăn cắp bản quyền đâu nhá.
Công thức của bác là một ý tưởng mới (vì ít người dùng như bác nói :D), hay. Có thể áp dụng cho trường hợp giá trị trong bảng dò gồm hơn một từ. Nhưng tôi nghĩ nên bỏ đoạn "*"&.Vì nếu không bỏ, khi gặp một loại hàng bao gồm nhiều trị dò nó sẽ không biết lấy cái nào để dò. Ví dụ như khi gặp "Bút chuyên dụng cho vở ô ly" Thì nó sẽ dò theo Bút hay theo vở //////. Vì vậy công thức nên sửa lại là:
=LOOKUP(1,MATCH($G$5:$G$8&"*",$B5,0),$H$5:$H$8)
 
câu hỏi

mình mới gia nhập diễn đàn, bạn nào cao thủ giúp mình với nhé; Giả sử có 4 cột là điểm văn, điểm toán, điểm lý, vậy để xếp loại học lực cho từng người với điều kiện VD: các môn có số điểm lớn hơn 3 và điểm trung bình lớn hơn 5 xếp loại trung bình, các môn lớn hơn 5 và điểm trung bình lớn hơn 6.5 xếp loại khá. Và các điều kiện tương tự. Mình sẽ tôn làm sư phụ đấy, giải thích và gửi bài qua emai của mình càng tốt. DC thanhlongxmd@gmail.com
 
Web KT

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

Back
Top Bottom