Xin công thức áp giá bán chạy theo biên độ sản lượng

Liên hệ QC

vietcuong87

Thành viên mới
Tham gia
15/2/19
Bài viết
4
Được thích
1
Gửi Anh/Chị em trong Diễn đàn

Nhờ ACE hỗ trợ mình công thức excel. Đề bài như sau :

Khi mua từ 100 (sp) tới 999 (sp) thì áp mức giá A
Còn mua từ 1000 trở lên (sp) thì áp mức giá B cho cả 1000 sản phẩm đó
Nếu mua từ 2000 (sp) trở lên thì áp mức giá C cho cả 2000 sản phẩm đó

Đề bài : Trong tháng mua 1500 (sp) thì làm sao để excel tự nhận biết và áp mức giá B
Lưu ý : Vì danh sách mã sản phẩm, mức giá của em có tới 1000 dòng, nên đang không thể dùng hàm IF thủ công được

ACE xem file đính kèm giúp em. Em cảm ơn
 

File đính kèm

  • Excel.xlsx
    11 KB · Đọc: 23
Công thức E16:
Mã:
=VLOOKUP(C16,OFFSET($C$5,MATCH($B16,$B$6:$B$11,0),,COUNTIF($B$6:$B$11,$B16),3),3,TRUE)
 
Mua 99 cái giá bao nhiêu?
Mua 99 cái giá vẫn là A ạ
Bài đã được tự động gộp:

Công thức E16:
Mã:
=VLOOKUP(C16,OFFSET($C$5,MATCH($B16,$B$6:$B$11,0),,COUNTIF($B$6:$B$11,$B16),3),3,TRUE)
Cảm ơn bác rất nhiều, công thức của Bác được 99% rồi ạ
Chỉ còn trường hợp là nếu sản lượng của mã A (ô C16 = 400 sp) thì kết quả trả về #N/A, còn đúng ra nó vẫn sẽ trả về giá là 700,000

Nhờ Bác giúp tiếp ạ :)
 
Gửi Anh/Chị em trong Diễn đàn

Nhờ ACE hỗ trợ mình công thức excel. Đề bài như sau :

Khi mua từ 100 (sp) tới 999 (sp) thì áp mức giá A
Còn mua từ 1000 trở lên (sp) thì áp mức giá B cho cả 1000 sản phẩm đó
Nếu mua từ 2000 (sp) trở lên thì áp mức giá C cho cả 2000 sản phẩm đó

Đề bài : Trong tháng mua 1500 (sp) thì làm sao để excel tự nhận biết và áp mức giá B
Lưu ý : Vì danh sách mã sản phẩm, mức giá của em có tới 1000 dòng, nên đang không thể dùng hàm IF thủ công được

ACE xem file đính kèm giúp em. Em cảm ơn
Ngoài các sản lượng 500 và 1000 còn có số khác không?
 
Mua 99 cái giá vẫn là A ạ
Bài đã được tự động gộp:


Cảm ơn bác rất nhiều, công thức của Bác được 99% rồi ạ
Chỉ còn trường hợp là nếu sản lượng của mã A (ô C16 = 400 sp) thì kết quả trả về #N/A, còn đúng ra nó vẫn sẽ trả về giá là 700,000

Nhờ Bác giúp tiếp ạ :)
Mình nghĩ bạn đang dùng logic của bạn để nghĩ là <500 cái thì vẫn lấy mức giá của 500 cái, tác giả viết code đâu có tự hiểu khái niệm này được.
vậy sao bạn không để 1 cái là 700k, 1000 cái là 600k.

bạn sửa lại E16
Mã:
=IFERROR(VLOOKUP(C16,OFFSET($C$5,MATCH($B16,$B$6:$B$11,0),,COUNTIF($B$6:$B$11,$B16),3),3,TRUE),MAX(OFFSET($E$5,MATCH($B16,$B$6:$B$11,0),,COUNTIF($B$6:$B$11,$B16),4)))
@leonguyenz vlookup mà appropriate match thì nó chỉ lấy gần nhất mà cận trên thôi bác nhỉ?
 
Lần chỉnh sửa cuối:
Ngoài các sản lượng 500 và 1000 còn có số khác không?
Nó có thể là
Mình nghĩ bạn đang dùng logic của bạn để nghĩ là <500 cái thì vẫn lấy mức giá của 500 cái, tác giả viết code đâu có tự hiểu khái niệm này được.
vậy sao bạn không để 1 cái là 700k, 1000 cái là 600k.

bạn sửa lại E16
Mã:
=IFERROR(VLOOKUP(C16,OFFSET($C$5,MATCH($B16,$B$6:$B$11,0),,COUNTIF($B$6:$B$11,$B16),3),3,TRUE),MAX(OFFSET($E$5,MATCH($B16,$B$6:$B$11,0),,COUNTIF($B$6:$B$11,$B16),4)))
@leonguyenz vlookup mà appropriate match thì nó chỉ lấy gần nhất mà cận trên thôi bác nhỉ?
Cảm ơn Bác, nhưng công thức của Bác em thấy chưa đúng ạ.
Của bác @leonguyenz đúng hơn, được 99% rồi :)
 
Nó có thể là

Cảm ơn Bác, nhưng công thức của Bác em thấy chưa đúng ạ.
Của bác @leonguyenz đúng hơn, được 99% rồi :)
Bạn sửa lại bảng giá bên trên cho phù hợp, nếu để bảng đó thì có thể sửa lại từ 0-999 là 1 giá, từ 1000 trở lên là 1 giá. Công thức trên áp dụng cho nhiều giá theo thứ tự tăng dần về số lượng bán. Nếu chỉ có 2 giá có thể áp dụng công thức sau:
Mã:
=OFFSET($E$5,MATCH($B16,$B$6:$B$11,0)+IF($C16<1000,0,1),)
 
Nó có thể là

Cảm ơn Bác, nhưng công thức của Bác em thấy chưa đúng ạ.
Của bác @leonguyenz đúng hơn, được 99% rồi :)
Sao sai nhỉ? Nếu bạn dùng CT mới của bác @leonguyenz thì khi bạn cài thêm 1 điều kiện giá vào là không ra nhé.
Bạn sửa lại bảng giá bên trên cho phù hợp, nếu để bảng đó thì có thể sửa lại từ 0-999 là 1 giá, từ 1000 trở lên là 1 giá. Công thức trên áp dụng cho nhiều giá theo thứ tự tăng dần về số lượng bán. Nếu chỉ có 2 giá có thể áp dụng công thức sau:
Mã:
=OFFSET($E$5,MATCH($B16,$B$6:$B$11,0)+IF($C16<1000,0,1),)
Còn CT của mình viết dựa trên CT gốc của bác @leonguyenz , chỉ thêm đk nếu NA thì lấy như thế nào thôi. Và với CT này thì bạn có thêm bao nhiêu đk giá thì vẫn thỏa (với đk là SL nhỏ nhất luôn là giá cao nhất)
 

File đính kèm

  • Excel.xlsx
    13.8 KB · Đọc: 9
Kết quả đạt đúng hay sai tùy thuộc vào yêu cầu rõ ràng hay không!?
Đồng thời biết thiết kế bảng phù hợp, thì kết quả sẽ chính xác, không thể có vụ 1% như bạn nêu.

Ví dụ: Nếu bạn có các mức rõ ràng từ 1 cái trở lên và phân như bảng sau:
Untitled.png
Thì khi thực hiện công thức sẽ trả về chính xác, bất kể các mã có nhiều ít các hạn mức.
Mã:
E16=1/LOOKUP(2,1/(C16>=$I$5:$Z$5)/OFFSET($I$5:$Z$5,MATCH(B16,$H$6:$H$8,),))
Enter, fill xuống.
Tạo mốc đầy đủ cho các giá, có thể phân nhỏ các mã có nhiều hạn mức số lượng.
Ví dụ: Mã A có 6 mốc, mã B: 4 mốc, và C: chỉ có 3 mốc​
Nếu SL thực tế khi so mà quá mốc cuối cùng sẽ lấy đơn giá của mốc cuối đó.​
Thân
 

File đính kèm

  • Excel.xlsx
    11.6 KB · Đọc: 7
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom