Những vấn đề về hàm IF

Liên hệ QC
Status
Không mở trả lời sau này.
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

  • TL-HamIfbisaovay.xls
    88.5 KB · Đọc: 140
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

  • Ham IF.zip
    4.4 KB · Đọc: 622
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

  • Ham IF.xls
    13.5 KB · Đọc: 625
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
 
Status
Không mở trả lời sau này.
Web KT
Back
Top Bottom