Những vấn đề về hàm IF (3 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Status
Không mở trả lời sau này.
Vậy cũng dc. Em rất thích uống cafe. Liên hệ theo nick: nguyenhoai_thanhtri nha! Quên nữa, nếu có thể dc thì ngoài ly cafe ra, cho em xin thêm 1 dĩa mực chiên giòn nữa thì càng tốt... Hiiii (Anh Hiếu bao)
Miss TT
 
Toi co lap cong thuc nhu sau :
=sum(if(and(A1:A6="So 1",month(D1:D60)=8)),G1:G6) TAi sao cong thuc bao loi la sao vay
 
Dùng hàm Sumproduct

Huu Tuan đã viết:
Toi co lap cong thuc nhu sau :
=sum(if(and(A1:A6="So 1",month(D1:D60)=8)),G1:G6) TAi sao cong thuc bao loi la sao vay

Bạn phải dùng hàm SUMPRODUCT mới tính được kết qủa. Công thức như sau :
=SUMPRODUCT((A1:A6="So 1")*(MONTH(D1:D60)=8)*(G1:G6))
Thân
 
=sum(if(and(A1:A6="So 1",month(D1:D60)=8)),G1:G6) hình như thiếu nếu and(...) = false thì sao. Với lại đây là công thức mảng phải nhấn Ctr Shift Enter khi nào báo có {...} thì mới OK.
Còn công thức sau:
=SUMPRODUCT((A1:A6="So 1")*(MONTH(D1:D60)=8)*(G1:G6)) cũng chưa đúng, ham sumprocduct chỉ đúng khi các mảng có độ dai như nhau nên edit lại
=SUMPRODUCT((A1:A6="So 1")*(MONTH(D1:D6)=8)*(G1:G6)) thì OK
với lại tại sao là ="So 1", dễ sai lắm tại sao không bằng 1, hay bàng X1, X1=1.
 
ThuNghi đã viết:
=sum(if(and(A1:A6="So 1",month(D1:D60)=8)),G1:G6) hình như thiếu nếu and(...) = false thì sao. Với lại đây là công thức mảng phải nhấn Ctr Shift Enter khi nào báo có {...} thì mới OK.
.

ThuNghi và các bạn thân.

1. Hiện nay, đôi lúc mình có dùng công thức mảng, nhưng ý thức không rõ ràng và không mang yếu tố cơ bản lắm. --=--

2. Sau khi lập công thức mảng, mình không thể nào xóa nó được nữa?! +-+-+-+

Kết luận: Mình vẫn chưa hiểu là trong trường hợp nào thì phải dùng công thức mảng, trong trường hợp nào thì không nên dùng. Bạn nào có thể giải thích cho mình một cách nôm na không?

Cảm ơn ThuNghi và các bạn
 
Lần chỉnh sửa cuối:
1/Em cũng từ đây mà làm thôi.
http://www.giaiphapexcel.com/forum/showthread.php?t=59
hàm if(dk,true,false)
mà sum của một mảng theo từng dòng thỏa DK thì phải là công thức mảng.
2/ Công thức mảng thì xóa vô tư chớ, anh up cho em tại sao không xóa được
Em chỉ biết vận dụng và "xào nấu" là OK thôi còn căn bản thì = 0. Còn bình thường em chỉ dùng sumproduct thôi, dễ hiểu hơn, có sự khác biệt với {sum(if(.....))} về đều kiện mảng. Trong link trên có nói khá rõ. Không biết giải thích sao.
 
Lần chỉnh sửa cuối:
Cho em hỏi công thức câu lệnh IF kết hợp với AND trong excel

Trong excel có câu lệnh IF, nhưng trong 1 ô không thể kết hợp được nhiều điều kiện.

Giả dụ em cần

= IF ((A4<5) AND (A8=7);" Anh yêu em ";"Anh không yêu em" )

thì không thực hiện được. Hiện tại em thấy có rất nhiều bài toán cần thực hiện biểu thức logic thế này mà dùng chương trình lọc có nhiều chỗ bất tiện do tính linh hoạt không cao lắm.

Xin các bác cho em đôi lời hướng dẫn. Cám ơn các bác.
 
Lần chỉnh sửa cuối:
tokei đã viết:
Trong excel có câu lệnh IF, nhưng trong 1 ô không thể kết hợp được nhiều điều kiện.

Giả dụ em cần

= IF ((A4<5) AND (A8=7);" Anh yêu em ";"Anh không yêu em" )

thì không thực hiện được. Hiện tại em thấy có rất nhiều bài toán cần thực hiện biểu thức logic thế này mà dùng chương trình lọc có nhiều chỗ bất tiện do tính linh hoạt không cao lắm.

Xin các bác cho em đôi lời hướng dẫn. Cám ơn các bác.

Bạn thân mến !

1/ Đây là công thức chứ không phải code nhé
2/ Hàm IF bạn làm đúng rồi, không có gì phàn nàn cả. Tuy nhiên trong hàm IF lại có hàm AND, vậy thì bạn lại phải học cú pháp hàm AND thôi.

AND
AND(logical1,logical2, ...)
Logical1, logical2, ... are 1 to 30 conditions you want to test that can be either TRUE or FALSE.

Như vậy TH trên phải là :

= IF (AND(A4<5;A8=7);" Anh yêu em ";"Anh không yêu em" )

Thân!
 
Cám ơn anh quá, em biết cả AND cả IF mà ko biết cáh kết hợp, em định xin code để viết thử trong VBA theo ngôn ngữ tự nhiên. Thanh anh nhiều nhiều.
 
Cách tính lệnh IF có 17 điều kiện (help)

Em có bài toán như sau:
Doanh số đạt 20.000.000 thưởng 8%
Doanh số đạt 16.000.000 thưởng 7%
Doanh số đạt 12.000.000 thưởng 6%
Doanh số đạt 8.000.000 thưởng 5%
Doanh số đạt 4.000.000 thưởng 4%
Từ mức 20.000.000đ nếu tăng thêm 50% doanh số thì Thưởng thêm 1% so với mức thưởng trong khoán (tăng 50% doanh số thì cộng thêm 1% thưởng). Doanh số tăng từ 501% trở lên thì thưởng 12% so với mức thưởng trong khoán.
Tiền thưởng = 20.000.000*8% + (Doanh số vượt khoán - 20.000.000)*%thưởng
ví dụ: doanh số đạt được là 50.000.000 thì tiền thưởng sẽ là:
Tiền thưởng= 20.000.000*8% + (50.000.000 - 20.000.000)*13% =5.500.000đ

em đặt công thức tính là:
IF(D7<8000000,D7*4%,IF(12000000>D7,D7*5%,IF(D7<16000000,D7*6%,IF(D7<20000000,D7*7%,IF(D7<30000000,20000000*8%+(D7-20000000)*9%,IF(D7<40000000,20000000*8%+(D7-20000000)*10%,............ (D7 là Doanhsokhoan) nhưng công thức dài quá nên Excel không chấp nhận vậy nhờ các anh chị xem có cách gì tính giúp e k?
 
Tôi không biết 501% là chủ định của bạn hay gõ bị nhầm?

Từ mức 20.000.000đ nếu tăng thêm 50% doanh số thì Thưởng thêm 1% so với mức thưởng trong khoán

Công thức của bạn
IF(D7<8000000,D7*4%,IF(12000000>D7,D7*5%,IF(D7<160 00000,D7*6%,IF(D7<20000000,D7*7%,IF(D7<30000000,20 000000*8%+(D7-20000000)*9%,IF(D7<40000000,20000000*8%+(D7-20000000)*10%,............

Theo công thức trên, nếu D7 là 21000000 thì thưởng của bạn sẽ là
20 000000*8%+(D7-20000000)*9% Không đúng theo điều kiện là tăng 50%

Theo ví dụ của bạn
ví dụ: doanh số đạt được là 50.000.000 thì tiền thưởng sẽ là:
Tiền thưởng= 20.000.000*8% + (50.000.000 - 20.000.000)*13% =5.500.000đ

Tôi hiểu 13% được tính từ 1% do tăng hơn 50% + 12% do tăng từ 501% trở lên?
Theo đúng ví dụ thì tỷ lệ tăng là (50.000.000-20.000.000)/20.000.000=+1.5 hay +150%

Bạn có thể giải thích rõ về về đề bài, yêu cùng với điều kiện thật chặt chẽ thì mọi người mới làm đúng được.
 
Tùy theo mỗi công ty mà cách tính thưởng khác nhau. Nhưng bài toán tính thưởng theo doanh số là một trong những bài toán khó.
Với dạng bài toán
IF(A>A1,B,IF(A>A2,C,IF(A>A3,....,IF(A>An,XYZ,0),..,0)
Theo tuần tự như vậy, nếu số vòng IF lồng nhau lên tới 7 thì dùng phương pháp tách theo phương pháp "phân tích biến cố".
Dạng bài toán
Kết quả của IF mẹ là cơ sở tính tiếp IF con thì phải giải quyết bằng VBA, nếu không biết cách thì cũng không thể làm được.
Ví dụ:
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.
Dạng bài bài toán trên bên Webketoan đã từng trao đổi và cuối cùng phải dùng VBA, công thức thuần túy của Excel không thể làm được.

Trong bài của bạn Capcom, yêu cầu và logic chưa rõ nên tôi chưa kết luận ngay điều gì.
 
Dạng bài toán này mà dùng IF thì có mà... chết! Tại sao ko lập thêm 1 bãng phụ nữa có phải dễ hơn ko?
ANH TUẤN
 
Bài này nếu dùng bảng định mức thưởng với ds tăng dần, sau đó dùng match() với match_type =1 =>tìm ra hệ số thưởng.
Phần thửởng bổ sung dùng hàm max(0,ds-20tr) => số chênh lệch, chia 10tr => % hệ số tăng.
Cứ đưa thông số chính xác mình làm cho.
 
capcom đã viết:
Từ mức 20.000.000đ nếu tăng thêm 50% doanh số thì Thưởng thêm 1% so với mức thưởng trong khoán (tăng 50% doanh số thì cộng thêm 1% thưởng).
Nếu % thưởng theo quy luật, bạn nên tạo bảng và dùng VLOOKUP tìm gần đúng thì công thức sẽ đơn giản hơn nhiều.
Với bài của bạn, tôi tạo 2 bảng vì có 2 cách thưởng khác nhau, bảng có tên (name) "thuong" để thưởng danh số và bảng "vuot" để thưởng vượt doanh số. Với bảng, bạn có thể chỉnh sửa dễ dàng mà không phải chỉnh lại công thức.
Bảng "thuong"

________0__0%
_4.000.000__4%
_8.000.000__5%
12.000.000__6%
16.000.000__7%
20.000.000__8%

Bảng "vuot"

________0___0%
10.000.000 _ 11%
20.000.000__12%
30.000.000__13%
40.000.000__14%
50.000.000__15%
60.000.000__16%
......

Phần vượt tôi tính không biết có theo đúng ý của bạn không?
Nếu cột A là "Doanh số" thì công thức sẽ là:
VLOOKUP(A2;thuong;2;1)*A2+IF(A2>20000000;VLOOKUP(A2-20000000;$H$2:$I$12;2;1)*(A2-20000000);0)
 

File đính kèm

Lần chỉnh sửa cuối:
Bài toán của em ý nghĩa cụ thể là như này:
Từ mức 20.000.000 trở lên nếu vượt thêm 50% doanh số (tức là vượt 10.000.000) thì phần thưởng sẽ được cộng thêm 1% so với mức khoán.
vd: Nếu doanh số = 30.000.000 thì thưởng sẽ = 20.000.000*8% + (30.000.000 - 20.000.000)*9% (9% = 8% của mức 20.000.000 + 1% của mức vượt thêm 10.000.000)
Nếu doanh số = 50.000.000 thì thưởng = 20.000.000*8% + (50.000.000 - 20.000.000)*11* (11% = 8% thưởng của mức 20.000.000 + 3% của mức 30.000.000 vượt doanh số (10.000.000 thì cộng 1% -> 30.000.000 thì cộng 3%))
Từ mức 500% trở lên thì mức thưởng trong khoán cộng thêm 12% tức là nếu đạt 110.000.000 thì thưởng = 20.000.000*8% + (110.000.000 - 20.000.000)*20% (20% = 8% của mức 20.000.000 + 12% của mức vượt trên 500%).
Vì xếp bắt tính lương và thưởng cùng trên một bảng tính để khi in ra cho mọi người ký duyệt thì thấy được mức lương và thưởng một lúc. phần lương thì em làm được rồi chỉ có phần theo dõi doanh số của mọi người để tính toán tiền thưởng cho họ thì không lập công thức tính được, nếu làm thủ công thì mất thời gian vì công ty em có hơn 30 người làm kinh doanh. Mong các anh chị giải quyết giúp em. chân thành cảm ơn!
 
Bạn có thể nói rõ hơn.
20.........20*8%
20.1...... 20.1*8%
30.1.......20*8% + (30.1-20)*(8%+1%)
30.9.......20*8% + (30.9-20)*(8%+1%)
40.........20*8% + (40-20)*(8%+1%+1%)
40.1......20*8% + (40.1-20)*(8%+1%+1%)
100.......20*8% + (100-20)*(8%+8*(1%)) lúc này doanh số tăng 500% so với 20tr => (100-20)/10 = 8
101tr....?
109tr....?
110tr....?
111tr....?
120tr....?
Bạn cho những % còn trống.
Hay bạn làm 1 file thực theo những số như trên bạn sẽ tính ra sao. Như vậy sẽ dễ hơn cho mọi người.
 
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom