Cách sử dụng hàm

  • Thread starter lathanhtom
  • Ngày gửi
L

lathanhtom

Guest
8/8/05
46
0
0
47
hcmc
Xin các bạn giúp dùng hàm nào trong excel tot nhất cho trường hợp dưới đây:
công ty có chính sách khuyến mãi cho khách hàng nếu đạt doanh số 10 triệu khuến mãi 0.5 chỉ vàng;30 tr là 1;50 tr là 2.5;...; 400 là 27; 500 là 40 chỉ. Ví dụ khách hàng có doanh số đạt 432 tr thì sẽ nhận được 27+1 chỉ vàng tương ứng từng mức khuyến mãi nêu trên. Tôi sử dụng hàm if nhưng qúa dài dòng và rắc rối.Please help :wall:
 
Khóa học Quản trị dòng tiền
adam_tran

adam_tran

Guitar inspiration
17/5/05
1,374
36
48
46
Goooogle
Nếu bạn dùng VBA thì rất đơn giãn. Còn không bạn tạo một vùng rồi dùng hàm VLOOKUP với đối số cuối cùng là 1 (thay vì 0=False như bình thường). Bạn tìm hiểu thêm về VLOOKUP 1 chút, sẽ hữu dụng đấy.
 
Sửa lần cuối:
T

Tuanktcdcn

Lão già ham vui
18/6/04
549
52
28
47
Hà Nội
www.bluesofts.net
Nếu điều kiện doanh số là "một điểm" (theo VD của bạn) thì dùng VLookup là tối ưu, còn nếu là một khoảng [a-b] thì phải dùng If(And(..) khi số hàm If lồng nhau tới 7 cấp thì hãy tách ra và làm phép cộng (+) các If lại với nhau.
Chúc bạn thành công!
 
L

lathanhtom

Guest
8/8/05
46
0
0
47
hcmc
Tôi cũng đã sử dụng Vlookup,match... rồi nhưng vẫn chưa chính xác .Tố ví dụ doanh số đạt được là 48 tr như vậy khách hàng sẽ nhận 1 chỉ cho doanh số vượt 30tr phần còn lại 48Tr -30 =18 tr sẽ nhận thêm 0.5 chỉ nữa (theo mức 10tr là 0.5 chỉ). Vậy làm sao có hàm tổng qúat cho trường hợp này.
 
Q

quocnghia

Guest
24/3/04
64
0
6
lathanhtom nói:
Xin các bạn giúp dùng hàm nào trong excel tot nhất cho trường hợp dưới đây:
công ty có chính sách khuyến mãi cho khách hàng nếu đạt doanh số 10 triệu khuến mãi 0.5 chỉ vàng;30 tr là 1;50 tr là 2.5;...; 400 là 27; 500 là 40 chỉ. Ví dụ khách hàng có doanh số đạt 432 tr thì sẽ nhận được 27+1 chỉ vàng tương ứng từng mức khuyến mãi nêu trên. Tôi sử dụng hàm if nhưng qúa dài dòng và rắc rối.Please help :wall:

Lâu rồi không sử dụng Excel, nếu có sai, xin lượng thứ!
 

Đính kèm

  • index.rar
    2.1 KB · Lượt xem: 268
L

lathanhtom

Guest
8/8/05
46
0
0
47
hcmc
Cám ơn bạn quocnghia,nhưng không phải cứ 20tr doanh số là một mức khuyết mãi đâu. Cụ thể chính sách khuyết mãi công ty tôi như sau:
Doanh số Khuyến mãi
10,000,000 0.5
20,000,000 1.0
30,000,000 1.5
50,000,000 2.5
70,000,000 4.0
100,000,000 2.5
150,000,000 9.0
200,000,000 13.0
300,000,000 20.0
400,000,000 27.0
500,000,000 40.0
Theo công thức của bạn nếu 48 tr thì chỉ có 1.5 trong khi phải là 2 chỉ. Hoặc bạn cứ thử mức 65 tr sẽ không có kết qủa đúng.Thanks
 
T

Tuanktcdcn

Lão già ham vui
18/6/04
549
52
28
47
Hà Nội
www.bluesofts.net
Hàm cực chuẩn đây!

Thuongdoanhso.GIF

Bài toán này nếu dùng công thức Excel đơn thuần thì dài lê thê mà không giải quyết được một cách linh động cho Cty.
I dùng VBA với kỹ thuật hàm lồng hàm để tra tìm tới doanh số cuối cùng có thể được thưởng. Dù sau này Cty bạn có thêm bao nhiêu dòng điều kiện khuyến mãi thì hàm Nhanthuong vẫn luôn đúng.
Để hiểu hàm này, trên EXCEL bạn phải hiểu các hàm LOOKUP, VLOOKUP cùng với kỹ thuật VBA. Nếu ngại thì copy thẳng vào là dùng được luôn.
Có kiến thức về VBA chúng ta có thể làm được nhiều thứ mà EXCEL đơn thuần không thể làm được!
 

Đính kèm

  • Thuong theo doanh so.zip
    10 KB · Lượt xem: 380
W

workman

Guest
22/7/05
372
2
0
51
Ho Chi Minh
Bác Tuân nhanh quá nhỉ. Đúng là đôi lúc lập trình là phương pháp giản tiện và nhanh nhất. Chỉ sợ có nhiều bạn ngại không muốn (hoặc không biết cách) sử dụng thôi.

Tôi có cách này không cần phải lập trình VBA, bạn lathanhtom xem thử xem có dùng được không nhé. Cách này dùng hàm vlookup thuần túy thôi. Hàm cũng gọn, chỉ dùng hai hàm vlookup lồng vào với nhau.
 

Đính kèm

  • Book1.zip
    1.7 KB · Lượt xem: 272
adam_tran

adam_tran

Guitar inspiration
17/5/05
1,374
36
48
46
Goooogle
workman nói:
Tôi có cách này không cần phải lập trình VBA, bạn lathanhtom xem thử xem có dùng được không nhé. Cách này dùng hàm vlookup thuần túy thôi. Hàm cũng gọn, chỉ dùng hai hàm vlookup lồng vào với nhau.
Công thức bác sẽ sai nặng khi doanh số >=1.000.000.000 :biggrin:
Hì hì, bác Workman sao không dùng ngay phép trừ thay cho hàm Mod nhỉ.
=VLOOKUP(A20;$A$2:$C$17;2)+VLOOKUP(A20-VLOOKUP(A20;$A$2:$C$17;1);$A$2:$B$17;2)
Tuy vậy trong công thức trên nếu doanh số lớn hơn 2 lần ngưỡng maximum (1 tỷ) thì công thức cũng sẽ sai. :error:
Bạn lalanhtom không post yêu cầu cụ thể thì khó hình dung lắm. Cũng có thể lập được = Excel thuần túy nhưng mà... từ từ.
 
Sửa lần cuối:
L

lathanhtom

Guest
8/8/05
46
0
0
47
hcmc
Hàm của bác Tuân viết rất tuyệt,tôi đã áp dụng thành công ,nhưng tôi "mù" về VBA nên không hiểu lắm về ý nghĩa hàm của bác,bác làm ơn chỉ tôi đọc sách nào (dể dể thôi) hoặc thọ giáo ai để biêt một chút về VBA .Còn công thức của bác adam tran và workman nếu thử doanh số 145tr hoặc 195tr là cho kết qủa không đúng ,yêu cầu cụ thể thì nhu bác Tuân liêt kê ra đó nhưng hình như công thức excel không giải quyết được .Cám ơn các bác nhiều
 
Sửa lần cuối:
T

Tuanktcdcn

Lão già ham vui
18/6/04
549
52
28
47
Hà Nội
www.bluesofts.net
Bài toán này nếu chỉ giới hạn doanh số trong một phạm vi nào đó thì có thể dùng công thức EXCEL (không dùng VBA), các công thức trên EXCEL dù có thông minh đến mấy cũng chỉ mang tính "liệt kê" giới hạn. Nhưng doanh số là một số không có giới hạn ta không thể liệt kê hết được, trong công thức phải thể hiện được tính "lặp" truy tìm tới giá trị cuối cùng. Vì vậy VBA là giải pháp cuối cùng!

Các công thức mang tính "lặp" chỉ VBA mới có thể giải quyết toàn diện được với điều kiện phải dùng thuật toán lặp. Microsoft đưa VBA vào môi trường EXCEL cà có lý do đấy chứ!

To lathanhtom: Nếu bạn muốn tìm hiểu VBA thì trước hết phải hiểu cách dùng một số hàm EXCEL cũng như các thành phần của nó (cái này chắc bạn biết rồi), tiếp theo bạn hãy tìm trong E.Book, Thư viện của WKT, nếu không bạn hãy tìm đọc sách "Lập trình Visual Basic6.0 cơ bản" vì VB và VBA là anh em rồi. Sau khi đã tìm hiểu cơ bản về lập trình thì bạn hãy kết hợp với công cụ "Record Macro" trên EXCEL lúc đó cánh cửa bước vào thế giới công nghệ mới mở ra.

Nếu bạn ở HCM thì có nhiều cao thủ để bạn học lắm họ ngay trong EFC này, còn ở HN thì có thể tôi hoặc là ai đó sẵn sàng có thể giúp bạn trong phạm vi hiểu biết nhất định.
 
W

workman

Guest
22/7/05
372
2
0
51
Ho Chi Minh
lathanhtom nói:
Hàm của bác Tuân viết rất tuyệt,tôi đã áp dụng thành công ,nhưng tôi "mù" về VBA nên không hiểu lắm về ý nghĩa hàm của bác,bác làm ơn chỉ tôi đọc sách nào (dể dể thôi) hoặc thọ giáo ai để biêt một chút về VBA .Còn công thức của bác adam tran và workman nếu thử doanh số 145tr hoặc 195tr là cho kết qủa không đúng ,yêu cầu cụ thể thì nhu bác Tuân liêt kê ra đó nhưng hình như công thức excel không giải quyết được .Cám ơn các bác nhiều

Xin lỗi bạn là tôi tự động sửa số vàng thưởng ở mức 100 triệu, tại tôi thấy vô lý quá ấy mà. Ai đời doanh số bảy mươi triệu được thưởng bốn chỉ vàng, trong khi 100 triệu chỉ được thưởng có 2.5. Nếu bạn sửa lại thì công thức của tôi và hàm VBA của bác Tuan cho kết quả giống nhau.

To Adam: Cám ơn bạn. Đúng là hậu sinh khả úy thật. Tôi sơ sót bỏ qua phần này do lúc làm tôi giả định là không ai có thể bán trên một tỷ cả.
 
L

lathanhtom

Guest
8/8/05
46
0
0
47
hcmc
Vẫn không đúng workman à,từng mức thưởng giống như nác Tuân đã liệt kê ra chỉ có sửa lại chút xíu 100tr là 7. Giả sử doanh số là 145tr khách hàng sẽ hưởng được ba mức thưởng 100tr là 7 , 30 tr là 1.5 còn lại 15tr(>10tr) là 0.5 tổng cộng là 9 chỉ trong khi công thức của workman và adam chỉ cho 8.5
Thanks a lot
 
O

omron

Guest
28/6/05
34
0
0
47
TPHCM
lathanhtom nói:
Vẫn không đúng workman à,từng mức thưởng giống như nác Tuân đã liệt kê ra chỉ có sửa lại chút xíu 100tr là 7. Giả sử doanh số là 145tr khách hàng sẽ hưởng được ba mức thưởng 100tr là 7 , 30 tr là 1.5 còn lại 15tr(>10tr) là 0.5 tổng cộng là 9 chỉ trong khi công thức của workman và adam chỉ cho 8.5
Thanks a lot

Bác chỉ cần bỏ cái hàm Mod đi như công thức dưới đây, công thức này chỉ sai khi doanh số vược ngưỡng tối đa 2 lần. Mình nghĩ nếu có vược quá 2 lần thì cũng chỉ là chuyện không có trong thực tế ! Vì lúc đó người ta phát giải đặc biệt rồi còn gì !!!!!!!!!!!

=VLOOKUP(A20,$A$2:$C$17,2)+VLOOKUP(A20-VLOOKUP(A20,$A$2:$C$17,1),$A$2:$B$17,2)
 
L

lathanhtom

Guest
8/8/05
46
0
0
47
hcmc
Bác cứ thử với doanh số 195 và 145 đi , hai công thức đó chỉ tách được hai mức thưởng 150tr(hoặc 100tr) và 30 tr còn phần còn lại lớn hơn 10tr phải được thưởng theo mức 10 tr chứ? Thanks bác nhiều.
 
Q

Quynh Huong

Trung cấp
13/9/05
107
0
0
46
Hanoi
Tuanktcdcn nói:
Nếu bạn ở HCM thì có nhiều cao thủ để bạn học lắm họ ngay trong EFC này, còn ở HN thì có thể tôi hoặc là ai đó sẵn sàng có thể giúp bạn trong phạm vi hiểu biết nhất định.
Bác Tuanktcdcn ơi. Bác nói vậy thì bác cũng mở lớp dạy VBA như trong HCM đang thực hiện đi. Tôi thấy mọi người nói về VBA mà thấy ham, dù không biết một chút nào về nó cả. Khả năng tham gia lớp học của bác Lê Văn Duyệt thì không được rồi. Bác vào thread đó mà xem anh em HN tủi thân ntn.
Bà con HN ơi, mình có thầy VBA rùi này.
 
T

Tuanktcdcn

Lão già ham vui
18/6/04
549
52
28
47
Hà Nội
www.bluesofts.net
Sãn sàng tổ chức lớp học kỹ thuật sử dụng EXCEL/VBA/VB

Quynh Huong nói:
Bác Tuanktcdcn ơi. Bác nói vậy thì bác cũng mở lớp dạy VBA như trong HCM đang thực hiện đi. Tôi thấy mọi người nói về VBA mà thấy ham, dù không biết một chút nào về nó cả. Khả năng tham gia lớp học của bác Lê Văn Duyệt thì không được rồi. Bác vào thread đó mà xem anh em HN tủi thân ntn.
Bà con HN ơi, mình có thầy VBA rùi này.

Cảm ơn Quynh Huong, nếu ở HN có >= 20 người muốn tìm hiểu kỹ thuật sử dụng EXCEL cùng với VBA/VB thì mình sãn sàng tổ chức vài buổi.
 
W

workman

Guest
22/7/05
372
2
0
51
Ho Chi Minh
lathanhtom nói:
Bác cứ thử với doanh số 195 và 145 đi , hai công thức đó chỉ tách được hai mức thưởng 150tr(hoặc 100tr) và 30 tr còn phần còn lại lớn hơn 10tr phải được thưởng theo mức 10 tr chứ? Thanks bác nhiều.
Xin lỗi trả lời chậm. Tôi mở worksheet của tôi gửi, gõ 145 triệu vào, thấy nó ra 9 cây mà. Bác lathanhtom chịu khó mở lại cái worksheet của tôi gửi xem sao nhé.
 

Xem nhiều

Webketoan Zalo OA