Những vấn đề về hàm IF (1 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.

handung107

Thành viên gắn bó
Thành viên danh dự
Tham gia
30/5/06
Bài viết
1,630
Được thích
17,443
Nghề nghiệp
Bác sĩ
Chúng ta ai cũng biết hàm IF trong Excel chỉ thể hiện được 7 vòng lặp. Vậy trong những trường hợp cần thiết khác, chúng ta sẽ làm gì ?

Td đơn giản nhất là :

Tại B1 :Nếu A1="A", B1=1, A1="B", B1=2, A1="C", B1=3, A1="D", B1=4, A1="E", B1=5, A1="F", B1=6, A1="G", B1=7, A1="H", B1=8, A1="I", B1=9, A1="J", B1=10, A1="K", B1=11, A1="L", B1=12, A1="M", B1=13....

Tôi xin giới thiệu với các bạn vài cách thức mà tôi sưu tầm được :

1/ Đặt tên cho từng đoạn công thức. Td : MotDenSau, MotDenMuoiBa

2/ Sử dụng hàm VLOOKUP, tạo một mảng gồm 2 cột, cột thứ nhất gồm những giá trị A, B, C..., cột thứ 2 gồm những giá trị 1, 2, 3...
B1=VLOOKUP(A1,DS,2,0)

3/ Sử dụng VBA

4/ Sử dụng hàm CONCATENATE() :

B1=CONCATENATE(IF(A1="A",1,""),IF(A1="B",2,""),IF( A1="C",3,""),....,IF(A1="M",13,"")). Hàm này sử dụng được 30 đối số

5/ Sử dụng phép kết hợp :

- Nếu kiểu dữ liệu là Text thì :
B1=IF(A1="A",1,"")&IF(A1="B",2,"")&IF(A1="C",3,"") &....&IF(A1="M",13,""). Phương pháp này giới hạn 30 "&"
-Nếu kiểu dữ liệu là Number thì :
B1=IF(A1="A",1,0)+IF(A1="B",2,0)+IF(A1="C",3,0)+.. ..+IF(A1="M",13,0).

6/Sử dụng Boolean Multiplication :

B1=(A1="A")*1+(A1="B")*2+(A1="C")*3+....+(A1="M")* 13
 
Lần chỉnh sửa cuối:
Hàm IF

Các bạn ơi hướng dẫn mình với mình có cái này nhưng không giải quyết được :
Hàm IF trong Excel chỉ cho phép 7 hàm lồng vào nhau nhưng mình muốn như sau :
Nếu a1<0.5 thì là không
Nếu a2<1.5 thì là một
Nếu a2<2.5 thì là hai
Nếu a2<3.5 thì là ba
Nếu a2<4.5 thì là bốn
Nếu a2<5.5 thì là năm
Nếu a2<6.5 thì là sáu
Nếu a2<7.5 thì là bảy
Nếu a2<8.5 thì là tám
Nếu a2<9.5 thì là chín
Còn lại là 10
Các bạn làm giúp mình với. Mình bí quá

Mong các bạn giúp mình với nhé
Cảm ơn nhiều
 
daitathan đã viết:
Các bạn ơi hướng dẫn mình với mình có cái này nhưng không giải quyết được :
Hàm IF trong Excel chỉ cho phép 7 hàm lồng vào nhau nhưng mình muốn như sau :
Nếu a1<0.5 thì là không
Nếu a2<1.5 thì là một
Nếu a2<2.5 thì là hai
Nếu a2<3.5 thì là ba
Nếu a2<4.5 thì là bốn
Nếu a2<5.5 thì là năm
Nếu a2<6.5 thì là sáu
Nếu a2<7.5 thì là bảy
Nếu a2<8.5 thì là tám
Nếu a2<9.5 thì là chín
Còn lại là 10
=choose(max(roundup(a2/0,5;1);
Các bạn làm giúp mình với. Mình bí quá

Mong các bạn giúp mình với nhé
Cảm ơn nhiều
Bạn thử nhé :
=CHOOSE(MIN(ROUNDUP(A2+0,5;0);11);0;1;2;3;4;5;6;7;8;9;10)
Thân!
 
Xin giúp về hàm IF

Công ty tôi có 15nv bán hàng. Cuối tháng xếp hạng nếu bán nhiều nhất thì được 15 điểm thi đua, bán nhiều nhì thì 14 điểm... người bán ít nhất được 1 điểm. Cuối năm cộng điểm ai cao nhất xếp loại A,rồi đếnB,C......
Tối đã dùng hàm IF và Rank, nhưng vì hàm IF chỉ cho tối đa 7 lần If nên không biết làm thế nào? Nhờ các Bác cao thủ chỉ giáo giúp (tôi cũng là dân mới học excel). Xin cám ơn nhiều.-\\/.
 
Bạn tham khảo các bài sau nhé:

- Bạn làm gì khi hàm If chỉ có 7 vòng lặp ?

- Hàm SUMPRODUCT và cách tính giá xuất theo phương pháp bình quân gia quyền liên hòan

Hiện nay, hầu hết các box của diễn đàn đều có mục mục lục (index) để tìm bài cho nhanh các bạn có thể vào đó (giống như khi đọc một quyển sách mình thường đọc mục mục lục trước để xem tổng quát vậy!). Ngoài ra chị handung107 cũng có một mục Index tổng hợp các bài viết hay của diễn đàn tại đây mà rất ít bạn chú ý đến!.
 
/)/goài ra, bạn xài hàm:
=CHOOSE(nUM,Num1,Num2. . . . . .Num30)
(hãy tìm trong excel hay trên diễn đàn!)
Nếu trên 30 đối số bạn xài hàm:
=UDFSWITCH([C1],[n1],. . . . . . . .[N100])
Hàm sau không câu nệ chuỗi hay số! (hãy tìm trên diễn đàn với từ khóa SWITCH!)
 
Lần chỉnh sửa cuối:
locthokhongvui đã viết:
Công ty tôi có 15nv bán hàng. Cuối tháng xếp hạng nếu bán nhiều nhất thì được 15 điểm thi đua, bán nhiều nhì thì 14 điểm... người bán ít nhất được 1 điểm. Cuối năm cộng điểm ai cao nhất xếp loại A,rồi đếnB,C......
Tối đã dùng hàm IF và Rank, nhưng vì hàm IF chỉ cho tối đa 7 lần If nên không biết làm thế nào? Nhờ các Bác cao thủ chỉ giáo giúp (tôi cũng là dân mới học excel). Xin cám ơn nhiều.-\\/.

Ban có thể ghi vài dòng của bảng tính hoặc có thể gởi file cho mình xem thử, vì có thể không cần dùng đến lệnh IF cũng có thể giải quyết được. Mail: trucle2002@yahoo.com
 
locthokhongvui đã viết:
Công ty tôi có 15nv bán hàng. Cuối tháng xếp hạng nếu bán nhiều nhất thì được 15 điểm thi đua, bán nhiều nhì thì 14 điểm... người bán ít nhất được 1 điểm. Cuối năm cộng điểm ai cao nhất xếp loại A,rồi đếnB,C......
Tối đã dùng hàm IF và Rank, nhưng vì hàm IF chỉ cho tối đa 7 lần If nên không biết làm thế nào? Nhờ các Bác cao thủ chỉ giáo giúp (tôi cũng là dân mới học excel). Xin cám ơn nhiều.-\\/.
Bạn thử nhé :
VD : Vùng dữ liệu : A1:A15

B1= choose(rank(A1;$A$1:$A$15;1);1;2;3;4;5;6;7;8;9;10;11;12;13;14;15)

Thân!
 
Dear all,
--------
Đối với các bài toán có nhiều điều kiện, tốt nhất chúng ta lập một bảng danh mục, mỗi một giá trị gắn với một ID của bảng rồi sử dụng VLOOKUP để tìm theo ID lấy ra giá trị tương ứng.
Bằng cách này chúng ta cũng có thể lấy ra giá trị của một khoảng với tham số range_lookup của hàm là 1.
 
tÔI có bài toán sau, mong các cao huynh chỉ giúp, nếu in từ 1 đến 99 cái nhãn, một size thì cộng thêm 15 cái, trên 2 sixe thì cộng thêm 10 cái ; tương tự in từ 100 đến 300 cái , nếu 1 size thì cộng thêm 20 cái, trên 1 size thì cộng 15 cái ; in từ 300 đến 700 cái nếu 1 size thì cộng 30 cái trên 1 size cộng thêm 25 cái, nếu trên 1000 cái thì cộng thêm 3% cho các size, mong các cao huynh hướng dẫn
 
Bạn ơi... Tôi ko biết bài toán này có cần dùng đến CHOOSE ko nhỉ? Tôi thấy chỉ cần: "=MIN(ROUNDUP(A2+0.5,0),11)-1" là dc rồi mà...
Mến...
ANH TUẤN
 
anhtuan1066 đã viết:
Bạn ơi... Tôi ko biết bài toán này có cần dùng đến CHOOSE ko nhỉ? Tôi thấy chỉ cần: "=MIN(ROUNDUP(A2+0.5,0),11)-1" là dc rồi mà...
Mến...
ANH TUẤN

Đúng đấy, nhiều khi nghĩ to tát quá đâm ra luẩn quẩn. Thanks
 
Cũng may mắn là điều kiện mà bạn daitathan đưa ra tuân theo quy luật nhất định (Số sau hơn số trước 1 đơn vị)... Nếu gặp trường hợp điều kiên tương đối lộn xộn thì phải làm thế nào nhỉ? Chẳng hạn như: Dưới 5 điểm xếp loại "Kém", từ 5 đến 6.4 xếp loại TB, từ 6.5 đến 7.9 xếp loại "Khá", và từ 8 trở lên xếp loại "Giõi"...
Ý tôi muốn hỏi là nếu sử sụng cách của bạn thì giãi quyết bài toán này thế nào?
 
Gặp các điều kiện tương đối lộn xộn và nhiều, thì có thể giải quyết bằng cách sau đây:
-Ta nhập hàm IF lồng vào nhau bình thường ( EXCEL cho phép đến 8 điều kiện).
-Điều kiện thứ 9 ta tham chiếu đến 1 ô khác. Ở ô này ta tiếp tục nhập tiếp được 8 điều kiện nữa. Và ta lại tham chiếu đến 1 ô nữa...Cứ như thế dù có bao nhiêu điều kiện ta cũng giải quyết được.
 
Thật ra ý tôi ko phải vậy... Hàm IF tất nhiên là cái mình nghĩ đầu tiên rồi, điều đó khỏi cần bàn tới... Tôi muốn hỏi là nếu dùng cách tương tự như bạn Mr Okebab thì có làm dc ko?
Mến
ANH TUẤN
 
Hàm IF sao lại ra 3 kết quả?

Hàm IF thì ai mới học Excel cũng đều biết sử dụng. Thông thường hàm này sẽ cho ra 2 kết quả tùy theo điều kiện đúng hay sai... IF(Logical_Test, [Value_if_true], [Value_If_false])
Thế nhưng vừa rồi em lại phát hiện ra 1 hiện tượng hơi kỳ lạ. Nó cho ra 3 kết quả khác nhau. Giã sử A1 có giá trị là 8, B1 có giá trị là 5. C1 em đặt công thức như sau:
C1= IF(A1=8,B1=5,-1)
Bây giờ lần lượt thay vào A1 và B1 những giá trị khác nhau thì C1 cũng sẽ lần lượt cho ra 3 kết quả là: TRUE, FALSE và -1
Em cũng hiểu hiểu là tại sao lại như vậy. Nhưng em đang nghĩ đến 1 chuyện khác, đó là vận dụng nó vào việc gì đây?
Các anh có thể cho em ý kiến dc ko? Hoặc các anh có thể nghĩ ra dc 1 bài tập nào đó có thể ứng dụng hàm IF 3 kết quả này ko?
Rất mong nhận dc ý kiến của tất cả mọi người, nhất là những ai có sáng kiến gì đó đễ ứng dụng dc hàm IF kiểu này
Miss TT
 
thanhtri đã viết:
C1= IF(A1=8,B1=5,-1)
Bây giờ lần lượt thay vào A1 và B1 những giá trị khác nhau thì C1 cũng sẽ lần lượt cho ra 3 kết quả là: TRUE, FALSE và -1
Không có gì đặc biệt ở đây đâu bạn ạ. Ở hàm trên bạn đặt tham số thứ 2 [Value if True] là 1 biểu thức (B1=5 là 1 biểu thức, nó trả về kết quả là TRUE nếu B1 đúng bằng 5 và FALSE nếu B1 khác 5). Do đó khi thay đổi cả A1 và B1 thì nó sẽ cho ra 3 kết quả trong đó có TRUE và FALSE, là kết quả của biểu thức B1=5

Thân.
 
Logical_test của hàm IF

Dear thanhtri,
-------------
Câu hỏi của bạn rất thú vị!
Tuy nhiên, đúng là suy luận của bạn làm thay đổi hẳn bản chất của hàm IF. Kết quả trả về của hàm này chỉ phụ thuộc vào Logical_Test. Việc thay đổi hai tham số còn lại đương nhiên làm thay đổi kết quả. Nói cách khác chúng ta đang sửa kết quả trả về của hàm. Cũng giống như là bạn sửa =SUM($A$1:$A$3) thành =SUM($A$1:$A$2) vậy!
Cũng phải nói thêm rằng, kết quả của hàm IF trả về một trong hai đối số: Value_if_true hoặc [Value_If_false]. Cặp dấu [] biểu diễn tham số trong ngoặc là tuỳ ý (phải có một hoặc cả hai tham số). Kết quả này, như bạn nói, nó tuỳ thuộc tham số điều kiện của hàm là TRUE hay FALSE. Vì vậy, nếu có trường hợp kết quả trả về không phải thuộc một trong đối số trên chỉ có thể là do điều kiện không phải là "Logical" nữa (tức không đúng cũng không sai).
Vậy những trường hợp "ỡm ờ" đó là gì?
Chúng ta đều biết rằng đối số Logical_test trong hàm IF là một biểu thức luận lý (so sánh). Biểu thức này trả về một trong hai giá trị: hoặc Đúng (TRUE) hoặc Sai (FALSE). Nhưng chắc ít ai biết rằng, trong Execel, Logical_test không nhất thiết cứ phải là TRUE or FALSE. Bản chất, giá trị lưu trong đối số này là kiểu số (Numberic) và số 0 đại diện cho giá trị FALSE, các số khác 0 đại diện cho giá trị TRUE. Ví dụ:
=IF(0;"Đúng";"Sai") >> Kết quả = "Sai"
=IF(a;"Đúng";"Sai") >> Kết quả = "Đúng" - trong đó a là một số bất kỳ <> 0
Như vậy có thể trả lời được cho câu hỏi của bạn rồi:
thanhtri đã viết:
các anh có thể nghĩ ra dc 1 bài tập nào đó có thể ứng dụng hàm IF 3 kết quả này ko?
Để có được kết quả thứ ba, không rơi vào một trong hai kết quả nêu trên (phải nói như vậy mới chính xác) chúng ta chỉ việc đi tìm giá trị của Logical_test sao cho:
AND(Logical_test=0;Logical_test<>0)=TRUE
Một con số vừa bằng 0, vừa khác 0.
Bài tập này dường như không có lời giải?
 
Lần chỉnh sửa cuối:
Hàm IF bị sao vậy cà?

Tôi có 1 bảng tính: HamIFbisaovay (post kèm theo).

Ở các cột có các hàm sau:
R = IF(OR(ISBLANK(K3); K3=" "; K3=0); " "; IF(K3>=1; IF(Q3<=14,5; K3+Q3; " "); " "))
S = IF(Q3>=14,5; "Đ"; IF(R3=" "; " "; IF(R3>=14,5; "đ-thêm"; " ")))
T = IF(Q3>=14,5; "Đ"; IF(R3>=14,5; "đ-thêm"; " "))

Phát biểu chung cho cột S (không có vấn đề gì) và cột T (có vấn đề) như sau:
"Nếu Tổng số điểm (Q3) lớn hơn hoặc bằng 14,5 thì "Đậu"; ngược lại nếu (Q3<14,5) thì nếu R3 (Tổng số điểm có cộng thêm điểm Ưu tiên)>=14,5 thì "đậu thêm"; ngược lại thì "trống" ".
Vậy mà, kết quả là hàng loạt loại "đậu thêm" thòi ra!? Lạ quá.
Các sư phụ giải thích dùm với, tôi bị sai chỗ nào?
Cảm ơn nhiều nhé!
 

File đính kèm

Dear dvu58,
-----------
Bạn sử dụng công cụ Formula Auditing, chức năng Evaluate Formula để kiểm toán công thức.
Trong trường hợp của bạn, Excel hiểu giá trị rỗng là một số cực lớn (lớn hơn bất kỳ số nào) nên phép so sánh với cột R luôn luôn đúng.
 
Em cũng xin nói rõ thêm"
R = IF(OR(ISBLANK(K3); K3=" "; K3=0); " "; IF(K3>=1; IF(Q3<=14,5; K3+Q3; " "); " "))
S = IF(Q3>=14,5; "Đ"; IF(R3=" "; " "; IF(R3>=14,5; "đ-thêm"; " ")))
T = IF(Q3>=14,5; "Đ"; IF(R3>=14,5; "đ-thêm"; " "))
Trên đây cột T anh dùng để kiểm tra lại cột S, vậy tính từ cột S
S = IF(Q3>=14,5; "Đ"; IF(R3=" "; " "; IF(R3>=14,5; "đ-thêm"; " ")))
hay là
S = IF(Q3>=14,5; "Đ"; IF(and(R3<>" ";R3>=14,5); "đ-thêm"; " ")) thì OK
Theo em thì " " nên là 0 thì công thức sẽ ngắn hơn nhiều. Ví các cột từ K->R đều là dữ liệu kiểu số
R=IF(AND(K3>=1, Q3<=14.5), K3+Q3, 0)
S=IF(Q3>=14.5, "Đ", IF(R3>=14.5, "Đ-thêm", ""))
Anh xem thử có OK không.
 
Nguyên văn bởi Đào việt Cường
Trong trường hợp của bạn, Excel hiểu giá trị rỗng là một số cực lớn (lớn hơn bất kỳ số nào) nên phép so sánh với cột R luôn luôn đúng.
Nhờ bạn Cường nói cụ thể hơn những trường hợp nào một ô trống mà excel lại hiểu giá trị ô đó là cực đại.
Như thế thì nàng excel này phức tạp quá!!!
 
Lần chỉnh sửa cuối:
Chào bạn dvu58,

Như bạn biết trong Excel có nhiều kiểu dữ liệu: ngày, text, number...

Trong bài của bạn thực hiện phép so sánh giữa kiểu dữ liệu sốtext. Mà như bạn biết dù con số của bạn có lớn đến đâu chăng nữa nó vẫn nhỏ hơn kiểu dữ liệu Text.

Do vậy công thức của bạn có những trường hợp kết quả không đúng ý bạn. Bạn có thể sửa công thức thành

T3=IF(Q3>=14.5,"Đ",IF(R3<>" ",IF(R3>=14.5,"đ-thêm"," ")," "))

Good luck,
TP.
 
Nguyên văn bởi ttphong2007
T3=IF(Q3>=14.5,"Đ",IF(R3<>" ",IF(R3>=14.5,"đ-thêm"," ")," "))
Dùng công thức này, tôi nhập vào ô R3 một giá trị kiểu chuỗi, kết quả ở T3 vẫn bằng "đ-thêm".
Bạn ttphong2007 ơi, có cách nào khác để khắc phục tình trạng này không?
 
voda đã viết:
Dùng công thức này, tôi nhập vào ô R3 một giá trị kiểu chuỗi, kết quả ở T3 vẫn bằng "đ-thêm".
Bạn ttphong2007 ơi, có cách nào khác để khắc phục tình trạng này không?
Chào voda,

Theo cách liên kết công thức trong file đính kèm thì các giá trị trong cột R là các con số hay các khoảng trắng, bạn không nhập trực tiếp Text vào đó.

Tuy nhiên bạn có thể dùng thêm hàm Isnumber để kiểm tra như sau:
T3=IF(Q3>=14.5,"Đ",IF(IsNumber(R3),IF(R3>=14.5,"d-thêm"," ")," "))

Good luck,
TP.
 
dvu58 đã viết:
Tôi có 1 bảng tính: HamIFbisaovay (post kèm theo).
T = IF(Q3>=14,5; "Đ"; IF(R3>=14,5; "đ-thêm"; " "))
Vậy mà, kết quả là hàng loạt loại "đậu thêm" thòi ra!? Lạ quá.
Nguyên nhân công thức bạn sai là vì giá trị R3 có thể là số (14,5) hoặc 1 ký tự trắng " " do công thức tại ô R3= IF(OR(ISBLANK(K3); K3=" "; K3=0); " "; IF(K3>=1; IF(Q3<=14,5; K3+Q3; " "); " ")) trả về khi K3 không có giá trị.
Do đó,nếu T3<14,5 và R3=" " thỉ công thức IF(Q3>=14,5; "Đ"; IF(R3>=14,5; "đ-thêm"; " ")) sẽ cho kết quả "đ-thêm".
Nguyên nhân là công thức trên hoạt động theo trình tự sau:
1. Hàm IF đầu tiên xét thấy Q3<14,5 (sai) nên chuyển tiếp sang cho hàm IF thứ hai.
2. Hàm IF thứ hai xét R3>14,5 (đúng) nên cho kết quả là "đ-thêm" như bài Excel của bạn. Nguyên nhân bạn nhầm là vì R3 có giá trị là " " thì lớn hơn 14,5 (theo bạn thì " " <14.5 là sai!).
Theo thứ tự sắp xếp của Excel; dãy "z", 1, 15, " ", "c" thì sắp xếp theo tứ tự tự nhỏ đến lớn là 1 < 15 < " " < "c" < "z" (số < khoảng trắng < chữ cái).
Để khắc phục, tôi đề nghị công thức chỉnh lại như sau:
IF(Q3>=14.5, "Đ", IF(R3=" ", " ", IF(R3>=14.5, "đ-thêm", " ")))
Bạn cần kiểm tra R3=" " trước, sau đó mới kiểm tra điều kiện đỗ thêm.
 
Phức tạp quá, các bác viết lại cho bác ý đi
 
Chào và cảm ơn các bạn rất nhiều.
Quả thật, chỉ mới có 1 hàm IF thôi mà đã phát sinh nhiều vấn đề khiến ta không thể biết một cách rành rọt được.

Ở cột S, tôi đã có hàm giải quyết được; còn cột T chỉ là vấn đề mà tôi mới phát hiện qua sử dụng thực tế, nêu lên để các bạn giải thích, gỡ rối dùm và để tránh trong quá trình sử dụng về sau khỏi mắc phải các sai lầm ngớ ngẩn này.

Các kiểu dữ liệu, ôi trời đất!!!
 
dvu58 đã viết:
Chào và cảm ơn các bạn rất nhiều.
Quả thật, chỉ mới có 1 hàm IF thôi mà đã phát sinh nhiều vấn đề khiến ta không thể biết một cách rành rọt được.

Ở cột S, tôi đã có hàm giải quyết được; còn cột T chỉ là vấn đề mà tôi mới phát hiện qua sử dụng thực tế, nêu lên để các bạn giải thích, gỡ rối dùm và để tránh trong quá trình sử dụng về sau khỏi mắc phải các sai lầm ngớ ngẩn này.

Các kiểu dữ liệu, ôi trời đất!!!

Bạn thử sửa công thức cột R như sau:
=IF(OR(ISBLANK(K3), K3=" ", K3=0),0, IF(K3>=1, IF(Q3<=14.5, K3+Q3,0),0))
Nếu bạn không thích hiển thị các số 0 thì vào Tools/Options trong phần View bỏ mục "Zero values" là được.
 
Bài giải Hàm if sao bị thế này.
 

File đính kèm

Em hiểu vấn đề này rồi. Nhưng ở đây em muốn nói đến chuyện khác cơ. Đó là tại sao ta ko thử áp dụng nó vào 1 trường hợp đặc biệt nào đó. Các anh thử nghĩ xem, còn em thì nghĩ hoài ko ra dc sẽ ứng dụng nó vào việc gì. Vì thế em mới hỏi các anh!
Miss TT
 
thanhtri đã viết:
Em hiểu vấn đề này rồi. Nhưng ở đây em muốn nói đến chuyện khác cơ. Đó là tại sao ta ko thử áp dụng nó vào 1 trường hợp đặc biệt nào đó. Các anh thử nghĩ xem, còn em thì nghĩ hoài ko ra dc sẽ ứng dụng nó vào việc gì. Vì thế em mới hỏi các anh!
Miss TT
Chú này buồn cười thật, đây đâu có gì đặc biệt đâu, chẳng qua đây là hàm lồng trong hàm thôi

1. =(A1=B1) : Cho ra giá trị False hoặc True
2. = if(True; Đúng; Sai)

True : Logic đúng (hàm đúng; Giá trị đúng, Luận lý đúng . . .
ĐÚNG : Cho ra Giá trị cuối cùng của ĐÚNG. Nếu là một hàm số, một luận lý thì nó lại xét tiếp . . .
. . . .
Cái này là bình thường, chẳng qua do mọi người không quen thôi.
VD : Rất ít khi phải dùng : =(A1=B1). Do đó nếu ít dùng thì lại nghĩ là đặc biệt. Nhưng nếu xét kỹ thì nó cũng bình thừơng.

Vì thế điều quan trọng không phải là TH này dùng cho cái gì (Cho nó khỏi phí !???) mà điều quan trọng là vấn đề này được giải quyết như thế nào ??

Để thời gian làm việc khác đồng chí ạ (VD đi uống CF chẳng hạn !!!)

Thân!
 
em thấy chẳng có gì cả:=if(A1=8,B1=5,-1)
A1=8: là điều kiện (true hoặc False)
B1=5:trả về (True hoặc False) khi đk =True
-1:gia trị trả về khi đk=False
No cung binh thuong thôi nhung giá trị nó trả về là kiểu Boolean
Hic!
 
Ban có thể xem lại bài :T=IF(Q5>=14.5, "Đ", IF(AND(R5>=14.5,R5<>" "), "đ-thêm", " ")).Chỉ cần thế là Okie!}}}}}
 
Hiiii... Chính vì em ko hiểu nên mới hỏi. Còn anh Hiếu này, đính chính lại nha: Em ko phải là CHÚ NÀY mà là CÔ NÀY... He... he... Uống cafe hả? Khi nào có ai rũ thì mình đi.
Miss TT
 
thanhtri đã viết:
Hiiii... Chính vì em ko hiểu nên mới hỏi. Còn anh Hiếu này, đính chính lại nha: Em ko phải là CHÚ NÀY mà là CÔ NÀY... He... he... Uống cafe hả? Khi nào có ai rũ thì mình đi.
Miss TT

Pó tay.

Sorry !!!!!!!!!!!!

Các ngày Thứ 7, Chủ nhật Tại Hồ Con Rùa.

Hân hạnh !!!!!
 
Cần giúp đỡ về hàm IF

Tui có câu hỏi nhờ các bạn giúp đỡ về hàm IF. Theo tui thì hàm IF có thể lồng thoải con gà mái. Nhưng tui chỉ lồng được có 8 hàm thui à (File kèm theo) đến hàm thư 9 thì báo lũi. Không bít tui làm sai ở đâu hặc ai có cách gì khác chỉ giùm cái nha. Tui chỉ cần túi đa là 15 hàm. Thank nhìu lém
 

File đính kèm

doi_trai_co_don đã viết:
Tui có câu hỏi nhờ các bạn giúp đỡ về hàm IF. Theo tui thì hàm IF có thể lồng thoải con gà mái. Nhưng tui chỉ lồng được có 8 hàm thui à (File kèm theo) đến hàm thư 9 thì báo lũi. Không bít tui làm sai ở đâu hặc ai có cách gì khác chỉ giùm cái nha. Tui chỉ cần túi đa là 15 hàm. Thank nhìu lém

Nếu chỉ như điều kiện của bạn trong bài thì ta có thể dùng hàm Choose. Còn nếu phức tạp hơn ta nên dùng bảng phụ và các hàm tham chiếu (Vlookup; Hlookup; Index - Match . . )

Có lẽ File của bạn sẽ là VD cụ thể hơn.

Thân!
 

File đính kèm

Hiiii.... Nếu chỉ thực hiện nhiệm vụ giống như bài bạn vừa nên mà dùng IF thì... hơi bị mệt đấy! Ngoài cách của anh Hiếu còn có 1 chiêu nữa cũng khá hay. Cell A1 chứa số, ở cell A2 bạn cứ đánh vào công thức: =CHAR(64+A1) Thế là xong!
Miss TT
 
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.
 
4 .........DS*4%
8 .........DS*5%
12 .........DS*6%
16.........DS*7%
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%)
101tr....20*8% + (102-20)*(8%+9*1%)
109tr....20*8% + (109-20)*(8%+9*1%)
110tr....20*8% + (110-20)*(8%+10*1%)
111tr....20*8% + (111-20)*(8%+10*1%)
120tr....20*8% + (120-20)*(8%+12*1%)
121tr....20*8% + (121-20)*(8%+12*1%)
từ mức >120 thì đều tính = 20*8% + (mức >120 - 20)*(8%+12*1%)
cách tính là sẽ như vậy nhưng chưa có biện pháp để đặt công thức. bài của anh Phamduylong em có thử áp dụng nhưng vẫn không tính được. cách phân tích cua ThuNghi thì đúng theo ý em phân tích rồi, mong ThuNghi cho biết cách lập công thức tính.
 
100.......20*8% + (100-20)*(8%+8*1%) - OK
101tr....20*8% + (102-20)*(8%+9*1%) - phải là 8%
109tr....20*8% + (109-20)*(8%+9*1%) - phải là 8%
110tr....20*8% + (110-20)*(8%+10*1%)-phải là 9%
111tr....20*8% + (111-20)*(8%+10*1%)->phải là 9%
120tr....20*8% + (120-20)*(8%+12*1%)
121tr....20*8% + (121-20)*(8%+12*1%)
Theo tôi hình như có sai sót trong bảng trên, tôi làm lại theo phần chữ đỏ
Công thức cột B
=INDEX(HeSo,MATCH($A10,DSo,1),0)
Công thức cột C
=IF($A10>20000,IF($A10>=120000,INT(($A10-20000)/10000)+2,INT(($A10-20000)/10000)),0)
Công thức cột D
=IF($A10<=20000,$A10*$B10/100,20000*$B10/100+($A10-20000)*($B10+$C10)/100)
http://i191.photobucket.com/albums/z268/ThuNghi/Untitled-1.jpg
Nhờ các bạn kiểm tra hộ công thức trên để có thể vận dụng thực tế, bạn capcom xem và test nếu OK thì sẽ làm gọn công thức sau.
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn lập bảng gồm hai cột, cột 1 là các mốc DS cột 2 là % được thưởng và dùng Vlookup là nhanh nhất. Chúc bạn thành công
 
capcom đã viết:
4 .........DS*4%
8 .........DS*5%
12 .........DS*6%
16.........DS*7%
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%)
101tr....20*8% + (102-20)*(8%+9*1%)
109tr....20*8% + (109-20)*(8%+9*1%)
110tr....20*8% + (110-20)*(8%+10*1%)
111tr....20*8% + (111-20)*(8%+10*1%)
120tr....20*8% + (120-20)*(8%+12*1%)
121tr....20*8% + (121-20)*(8%+12*1%)
từ mức >120 thì đều tính = 20*8% + (mức >120 - 20)*(8%+12*1%)
cách tính là sẽ như vậy nhưng chưa có biện pháp để đặt công thức. bài của anh Phamduylong em có thử áp dụng nhưng vẫn không tính được. cách phân tích cua ThuNghi thì đúng theo ý em phân tích rồi, mong ThuNghi cho biết cách lập công thức tính.


Bạn giải thích kỹ phần màu xanh nhé! Về mặt logic, tôi chưa hiểu sao lại thế?
Nếu tư duy mà chưa logic thì sẽ không có công thức chính xác.

Bạn Capcom hình như một ngày chỉ vào GPE một lần? Các thắc mắc về yêu cầu của bạn phải đến ngày hôm sau mới có câu giải thích. Yêu cầu của bạn không rõ ràng khiến cho các đáp án của những người trả lời bạn chưa chính xác.
 
Lần chỉnh sửa cuối:
Cảm ơn ThuNghi đã cho đáp án chính xác, minh test rồi áp dụng ok. Cảm ơn ThuNghi, Giaiphapexcel.com đã giúp tôi hoàn thiện thêm kỹ năng của mình.
Vì tôi là Kế toán nhưng tham gia cả Kinh doanh nữa nên ít online, chỉ lúc nào rỗi mới online nên tôi không cập nhập thông tin kịp thời đc. mong các bạn thông cảm nhé!
 
Kết Hợp Giữa Hàm If Và Hàm And

Các anh chỉ cho em cách sử dụng hàm IF cùng với hàm AND với nha:
VD.
A B C D E
Ngày MHS SL DG1 DG2
1 10/5/07 sp001 100 0.1 0.15
2 15/5/07 sp002 50 0.15 0.20
3 20/5/07 sp003 70 0.2 0.25

Em cần tính nếu ngày lớn hơn 15/5/07 và MHS lớn hơn sp002 thì bằng SL nhân DG1 bằng không thì bằng SL nhân DG2

Kết hợp nhiều hàm em ko rành lắm nhờ các anh chỉ giúp

CATHY
 
Lần chỉnh sửa cuối:
anhtuan1066 đã viết:
Chưa hiều lắm ở chổ
bằng không là cái gì bằng không vậy?
ANH TUẤN
Có lẽ như thế này: Em cần tính nếu ngày lớn hơn 15/5/07 và MHS lớn hơn sp002 thì bằng SL nhân DG1, nếu ngày không lớn hơn 15/5/07 và MHS không lớn hơn sp002 thì bằng SL nhân DG2. Sp001, ... là text thì lớn hơn hay nhỏ cái gì??
 
Kết Hợp Hàm If Và Hàm And

anhtuan1066 đã viết:
Chưa hiều lắm ở chổ
bằng không là cái gì bằng không vậy?
ANH TUẤN

Bằng không có nghĩa là nếu không phải ngày lớn hơn 15/5/07 và MHS không phải lớn hơn sp002 (em nói tắt í mà ... hi..hi)

CATHY
 
Kết Hợp Hàm If Và Hàm And

duongsatdn đã viết:
Có lẽ như thế này: Em cần tính nếu ngày lớn hơn 15/5/07 và MHS lớn hơn sp002 thì bằng SL nhân DG1, nếu ngày không lớn hơn 15/5/07 và MHS không lớn hơn sp002 thì bằng SL nhân DG2. Sp001, ... là text thì lớn hơn hay nhỏ cái gì??

Dạ đúng rồi ! ý của em là sp003 thì lớn hơn sp001 và sp002

CATHY
 
Thế thì theo công thức của ThuNghi, nhưng có thể rút gọn 1 chút
Thay VALUE(RIGHT($C2,3))>2 thành RIGHT($C2,3)*1>2
hoặc RIGHT($C2,1)*1>2 nếu số mã phía sau ko lớn hơn 10
 
Để tổng quát cho trường hợp các giá trị cột C là sp001; sp002; ...; sp1000 ... thì nên dùng =MID($C2;3;10)*1 thay cho Right.
 
Lần chỉnh sửa cuối:
Hỏi về hàm IF (của bạn: letasp)

Bạn letasp nhờ tôi hỏi giúp:
Nguyên văn của letasp.
"Lam cach nao de excel hieu ham nagy thang trong ham nhi?
vd:
if(and(d1>"10/10/89",d1<25/10/89","x","o")
nhung van bang 0 .
tuc la no khong so sanh duoc d1 voi gia tri 10/10/89...
giup minh voi, neu khong thi post len dien dan giup minh nhe!!
cam on ban nhieu"
 
Bạn sử dụng hàm Datevalue("mm/dd/yy") phụ thuộc vào định dạng ngày tháng năm của máy tính của bạn, hoặc Datevalue("dd-mmm-yyyy")

ví dụ trên thì bạn phải đổi thành : if(and(d1>datevalue("10/10/1989"),d1<datevalue("10/25/89")),"x","o")

Thân.
 
Dùng hàm IF, hàm CONCATENATE thì dài quá

Tôi có các mặt hàng như: cốc,chén, ly...đến mặt hàng thứ 30 và muốn quy về thành một nhóm ví dụ là nhóm "một", nếu tôi dùng IF(A1="cốc";"một";IF(A1="chén";"một";IF(A1= "ly";"một"....thì dài quá. Nhờ các bác cho một hàm nào để có thể rút ngắn hơn.
 
Giới thiệu bạn 1 cách khác, xem file nhé!
ANH TUẤN
 

File đính kèm

nokiano258vn đã viết:
Tôi có các mặt hàng như: cốc,chén, ly...đến mặt hàng thứ 30 và muốn quy về thành một nhóm ví dụ là nhóm "một", nếu tôi dùng IF(A1="cốc";"một";IF(A1="chén";"một";IF(A1= "ly";"một"....thì dài quá. Nhờ các bác cho một hàm nào để có thể rút ngắn hơn.

Nên dùng 1 bảng Danh mục phụ, sau đó dùng các hàm tham chiếu đến bạn ạ (Vlookup, index, match, hlookup. . . . )

Thân!
 
Vẫn cái bảng trong file trên, nếu bạn dùng VLOOKUP hoặc INDEX như Bắp nói thì còn nhanh hơn nữa!
Mến
ANH TUẤN
 
Cái như 2 bác nói thì đơn giản rồi, ngặt nỗi nếu chưa phân nhóm và tên các mặt hàng chưa được sắp xếp thì chắc là bó càng luôn, chỉ có nước làm thủ công thôi hà. Tui nghi là bạn gì đó hỏi rơi vào trường hợp này.
 
Thì đàng nào cũng phải định nghĩa Chén, tô, tộ gì đó thuộc nhóm nào, thôi thì ta lập 1 bảng phụ cha cho rồi, đúng ko? Bước đầu là tốn 1 công = nhau, nhưng nếu lập dc bảng phụ rồi thì lần sau đở mệt hơn
 
Câu lệnh if?

Trong câu lệnh =if(D13=D12;c12;"") tại c13 nếu D13=D12 thì =C12 nếu ko thì ="". mình muốn hỏi là theo CT trên thì c13 ="" trong mọi trường hợp trừ D13=D12 vậy nếu muốn cho c13 ko bằng gì cả thì làm thế nào. mình muốn hỏi thay "" bằng cái gì để máy ko tính là 1 cell có dữ liệu.
 
duongsatdn đã viết:
Vấn đề này đã được tranh luận trong bài Cell "RỖNG BÌNH THƯỜNG" và cell "BỊ CÔNG THỨC LÀM CHO RỖNG" có gì khác nhau?
http://www.giaiphapexcel.com/forum/showthread.php?t=3378
cám ơn bạn, nhưng trong diễn đàn mọi người chỉ nói đến thế nào là "RỖNG BÌNH THƯỜNG" VÀ "BỊ CÔNG THỨC LÀM CHO RỖNG" ý mình muốn hỏi là có cách nào để "BỊ CÔNG THỨC LÀM CHO RỖNG" mà máy hiểu là "RỖNG BÌNH THƯỜNG".
Thanks.
 
Khi bạn đã gõ bất cứ cái gì vào một ô thì excel đã hiểu là ô đó không rỗng. Mục đích của bạn làm như vậy là để làm gì?. Bạn vui lòng nói cụ thể hơn để có cách giải quyết triệt để.
 
Có lẽ bạn đang vướng mắc ở 1 công thức khác thì phải? Nếu ko thì cần gì phải quan tâm đến vụ RỔNG BÌNH THƯỜNG hay KHÁC THƯỜNG,đúng ko?
Có thể nói cho mọi người biết bạn vướng ở chổ nào ko? Cần vụ rỗng này đễ làm cái gì?
ANH TUẤN
 
anhtuan1066 đã viết:
Có lẽ bạn đang vướng mắc ở 1 công thức khác thì phải?
ko phải đâu. Câu lệnh của mình vẫn là câu lệnh if bt thôi. Vấn đề là khi mình lọc dữ liệu thì máy nhận cả cell RỖNG KO BT. Vì vậy mình muốn dữ liệu của mình coi đó là RỖNG BÌNH THƯỜNG
 
Bạn đưa toàn bộ file và nói rõ yêu cầu thì sẽ tốt hơn... Nói chung đã là công thức thì dù là RỖNG cũng ko thể nào xem như ko có gì dc... Như có lần tôi nói: MỘT CÁI CHAI BIA RỖNG CHƯA BỎ BIA VÀO TẤT NHIÊN PHẢI KHÁC VỚI CHAI BIA RỔNG VÌ BỊ BẠN UỐNG HẾT CHỨ (Ít nhất khác ở 1 điểm là chai bia bị uống hết nó có cặn) ha... ha...
Tóm lại bạn nên post file thì hơn
 
Bạn lọc dữ liệu bằng cách gì vậy? Nếu cần thiết thì bạn gửi file lên xem sao?
 
Lỗi hàm IF!!!

Em làm bài toán xếp loại học lực, khi dùng hàm IF thì nó báo lỗi "False".
Em viết lệnh như sau mà ko biết sai chỗ nào?
=IF(J3>=9,"G",IF(7<=J3<9,"K",IF(5<=J3<7,"TB",IF(4<=J3<5,"Y",IF(J3<4,"KEM")))))
Ai biết giúp đỡ với, cảm ơn.-+*/
 
Sửa lại CT của bạn.
=IF(J3>=9,"G",IF(J3>=7,"K",IF(J3>=5,"TB",IF(J3>=4,"Y","Kem"))))
 
Nói rõ hơn chút, Excel nó không hiểu cái kiểu 7<=...<9 đâu.
Bạn có thể dùng như cách của Salam. Rất chính xác.

Còn nếu như bạn cố tình muốn x nhỏ hơn 9 và lớn hơn hoặc bằng 7, bạn phải dùng hàm AND: AND(x>=7,x<9) thì Excel nó mới hiểu.
 
Có mấy chỗ sai như sau:
1. Excel nó không hiểu đoạn này: 7<=J3<9 Bạn phiải viết thành AND(J3>=7,J3<9) mới được. Tang tự 5<=J3<7 và 4<=J3<5 cũng sai nốt
2. Hàm IF(J3<4,"KEM") còn thiếu một giá trị nữa. Viết như SALAM như thế này mới đúng cú pháp IF(J3>=4, "Y","Kem")
Đấy kém như tôi mà cũng thấy được chỗ sai nữa là He he
 
Lần chỉnh sửa cuối:
Xin hỏi về Hàm IF

Các Bạn làm ơn cho tôi hỏi về Hàm IF với
Tôi có một Bảng tính thưởng theo Doanh số cho các Đại lý, kiểu như : Dsố <5000 thì không được thưởng, Từ 5000 đến 10000 được thưởng 1% x Dsố thực đạt ....Xin gởi File kèm theo

Xin hỏi : 1- vì các khoảng Dsố và % thưởng đều có quy luật ( cứ thêm 5000tr Dsố thì thêm 1% thưởng ) vậy có cách nào lập công thức cho một khoảng rồi " nhân bản" nó lên không ?
2 - Hình như hàm IF cũng chỉ cho phép giới hạn một số điều kiện nhất định thôi thì phải VD : if( .....,if( .....,if(..... ))) vì khi làm đến ĐK thứ 10 thì Máy Báo Cthức sai ( Hay là tôi hoa mắt gõ lộn hết cả )
 
Chỉnh sửa lần cuối bởi điều hành viên:
Sao tôi không gởi File kèm theo được nhỉ - Có Bạn nào biết xin chỉ giáo
Cảm ơn nhiều

Vì không gởi File kèm được nên Tôi mô tả cách tính thưởng thế này :
Dsô < 5Tr - Không được thưởng - Dsố từ 5-10Tr đuợc thưởng 1% x Dsố đạt, Dsố trên 10Tr đến 15Tr được 2% ......... trên 200Tr được 35% chẳng hạn . Tôi thử làm đến trên 30tr đến 35 tr thì ..tèo . Các Bạn làm ơn chỉ giúp
 
vì mức thưởng tăng theo doanh thu và có quy luật tăng dần đều, vậy bạn hãy nghĩ đến bài toán tỷ lệ thuận. Bản thân Doanh thu không tỷ lệ thuận với tỷ lệ thưởng, nhưng doanh thu chia 5.000.000 lấy phần nguyên thì có tỷ lệ thuận với tỷ lệ % thưởng. Nói đến đây chắc bạn biết phải làm gì rồi chứ?
Nếu vẫn không biết thì đây:
Tỷ lệ thưởng: = Int(A1/5000000)/100
Mức thưởng: =A1*Int(A1/5000000)/100

À mà trên 200 tr thì phải 40% chứ? Nếu 35% thì đâu có đều? Không phải tăng dần đều thì không áp dụng công thức này đâu đấy nhé.
 
Cảm ơn Bạn ptm0412 nhiều
Đúng là nếu Doanh số và tỷ lệ thưởng tăng dần đều thì cách bạn chỉ là tối ưu nhất vì thiết lập công thức rất nhanh
Rất tiếc là tôi vẫn chưa biết cách đính kèm File vào Bài viết nên diễn đạt của tôi chưa rõ nghĩa lắm nhưng bài toán ở trên chỉ là đại khái thôi - đúng là nếu Dso =200 thì tỷ lệ thưởng phải là 40% như Bạn nói
 
Vậy phải gởi File lên thôi, nhấn nút "Đổi sang khung lớn, bạ nsẽ thấy xuất hiện nút "Gởi File trong máy", nhấn nút này. Trong cửa sổ hiện ra nhấn Browse, chọn file, nhấn "thêm file", chờ chạy xong, nhấn "Đóng khung này". Thế là được.
 
saigonvw đã viết:
Các Bạn làm ơn cho tôi hỏi về Hàm IF với
Tôi có một Bảng tính thưởng theo Doanh số cho các Đại lý, kiểu như : Dsố <5000 thì không được thưởng, Từ 5000 đến 10000 được thưởng 1% x Dsố thực đạt ....Xin gởi File kèm theo

Xin hỏi : 1- vì các khoảng Dsố và % thưởng đều có quy luật ( cứ thêm 5000tr Dsố thì thêm 1% thưởng ) vậy có cách nào lập công thức cho một khoảng rồi " nhân bản" nó lên không ?
2 - Hình như hàm IF cũng chỉ cho phép giới hạn một số điều kiện nhất định thôi thì phải VD : if( .....,if( .....,if(..... ))) vì khi làm đến ĐK thứ 10 thì Máy Báo Cthức sai ( Hay là tôi hoa mắt gõ lộn hết cả )
Theo tôi bạn hãy thử dùng cách này nhé :
Ta hình dung doanh số là D, D chia 5tr sẽ cho thương . bạn dùng hàm lấy phần nguyên cuả thương rồi cho nó làm số chọn trong hàm CHOOSE

Công thức theo hình dung của tôi sẽ là : Phần thưởng = D*CHOOSE(QUOTIENT(D;5000000);1%;2%;3%;4%;..............n%))

Trong đó bạn có thể cho giá trị bất kì dù đều hay không.
 
hàm choose rất hay.
Nhưng nếu bạn chia ra được 2 phần, 1 phần tăng dần đều, 1 phần không theo quy luật, thì dùng if ứng dụng theo 2 cách bài 3 và bài 6, mục đích là cho list trong choose() ngắn lại.
 
Status
Không mở trả lời sau này.

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

Back
Top Bottom