Những vấn đề về hàm IF (2 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.
Hàm if phải không ạ ? mà làm thế nào cơ ?!!

Bài này em làm gần xong, còn mắc 1 chỗ tính tiền thưởng thui. Hình như dùng hàm if, and nhưng em làm không đúng :(
Tính thưởng nếu tổng điểm >=20 và khu vực 1 thì được 100
Nếu tổng điểm <20 và >17 hoặc khu vực 2 thì được 500. Còn lại không được thưởng.
Em gửi luôn theo file đính kèm.
 

File đính kèm

Lần chỉnh sửa cuối:
Chưa xem file của bạn, nhưng bạn thử làm thế này, thay thể các cell cho phù hợp với các chữ TổngKV mình dùng.

=IF(AND(Tổng>=20,KV=1),100,IF(OR(AND(Tổng<20,Tổng>17),KV=2),500,0))
 
Bác ơi không đúng rồi, hix hix
 
Tại ô J3: =IF(AND(G3>=20,C3=1),100,IF(OR(17<G3<20,C3=2),500,0)). Sau đó kéo xuống cho các ô còn lại.
Bạn ptlong04X1 làm đúng rùi nhưng mình nghĩ không nên dùng hàm AND ở điều kiện 2 nữa. Hii

Mình xem lại thì bài của bạn ptlong04X1 vẫn có chỗ sai. Bạn xem lại nhé
 
Lần chỉnh sửa cuối:
Bài này em làm gần xong, còn mắc 1 chỗ tính tiền thưởng thui. Hình như dùng hàm if, and nhưng em làm không đúng :(
Tính thưởng nếu tổng điểm >=20 và khu vực 1 thì được 100
Nếu tổng điểm <20 và >17 hoặc khu vực 2 thì được 500. Còn lại không được thưởng.
Em gửi luôn theo file đính kèm.
Tôi nghĩ phải thưởng 1000 chứ không phải 100 ---> Lý nào Điểm > 20 mà chỉ thưởng có 100, trong khi điểm <20 lại thưởng 500?
Thêm nữa:
- ai thuộc KV2 có tổng nằm trong khoảng 18 đến 19 thì thưởng
- Vậy chẳng lẽ ai có tổng >= 20 nhưng thuộc KV2 thì không thưởng
Bạn xem lại điều kiện đề bài ---> Tôi thấy nó vô lý lắm!
 
Lần chỉnh sửa cuối:
Đề nó thế thì biết thế thui, có gì đâu chứ. Bác ndu9608631 ơi, em làm ra cái thưởng sao lúc kéo xuống nó lại có ô False nhỉ ? ( ô J4, J7, J8 ý)
 
Em làm được ùi bác ạ, thank bác naz, tại nhầm nhọt một tí, :">
 
Đề nó thế thì biết thế thui, có gì đâu chứ. Bác ndu9608631 ơi, em làm ra cái thưởng sao lúc kéo xuống nó lại có ô False nhỉ ? ( ô J4, J7, J8 ý)
Nếu đúng đề bài thế thì công thức phải như vầy:
=IF(AND(G3>=20,C3=1),100,IF(AND(G3>17,G3<20,C3=2),500,0))
Chỉ là KẾT NỐI các điều kiện với nhau! Tuy nhiên sau khi fill công thức xong, kiểm tra lại bạn sẽ thấy có rất nhiều chổ vô lý
Bạn xem file đây
Hỏi lại thầy nha ---> Đề nó ra thế chẳng lẽ bạn không có nhận xét của riêng mình? ---> Đề chắc gì đã đúng?
 

File đính kèm

đâu có thế bác, chắc bác nhầm nhọt chỗ nào ùi. Hihi, em làm đúng naz
 

File đính kèm

Quái, sao hai công thức trông giống nhau mà lại cho ra kết quả khác nhau được nhỉ:
Theo Ndu: =IF(AND(G3>=20,C3=1),100,IF(AND(G3>17,G3<20,C3=2), 500,0))
=IF(AND(G3>=20,C3=1),100,IF(OR(17<G3<20,C3=2),500, 0))
 
em làm theo công thức của bác ndu có thấy bị làm sao đâu, thế mà bác ấy làm lại thấy chỗ vô lý, thực ra chẳng có chỗ nào vô lý cả, do bác ấy nhầm chỗ nào thui
Hix, lạ đời thế, chỉ công thức cho người ta mà mình lại làm nhầm.
 
em làm theo công thức của bác ndu có thấy bị làm sao đâu, thế mà bác ấy làm lại thấy chỗ vô lý, thực ra chẳng có chỗ nào vô lý cả, do bác ấy nhầm chỗ nào thui
Hix, lạ đời thế, chỉ công thức cho người ta mà mình lại làm nhầm.
Ah... tôi biết rồi... Nó phải thế này:
=IF(OR(C3>2,G3<17),0,IF(AND(G3>=20,C3=1),100,500))
Tuy nhiên tôi nghĩ số 100 ấy phải là 1000 mới đúng, bạn hỏi lại thầy xem!
 

File đính kèm

Em làm giống bác ndu có làm sao đâu, đúng 100% mà
Bác ấy chỉ công thức cho em thế mà lại làm sai. Hixhix

Ờ, bác nói có lý, khu vực 1 và lớn hơn 20 điểm thì điểm thưởng phải là >500 chứ nhỉ. Đằng này lại có 100. Nhưng đó chỉ là một tí sai của tính logic thui mà. Bác thông cảm, có khi cô giáo trong lúc mải mê...hi hi nên nhầm
 
Chỉnh sửa lần cuối bởi điều hành viên:
Em làm giống bác ndu có làm sao đâu, đúng 100% mà
Bác ấy chỉ công thức cho em thế mà lại làm sai. Hixhix
Chưa chắc!
Bạn xem lại file của mình:
J7 sao lại có kết quả = 0 (đấy là KV1, 19 điểm ---> Lý ra phải = 500 chứ)
J9 sao lại có kết quả = 500 (đấy là KV2 nhưng chỉ có 12 điểm ---> Lý ra phải =0 chứ)
 
khu vực 1 nhưng mà điểm 19. Điểm >=20 mới được cộng 100 cơ mà. Còn cái kia thì chịu rùi. Chắc bác nhắc nhầm em cái công thức ùi
 
Thế còn cái bài 2 thì làm hàm sumif phải không ạ ?
Cái khó ở đây là em không biết kết hợp cả 3 yêu cầu là thế này:
1, Tính tổng lương của những người từ 35 tuổi trở xuống.
2, Tính tổng lương của những người không có phụ cấp.
3, Tính tổng lương của những người có phụ cấp
 
Thế còn cái bài 2 thì làm hàm sumif phải không ạ ?
Cái khó ở đây là em không biết kết hợp cả 3 yêu cầu là thế này:
1, Tính tổng lương của những người từ 35 tuổi trở xuống.
2, Tính tổng lương của những người không có phụ cấp.
3, Tính tổng lương của những người có phụ cấp
3 yêu cầu này là 3 công thức riêng biệt, làm gì phải kết hợp chứ
1, Tính tổng lương của những người từ 35 tuổi trở xuống.
=SUMIF($D$16:$D$21,"<=35",$G$16:$G$21)
2, Tính tổng lương của những người không có phụ cấp.
=SUMIF($F$16:$F$21,0,$G$16:$G$21)
3, Tính tổng lương của những người có phụ cấp
=SUMIF($F$16:$F$21,">0",$G$16:$G$21)
Xem file
Nói thêm: Cột tính tuổi bạn tính vậy không đúng đâu. Tôi đã tính lại cho bạn!
 

File đính kèm

Chưa chắc!
Bạn xem lại file của mình:
J7 sao lại có kết quả = 0 (đấy là KV1, 19 điểm ---> Lý ra phải = 500 chứ)
J9 sao lại có kết quả = 500 (đấy là KV2 nhưng chỉ có 12 điểm ---> Lý ra phải =0 chứ)

Bạn Ndu hiểu nhầm đề bài rồi. Điều kiện 2 phải là hàm OR chứ không phải hàm AND.
=IF(AND(G3>=20,C3=1),100,IF(AND(G3>17,G3<20,C3=2), 500,0))
phải sửa lại:
=IF(AND(G3>=20,C3=1),100,IF(OR(17<G3<20,C3=2), 500,0)
hoặc:
=IF(AND(G3>=20,C3=1),100,IF(OR(AND(G3>17,G3<20),C3=2), 500,0))
 
J9 sao lại có kết quả = 500 (đấy là KV2 nhưng chỉ có 12 điểm ---> Lý ra phải =0 chứ)
Anh xem lại cái này:
Bài này em làm gần xong, còn mắc 1 chỗ tính tiền thưởng thui. Hình như dùng hàm if, and nhưng em làm không đúng :(
Tính thưởng nếu tổng điểm >=20 và khu vực 1 thì được 100
Nếu tổng điểm <20 >17 hoặc khu vực 2 thì được 500. Còn lại không được thưởng.
Lấn cấn ở cái chỗ này.
Nếu tổng điểm <20 >17 hoặc khu vực 2...
Có thể hiểu như thế nào?
  1. Tổng điểm nhỏ hơn 20 và (tổng điểm lớn hơn 17 hoặc thuộc khu vực 2)
  2. (Tổng điểm nhỏ hơn 20 và tổng điểm lớn hơn 17) hoặc thuộc khu vực 2
Nếu hiểu theo kiểu thứ nhất, thì 2 trường hợp sau được thưởng 500:
  • Tổng điểm lớn hơn 17 và nhỏ hơn 20 (khu vực nào cũng được)
  • Tổng điểm nhỏ hơn 20 và thuộc khu vực 2
Nếu hiểu theo kiểu thứ hai, thì 2 trường hợp sau được thưởng 500:
  • Tổng điểm lớn hơn 17 và nhỏ hơn 20 (khu vực nào cũng được)
  • Thuộc khu vực 2 (mấy điểm cũng được)
Xem kỹ lại cả 2 trường hợp, có thể thấy trường hợp anh nói: 12 điểm thuộc khu vực 2 --> thưởng 500 là đúng.
 
...
=IF(AND(G3>=20,C3=1),100,IF(OR(17<G3<20,C3=2), 500,0)
hoặc:
=IF(AND(G3>=20,C3=1),100,IF(OR(AND(G3>17,G3<20),C3=2), 500,0))
Chỉ có công thức ở dưới là đúng, còn công thức tôi tô màu đỏ là sai. Không thể là cái này hoặc cái kia đâu bạn ơi.
Excel không thể hiểu biểu thức này: 17<G3<20
 
Bác BNTT làm mới thực sự chính xác, cái nhận xét của bác về đề bài cũng đúng. bác ndu hiểu lầm đề bài giống em rùi. Hì hì
Cảm ơn bác BNTT ná
 
Hàm Sum và If

Tôi thường vẫn sử dụng hàm Sum để đếm các thông tin giống nhau, nhưng dạo này mỗi khi tôi dung lệnh đó thì lại bị báo lỗi đây là ví dụ, mọi người xem và giúp tôi với nhé.
Vd=SUM(IF($F$8:$F$55="Nữ",1,0))
Xin chân thành cảm ơn.
Chờ tin tốt lành từ các bạn.
 
Bạn gõ công thức xong phải ấn tổ hợp phím Ctrl+Shift+Enter mới được.

Trong bài toán này, không nhất thiết phải dùng công thức mảng đâu bạn, Dùng COUNTIF cho nhanh hơn.
 
Hàm IF

Mình dùng hàm IF theo câu hỏi của đề bài ở cột Đ.Thêm(H) nhưng nó lại ra sai. Nhờ các bạn xem wa file rồi chia sẽ cho mình chỗ sai ở đâu. Cám ơn
 

File đính kèm

Nó đâu có sai! Mà tại bạn khai báo thiếu một vế của hàm IF đầu tiên (nếu ĐTB < 10) nên khi gặp ĐTB > 10 thì hàm IF trả về giá trị False, là chính xác đó chứ. Nếu như không muốn thấy cái giá trị False này, thì bạn phải cho IF biết nếu gặp False thì trả về bao nhiêu...

Giả sử bạn muốn rằng nếu gặp False thì trả về 0:

Công thức của bạn:
=IF(G3<10, IF(C3<1970, G3+0.75, IF(B3="Nữ", G3+0.5, G3)))​
Chỉ cần thêm một chút xíu ở cuối:
=IF(G3<10, IF(C3<1970, G3+0.75, IF(B3="Nữ", G3+0.5, G3)), 0)​
Hoặc là sửa lại và thêm vào ngay từ đầu:
=IF(G3>=10, 0, IF(C3<"1970", G3+0.75, IF(B3="Nữ", G3+0.5, G3)))​
 
Nó đâu có sai! Mà tại bạn khai báo thiếu một vế của hàm IF đầu tiên (nếu ĐTB < 10) nên khi gặp ĐTB > 10 thì hàm IF trả về giá trị False, là chính xác đó chứ. Nếu như không muốn thấy cái giá trị False này, thì bạn phải cho IF biết nếu gặp False thì trả về bao nhiêu...

Giả sử bạn muốn rằng nếu gặp False thì trả về 0:

Công thức của bạn:
=IF(G3<10, IF(C3<1970, G3+0.75, IF(B3="Nữ", G3+0.5, G3)))​
Chỉ cần thêm một chút xíu ở cuối:
=IF(G3<10, IF(C3<1970, G3+0.75, IF(B3="Nữ", G3+0.5, G3)), 0)​
Hoặc là sửa lại và thêm vào ngay từ đầu:
=IF(G3>=10, 0, IF(C3<"1970", G3+0.75, IF(B3="Nữ", G3+0.5, G3)))​

Bác BNTT chưa đọc kĩ công thức của bạn ice_breaker rồi tôi Xin mạn phép suẳ lại công thức cho đúng với yêu cầu của bạn ice_breaker như sau:
=IF(G3<10, IF(C3<1970, G3+0.75, IF(B3="Nữ", G3+0.5, G3)), G3);
 
Lần chỉnh sửa cuối:
Bác BNTT chưa đọc kĩ công thức của bạn ice_breaker rồi tôi Xin mạn phép suẳ lại công thức cho đúng với yêu cầu của bạn ice_breaker như sau:
=IF(G3<10, IF(C3<1970, G3+0.75, IF(B3="Nữ", G3+0.5, G3)), G3);
Hì hì... Đương nhiên là tôi đã đọc kỹ rồi, chẳng những công thức mà còn cả cái đề bài nữa bạn à! Công thức của bạn, nếu như G3 (điểm TB) không < 10 (tức là >= 10) thì sẽ trả về kết quả là G3, Ở ĐÂU RA CHUYỆN ĐÓ VẬY?

Bạn xem cái này nhé:
000-1863.jpg
Để tôi dịch nguyên văn cái câu trong cái khung đó thành tiếng Việt nghe:
Nếu ĐTB dưới 10 thì được thêm như sau:
- Nếu sinh trước năm 1970 thì được thêm 0.75 điểm
- Ngược lại (từ năm 1970 trở về sau), nếu là phái nữ thì được thêm 0.5 điểm​
Người ta đâu có nói rằng nếu ĐTB từ 10 trở lên thì lấy ĐTB (ở cột G) ?

Tuy nhiên, tôi có sai khi quên sửa cái công thức của tác giả:
=IF(G3<10,IF(C3<"1970",G3+0.75,IF(B3="Nữ",G3+0.5,G3)))​
Bạn xem nha, cái cột G là cột điểm thêm, chứ đâu phải là cộng thêm với điểm TB? Do đó, bạn cộng thêm G3 vào là sai. Chỉ là 0.75 và 0.5 mà thôi.
Thứ hai, con số 1970 tại sao lại bỏ trong dấu nháy nháy làm gì?

Công thức chính xác (theo đúng đề bài) cho cột H sẽ là:
=IF(G3<10, IF(C3<1970, 0.75, IF(B3="Nữ", 0.5, 0)), 0)​
Hoặc là:
=IF(G3>=10, 0, IF(C3<1970, 0.75, IF(B3="Nữ", 0.5, 0)))​
Hoặc là như vầy, ngắn nhất, chỉ cần 1 cái IF thôi:
=(G3<10)*IF(C3<1970, 0.75, (B3="Nữ")*0.5)
 
Lần chỉnh sửa cuối:
Hi hi...! Em xin lỗi bác BNTT chắc hôm qua em buồn ngủ nên nhìn gà hóa cuốc mất rồi. Đúng là không có dK "nếu ĐTB từ 10 trở lên thì lấy ĐTB (ở cột G)" thật. Sorry bác!
 
Lần chỉnh sửa cuối:
Cám ơn tất cả các sự giải thích, góp ý và sửa lỗi của các bạn. Giờ mình đã hiểu rồi
 
các anh ơi chỉ dùm em cach sử dụng cũa hàm IF đi!
 
Xin cảm ơn bạn ca_dafi, nhờ bạn tớ đã làm được rồi.
 
Các bác ơi cho tôi hỏi chút nhé, trong excel có cách dung hàm nào ma khi ta ghi số liệu vào sổ nhật ký chung thì số liệu ở các sổ chi tiết đều tự nhảy được không. Bác nào biết thi bảo giúp em với nhe!
Thanks.
 
Giúp đỡ: Hàm IF

Cô giáo cho bài tập về ôn để thi ah. Mọi người giúp e làm bài nhé... Tks cả nhà ah.
Các bác cho e hỏi thêm cách làm với hàm khác ah, như VLOOK chẳng hạn ah...
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn xem file đính kèm. Hy vọng lần sau bạn sẽ tự làm, có gì không hiểu thì post lên diễn đàn, mọi người sẽ giúp cho bạn.
Thân.
 

File đính kèm

Giúp em hàm If với!

Anh chị giúp em với. Em đang muốn tính như sau. Nếu em điền giá trị vào cột KL Bốc xúc thì se tự động nhân với đơn giá
bốc xúc, nếu điền vào cột KL chuyển tải thì nhân với đơn giá chuyển tải, còn nếu điền vào cột vun cốn thì nhân với giá vun cốn kết quả hiện ở cột Thành tiền!
EM gửi file đính kèm anh chi xem giúp em với ạ!
 

File đính kèm

Anh chị giúp em với. Em đang muốn tính như sau. Nếu em điền giá trị vào cột KL Bốc xúc thì se tự động nhân với đơn giá
bốc xúc, nếu điền vào cột KL chuyển tải thì nhân với đơn giá chuyển tải, còn nếu điền vào cột vun cốn thì nhân với giá vun cốn kết quả hiện ở cột Thành tiền!
EM gửi file đính kèm anh chi xem giúp em với ạ!
Tôi nghĩ đơn giản nhất là dùng SUMPRODUCT, tai cell E10 bạn gõ công thức sau:
=SUMPRODUCT((TRANSPOSE(B10:D10))*($H$1:$H$3))
Nhớ bấm Ctrl + Shift + Enter nhé
Hay đơn giản và dể hiểu thì:
=$B10*$H$1+$C10*$H$2+$D10*$H$3
 
Lần chỉnh sửa cuối:
Em cảm ơn bác nhiều em đã làm được rồi.
 
Ở ô H10 bạn gõ:
=B10*$H$1+C10*$H$2+D10*$H$3
xong kéo xuống cho các ô kế tiếp.
 
Cho em hỏi về công thức tính hàm if

Em làm bài tập có chỗ khúc mắc như sau nhờ anh, chị giúp đỡ cho em với
Đề bài :
Lập công thức cho cột điểm thêm như sau:
+ Nếu sinh trước năm 1972 thì được thêm 1.75
+ Nếu sinh từ năm 1972 trở về sau và là phái Nữ thì điểm thêm là 1.5
Em mới học Excel nên còn mù tịt khoản này. Mong nhận được hồi âm sớm của anh, chị.+-+-+-+
 
Bạn tham khảo công thức sau:
PHP:
=IF(A2>1972,1.75,IF(AND(A2<=1972,B2="Nữ"),1.5,""))
 
Anh ơi đề bài cho là sinh sau năm 1972 và là nữ thì được +1.5 mà anh. Hình như còn thiếu phần +1.5 điểm
 
Anh ơi đề bài cho là sinh sau năm 1972 và là nữ thì được +1.5 mà anh. Hình như còn thiếu phần +1.5 điểm
Lý ra bạn phải giả lập dử liệu rồi đưa lên đây chứ! Ai biết được cột ngày tháng năm sinh bạn nhập như thế nào (nếu nhập theo dạng 1971, 1972, 1973 thì khác, còn nhập đủ dd/mm/yyyy lại khác)
Tôi gửi file bạn xem thế nào rồi ta bàn tiếp
PHP:
=IF(YEAR(B2)<1972,1.75,IF(AND(YEAR(B2)>=1972,C2="Nữ"),1.5,0))
(Bạn QuocPhong đang nhầm... Trước 1972 có nghĩa là < 1972 chứ không phải > )
 

File đính kèm

Đây là File của em anh giúp em với
 

File đính kèm

Bạn xem thử bài của minh nha
 

File đính kèm

dung hàm if

giup minh xep loai hoc sinh trong bai nay voi
gap gap gap
 

File đính kèm

giup minh xep loai hoc sinh trong bai nay voi
gap gap gap
Bạn nên sửa lại tiếng Việt có dấu nhé!

Ô H6 gõ công thức sau:
=CONCATENATE(CHOOSE(ROUNDDOWN(MOD($G6,100)/10,0)+1,"F","F","F","F","F","F","D","C","B","A","A"),CHOOSE((ROUNDDOWN(MOD($G6,100)/10,0)>=6)*((MOD($G6,10)>=0)+(MOD($G6,10)>=3)+(MOD($G6,10)>=7))+1,"","-","","+"))

Sau đó copy công thức xuống dưới. Bài này không cần dùng một hàm IF nào cả!
 

File đính kèm

Giúp đỡ: hàm If và hàm Mod

Em nhờ mấy anh chị giúp em xem bai excel này với.
Yêu cầu sử dụng hàm if, and và hàm mod.
Em cảm ơn nhiều
 

File đính kèm

Nhưng đề bài yêu cầu là dùng hàm if , and, và hàm mod
Bạn có thể giúp mình với?
 
Cảm ơn các bạn đã giúp mình, nhưng mình muốn hỏi về cách dùng hàm if.
Giúp mình với.
Trước tiên tôi xin gởi đến bạn vài lời góp ý như sau:
- Mọi người trên diễn đàn sẽ rất ngại giúp những acc có bài post bị phạm qui và những acc có tổng số lần cảm ơn =0 vì:
- Bài phạm qui sẽ bị delete
- acc có tổng số lần cảm ơn =0 vì không biết nhấn nút cảm ơn hoặc không thích nhấn nút cảm ơn -->sau khi đau đầu suy nghĩ ra giải pháp giúp người khác nhưng lại chẳng nhận được sự khích lệ phản hồi nào từ người đó --> không thèm giúp nữa đâu!
Vài lời góp ý chân tình mong bạn đừng giận nhe!
Còn với yêu cầu của bạn thì theo cách giải của anh ca_dafi là rất hay vì bài này ai mà đi dùng hàm if. Nếu bắt buộc chỉ dùng hàm if thì (hỡi ôi) một công thức dài nhằng ở ô H6 như sau:
=IF(G6<60,"F",IF(G6<70,"D"&IF(G6<63,"-",IF(G6<67,"","+")),IF(G6<80,"C"&IF(G6<73,"-",IF(G6<77,"","+")),IF(G6<90,"B"&IF(G6<83,"-",IF(G6<87,"","+")),"A"&IF(G6<93,"-",IF(G6<97,"","+"))))))
p/s: bạn phải nhớ rằng hàm if không cho lồng vào nhau quá 8 lần đâu nhe!
 
Lần chỉnh sửa cuối:
Đây là bài toán mẹo thôi mà!

Nhưng đề bài yêu cầu là dùng hàm if , and, và hàm mod
Bạn có thể giúp mình với?

Tại 'G6' bạn nhập công thức sau:

=IF(F6>=90,"A",IF(F6>=80,"B",IF(F6>=70,"C",IF(F6>=60,"D","F")))) & IF(MOD(F6,10)<3,"-",IF(MOD(F6,10)>7,"+",""))
 
Lần chỉnh sửa cuối:
Hình như là phải như thế này thì chính xác hơn

Tại 'G6' bạn nhập công thức sau:

=IF(F6>=90,"A",IF(F6>=80,"B",IF(F6>=70,"C",IF(F6>=60,"D","F")))) & IF(MOD(F6,10)<3,"-",IF(MOD(F6,10)>7,"+",""))
Công thức trên đây, chưa chính xác 100%. Ví dụ:
1. Khi DTB = 67 (em Giang), lẽ ra kết quả phải là D+, thì công thức trên đây ra kết quả là D.
2. Cho thử một DTB = 58, kết quả sẽ là F+, điều này không có trong yêu cầu.

Xin phép sửa lại một chút: xếp hàm IF từ nhỏ đến lớn, sửa điều kiện MOD(F6,10)>7 thành MOD(F6,10)>=7;
và chỉ ghép thêm dấu + hoặc dấu - khi DTB lớn hơn hoặc bằng 60 (đổi vị trí một dấu đóng ngoặc đơn của IF, không cần dùng đến AND đâu):

=IF(F6<60, "F", IF(F6<70, "D", IF(F6<80, "C", IF(F6<90, "B", "A"))) & IF(MOD(F6,10)<3, "-", IF(MOD(F6,10)>=7, "+", "")))
 
Lần chỉnh sửa cuối:
Hỏi về hàm if và or?

Mình có một file như sau muốn tham khảo ý kiến của các bạn xem có đúng ko? Và bạn nào biết hãy lập lại công thức giúp mình nhé. Thanks!
 

File đính kèm

Mình có một file như sau muốn tham khảo ý kiến của các bạn xem có đúng ko? Và bạn nào biết hãy lập lại công thức giúp mình nhé. Thanks!

Không cần OR đâu, đặt lại Name : MaNO = $A$2:$C$26, MaCO = $B$2:$D$26
Công thức như sau :
PHP:
C5 = IF(ISERROR(VLOOKUP(G5,MaNO,3,0)),"",VLOOKUP(G5,MaNO,3,0))
D5 = IF(ISERROR(VLOOKUP(G5,MaCO,3,0)),"",VLOOKUP(G5,MaCO,3,0))

Thân
 
Cảm ơn bạn nha. Tiện mình hỏi luôn sự khác nhau giữa hàm or và iserror là ji vậy?
 
Cảm ơn bạn nha. Tiện mình hỏi luôn sự khác nhau giữa hàm or và iserror là ji vậy?

Hai hàm này hoàn toàn khác xa nhau.

Hàm Or được dùng trong các biểu thức logic. Trả về True nếu có ít nhất 1 giá trị là True, trả về False khi toàn bộ giá trị đều là False.
VD : =or(1<2,"a"="b") => True ; =or(1>2,"a"="b") => False

Hàm Iserror dùng để kiểm tra lổi của giá trị trả về. Trả về True nếu có lỗi, False nếu không có lỗi.
VD : =Iserror(1/0) => True
 
Hoangdanh ơi ! Nếu bạn giỏi êxcl như vậy bạn có thể giúp mình thiết lập kế toán theo ình thức chứng từ ghi sổ trên êxcl không bạn
Mình cảm ơn nhiều
Email của mình: thuynu16@gmail.com
 
Lần chỉnh sửa cuối:
Những dấu "","" trong hàm if có nghĩa là gì vậy?

Em ko hiu những dấu "","" trong hàm if co nghĩa là gì vậy?
 
Nghĩa là ký tự rỗng đó bạn. Vd: =If(A3>0,"","True") ==> Tại A3 bạn nhập giá trị nào đó, nếu A3>0 thì ô A3 không hiển thị gì hết, ngược lại thì hiện lên chữ "True".
 
Em ko hiu những dấu "","" trong hàm if co nghĩa là gì vậy?

Muốn ghi một chuỗi thì ta dùng dấu " trước và sau chuỗi đó. VD "danh"; nếu ta ghi " " thì giá trị trả về là khoảng trắng, nếu ta ghi "" thì giá trị trả về là rỗng
Dấu , dùng để ngăn cách các đồi số trong hàm If. Hoặc nếu là "," thì có nghĩa là giá trị trả về là ,
 
Giúp mình về hàm if với

Mình có file đính kèm,mong các bạn giúp mình.Chân thành cảm ơn.
 

File đính kèm

Bạn xem thử File đính kèm có đúng ý bạn không ?
 

File đính kèm

Hỏi về hàm IF

Nếu mình muốn nếu giá trị trong ô A1 là 5 thì B1=a,C1=b,D1=c.Thì viết như thế nào,giá trị trong B1,C1,D1 se thay đổi theo A1,nếu viết được bằng VBA thì càng tốt.Chân thành cảm ơn.
 
hàm if

Nếu mình muốn nếu giá trị trong ô A1 là 5 thì B1=a,C1=b,D1=c.Thì viết như thế nào,giá trị trong B1,C1,D1 se thay đổi theo A1,nếu viết được bằng VBA thì càng tốt.Chân thành cảm ơn.
Bạn không đưa cụ thể thì biết làm thế nào?
Còn nếu chỉ với trường hợp bạn nêu ra thì:
-Tại ô B1: =if(A1=5;"a";"")
-Tương tự như vậy tại các ô còn lại.
 
View attachment 29225
Nếu mình muốn nếu giá trị trong ô A1 là 5 thì B1=a,C1=b,D1=c.Thì viết như thế nào,giá trị trong B1,C1,D1 se thay đổi theo A1,nếu viết được bằng VBA thì càng tốt.Chân thành cảm ơn.

Mình biết rất ít về VB nhưng cũng viết 1 code đơn giản để bạn tham khảo về If trong VB
 

File đính kèm

Lần chỉnh sửa cuối:
Nếu mình muốn nếu giá trị trong ô A1 là 5 thì B1=a,C1=b,D1=c.Thì viết như thế nào,giá trị trong B1,C1,D1 se thay đổi theo A1,nếu viết được bằng VBA thì càng tốt.Chân thành cảm ơn.

Bài này bạn đã hỏi ở 1 nơi nào đó trên diễn đàn này;
Nhưng do thông tin bạn đưa ra quá mu mơ nên chỉ được trả lời nữa vời!

Muốn viết VBA thì có hai cách;

Thứ nhứt: Viết macrro, mà cách thức của nó làm việc như sau:
Nếu bạn nhập bất kỳ ô nào trong cột 'A' 1 khoảng số trị hay giá trị nào thỏa yêu cầu đề ra, thì macro sẽ gán các số trị vô các ô bên phải liền kề theo iêu cầu;
(Diễn dịnh rõ thêm: Nếu ta nhập vô 1 ô nào đó trên cột 'A' số trị từ 5 đến 7 thì các ô cùng hàng bên phải sẽ nhận được 1 cách tự động các ký tự 'a', 'b' & 'c' tương ứng;

Thứ hai: Viết một hàm, như có lần tôi đã viết cho bạn (Bạn xem lại bài đó)

Lúc đó nó như các hàm mảng trong excel thân thương của bạn:
Tô chọn 3 ô bên phải liền kề với ô trên cột 'A' cần lượng giá
Nhập cú pháp hàm & kết thúc bằng tổ hợp 3 phím cho hàm mảng;

Khi đó trên cả ba ô kề phải ô cùng hàng nằm trên cột 'A' cần lượng giá sẽ cùng xuất hiện các ký tự hay ký số theo điều kiện chúng ta áp đặt
 
hàm if lồng???

Mình đang làm bài tập về hàm if mà ko biết giải quyết ra sao. Rất mong các bạn vui lòng chỉ giúp mình. Thanks!
 

File đính kèm

Mình đang làm bài tập về hàm if mà ko biết giải quyết ra sao. Rất mong các bạn vui lòng chỉ giúp mình. Thanks!
Bài toán của bạn thường thì người ta dùng hàm Vlookup() chứ ko ai dùng hàm If() cả. Bạn tham khảo công thức dưới đây:
Mã:
G3=VLOOKUP(F3,$L$6:$M$10,2)
 
View attachment 29225

Mình biết rất ít về VB nhưng cũng viết 1 code đơn giản để bạn tham khảo về If trong VB
Cảm ơn bạn,rất đúng ý mình,nhưng cho mình hỏi nếu muốn làm thêm cái giống vậy trong sheet này chẳng hạn như tại ô A2,giá trị của B2,C2,D2 sẽ phụ thuộc vào A2 giống như hàng A1 nhưng 2 hàng A1 và A2 hoàn toàn độc lập không liên quan gì đến nhau.Chân thành cảm ơn.
 

File đính kèm

Lần chỉnh sửa cuối:
Cảm ơn bạn,rất đúng ý mình,nhưng cho mình hỏi nếu muốn làm thêm cái giống vậy trong sheet này chẳng hạn như tại ô A2,giá trị của B2,C2,D2 sẽ phụ thuộc vào A2 giống như hàng A1 nhưng 2 hàng A1 và A2 hoàn toàn độc lập không liên quan gì đến nhau.Chân thành cảm ơn.
Do mình hiểu rất ít về VB nên chỉ làm theo cách là chèn thêm vào cuối sub đã có
Code này :
If [A2] = 8 Then
[B2] = "n": [C2] = "v": [D2] = "z"
Else
[B2] = "" : [C2] = "" : [D2] = ""
End If
Các Bạn giỏi VB chắc không làm theo cách này
Thân
 
Lần chỉnh sửa cuối:
Do mình hiểu rất ít về VB nên chỉ làm theo cách là chèn thêm vào cuối sub đã có
Code này :
If [A2] = 8 Then
[B2] = "n": [C2] = "v": [D2] = "z"
Else
[B2] = "" : [C2] = "" : [D2] = ""
End If
Các Bạn giỏi VB chắc không làm theo cách này
Thân
Làm cách này bị báo lỗi bạn ơi.
 
Chuyển giao đến bạn 2 mảcro xài chơi

(Mỗi cái 1 trang tính à nha!)
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("A1:A99")) Is Nothing Then
   With Target
      Select Case Target.Value
      Case Is = 0, 2
         .Offset(, 1) = "":       .Offset(, 2) = ""
         .Offset(, 3).Value = ""
      Case Is = 1, Is < 9
         .Offset(, 1) = "a":       .Offset(, 2) = "b"
         .Offset(, 3).Value = "c"
      Case 10, 12
         .Offset(, 1) = "8A":       .Offset(, 2) = "9A"
         .Offset(, 3).Value = "10A"
      Case Is < 20
         .Offset(, 1) = "X":       .Offset(, 2) = "Y"
         .Offset(, 3).Value = "Z"
      Case Is > 24
         .Offset(, 1) = "Lung tung":       .Offset(, 2) = "Tu Tung"
         .Offset(, 3).Value = "Lon xon"
      End Select
   End With
 End If
End Sub

'- - - - - - - - - - - - - - - - - - '- - - - - - - - - - - - - - - - - - '

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("A1:A99")) Is Nothing Then
   Dim SoNhap
   SoNhap = Target.Value
   Target.Offset(, 1) = Switch(SoNhap < 7, 7, SoNhap > 10, 20, SoNhap > 30, 30)
   Target.Offset(, 2) = Switch(SoNhap < 7, "A", SoNhap > 10, "B", SoNhap > 30, "C")
   Target.Offset(, 3) = Switch(SoNhap < 7, 10, SoNhap > 10, 24, SoNhap > 30, 35)
 End If
End Sub
 
À mình quên bạn chèn vào cuối nhưng trước End sub
 
(Mỗi cái 1 trang tính à nha!)
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("A1:A99")) Is Nothing Then
   With Target
      Select Case Target.Value
      Case Is = 0, 2
         .Offset(, 1) = "":       .Offset(, 2) = ""
         .Offset(, 3).Value = ""
      Case Is = 1, Is < 9
         .Offset(, 1) = "a":       .Offset(, 2) = "b"
         .Offset(, 3).Value = "c"
      Case 10, 12
         .Offset(, 1) = "8A":       .Offset(, 2) = "9A"
         .Offset(, 3).Value = "10A"
      Case Is < 20
         .Offset(, 1) = "X":       .Offset(, 2) = "Y"
         .Offset(, 3).Value = "Z"
      Case Is > 24
         .Offset(, 1) = "Lung tung":       .Offset(, 2) = "Tu Tung"
         .Offset(, 3).Value = "Lon xon"
      End Select
   End With
 End If
End Sub

'- - - - - - - - - - - - - - - - - - '- - - - - - - - - - - - - - - - - - '

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("A1:A99")) Is Nothing Then
   Dim SoNhap
   SoNhap = Target.Value
   Target.Offset(, 1) = Switch(SoNhap < 7, 7, SoNhap > 10, 20, SoNhap > 30, 30)
   Target.Offset(, 2) = Switch(SoNhap < 7, "A", SoNhap > 10, "B", SoNhap > 30, "C")
   Target.Offset(, 3) = Switch(SoNhap < 7, 10, SoNhap > 10, 24, SoNhap > 30, 35)
 End If
End Sub
Chào Bạn Hyen17
Không biết mình có lộn chủ đề hay không ? Theo mình hiểu code1 của bạn giải thích là :
Sheet chọn
nếu vùng A1:A99 khác khoảng trống
với chỉ định như sau theo Select Case
tham chiếu đến giá trị khác nhau
Không biết mình nghỉ như thế có đúng không ?
Còn code 2 mình không hiểu lắm, nhờ bạn giải thích thêm.
Thân
 
:-=
Còn code 2 mình không hiểu lắm, nhờ bạn giải thích thêm.
Thân

Bạn thử lấy trang tính mới;
Nhập vô các ô cột 'A' từ dòng 1-99 những giá trị sau:

0 , 6 , 7 , 12, 9 , -200, 19, 29 , 100, . . . & nghiền ngẫm với những kết quả xuất hiện trên các cột 'B:D' của các ô cùng hàng;

Hàm SWITCH() trong VBA ít ra thay thế rất kỳ dịệu cho If. . . ElsèIf . . . EndIf
& Select Case . . . .
Hàm này hơn hàm CHOOSE() vì làm việc được với ký tự . . .

Chúc vui vẻ
 
Cám ơn bạn Hyen17
Do mình hơi OLD và chị tự học nên không hiểu nhiều vấn đề về VB.
Mình sẽ text thử. Hẹn gặp lại bạn trên tocpic mới.
Xin chào
 
Mình đã làm được rồi,cám ơn các bạn,cám ơn diễn đàn.
 
Chào Bạn Hyen17
Xin phép bạn đôi chút, mình đã Text đoạn code 2 hình như khi :
so nhap > 30 thì cột B, C, D không trả về lần lượt là 30, "C" , 35
Muốn trả về như yêu cầu thì phải thêm sau SoNhap > 10 And sonhap<=30 ,....
cho cả 3 đoạn Target.Offset
Cảm ơn Bạn
 
Nhân tiện cho mình hỏi:mình muốn nếu tại ô A1 =1.5 nếu A2 nhỏ hơn hoặc bằng 10 còn không thì bằng 2 mình viết biể thức như vầy sao excel không hiểu.Tại A1 =if(A2<=10,1.5,2).các bạn xem lại công thức này đúng hay sai giùm mình.Chân thành cảm ơn.
 
Nhân tiện cho mình hỏi:mình muốn nếu tại ô A1 =1.5 nếu A2 nhỏ hơn hoặc bằng 10 còn không thì bằng 2 mình viết biể thức như vầy sao excel không hiểu.Tại A1 =if(A2<=10,1.5,2).các bạn xem lại công thức này đúng hay sai giùm mình.Chân thành cảm ơn.

Công thức thì đúng. Nhưng bạn xem lại định dạng phân cách số trong control panel máy bạn xem. Có thể bạn dùng dấu ; thay vì ,
 
Công thức đúng nhưng xem lại cách định dạng số
 
Lập Các Công Thức Tính cho các cột sau

+ Cột Đtb (trung bình cộng) được tính ĐTB = (Điểm Lt+Điểm TH)/2
+Cột Xếp thứ thí sinh có ĐTB Lớn Nhất Xếp Thứ 1 . Tiếp theo ĐTB Thấp hơn xếp thứ 2
+Cột Kết quả :Thí sinh có ĐTB>=5,0 Và không có điểm thi dưới 3,0 thì kết quả là đỗ số còn lại là trượt
-Nếu ĐTB >=8,0 Và không có điểm thi dưới 7,0..... xếp loại giỏi
-Nếu ĐTB từ 7,0 đến Cận 8,0 và không có điểm thi dưới 6,0 xếp loại khá
-Nếu ĐTB từ 5,0 đến Cận 7,0 xếp loại trung bình




Giúp Em Với Anh chị
 
+ Cột Đtb (trung bình cộng) được tính ĐTB = (Điểm Lt+Điểm TH)/2
Câu này thì là ABC -> bạn làm được tốt?

+Cột Xếp thứ thí sinh có ĐTB Lớn Nhất Xếp Thứ 1 . Tiếp theo ĐTB Thấp hơn xếp thứ 2
câu này cũng vậy: chỉ lưu ý bạn dùng hàm RANK


+Cột Kết quả :Thí sinh có ĐTB>=5,0 Và không có điểm thi dưới 3,0 thì kết quả là đỗ số còn lại là trượt
-Nếu ĐTB >=8,0 Và không có điểm thi dưới 7,0..... xếp loại giỏi
-Nếu ĐTB từ 7,0 đến Cận 8,0 và không có điểm thi dưới 6,0 xếp loại khá
-Nếu ĐTB từ 5,0 đến Cận 7,0 xếp loại trung bình

Câu này bạn dùng hàm
IF(...)
cùng COUNTIF(...) để đếm các điểm thi theo đ/k

thế nhé
 
Chào bạn
+ Cột Đtb (trung bình cộng) được tính ĐTB = (Điểm Lt+Điểm TH)/2
+Cột Xếp thứ thí sinh có ĐTB Lớn Nhất Xếp Thứ 1 . Tiếp theo ĐTB Thấp hơn xếp thứ 2
+Cột Kết quả :Thí sinh có ĐTB>=5,0 Và không có điểm thi dưới 3,0 thì kết quả là đỗ số còn lại là trượt
-Nếu ĐTB >=8,0 Và không có điểm thi dưới 7,0..... xếp loại giỏi
-Nếu ĐTB từ 7,0 đến Cận 8,0 và không có điểm thi dưới 6,0 xếp loại khá
-Nếu ĐTB từ 5,0 đến Cận 7,0 xếp loại trung bình




Giúp Em Với Anh chị
Bạn tham khảo File đính kèm ( lưu ý có sử dụng cột phụ là Hàm MIN )
 

File đính kèm

Mình có dùng hàm if ví dụ như: If(a<b,1,"no") nhưng khi a lớn hơn b thì báo lỗi #NUM!.mong các bạn giải thích giùm.Thanks.
 
Chào bạn 311280
Đó là lỗi Format
Bạn Ctrl+A vào format / cells / chọn General OK
Chúc thành công
 
Chào bạn

lưu ý có sử dụng cột phụ là Hàm MIN

Đưa hẳn anh chàng Min(A3:B3) vào thay cho cô nàng H3 trong công thức thì đỡ phải dùng cột phụ mà.

to ninhduchanh:
langthngmang dùng "xếp loại gì?" hay quá! ninhduchanh xem lại. Ví dụ: nếu có một trò ĐTB=8 nhưng điểm thi bị dính 6 thì sao?
 
Lần chỉnh sửa cuối:
Lỗi #NUM!

Vẫn không được,vì nếu a>b một chút thì nó vẫn theo ý mình là NO nhưng nếu a>b quá nhiều thì báo là #NUM! Mong các bạn chỉ mình cách khắc phục.Thanks.
Chào bạn !
Lỗi #NUM! là lỗi về giá trị của số trong công thức ( có số âm không ? ). Mình thấy Workbook bất kì mình làm trên máy vẫn ra kết quả theo công thức mà.
Bạn có thể up file được không để các bạn trên GPE giúp cho.
Thân chào
 
Cám ơn bạn duchuynh103
Nếu bạn đưa Min(A3:B3) vào thay H3 trong công thức xếp loại, kết quả thì bạn phải nhập lại nhiều lần Min(A3:B3) như thế trong hàm If và điều chưa nói đến ở đây chỉ khống chế cho GIÒI và KHÁ thôi nếu có khống chế cho nhiều tiêu chuẩn xếp loại VD : TB, YẾU .... lúc đó công thức dài ... lê thê. Mình lười thích làm ngắn hơn do đó làm cột phụ
Thân
 
Chào bạn !
Lỗi #NUM! là lỗi về giá trị của số trong công thức ( có số âm không ? ). Mình thấy Workbook bất kì mình làm trên máy vẫn ra kết quả theo công thức mà.
Bạn có thể up file được không để các bạn trên GPE giúp cho.
Thân chào
File của mình đây.Thanks
 

File đính kèm

File của mình đây.Thanks
Lẽ ra ngay từ đầu bạn phải nói rằng cái công thức của bạn là gì trong đó... Bạn cứ a>b, rồi a<b... thì làm sao mà người ta biết để giải thích được?

Công thức của bạn đây:
=IF(1-SQRT(1-2*F8)<E8,PI()*F8,"NO")​
Bạn chỉ cần chú ý đến cái này:
SQRT(1-2*F8)
Khi lấy căn bậc 2 của một số, thì cái số đó phải như thế nào, bạn biết chứ? Số âm có được không? Số 0 có được không?

Thành thử, chỉ cần 2*F8 mà nhỏ hơn hoặc bằng 1 thôi thì cái công thức của bạn sẽ #NUM! liền! Bởi vì khi đó thì (1-2*F8) ≤ 0

Nguyên nhân là ở cái hàm SQRT, chứ hàm IF chẳng có tội tình gì hết!

Lần sau mà bạn có hỏi thì chịu khó hỏi rõ ràng tí nha, cứ bê nguyên cái công thức bị lỗi lên đây... chứ bạn hỏi cái kiểu:
Mình có dùng hàm if ví dụ như: If(a<b,1,"no") nhưng khi a lớn hơn b thì báo lỗi #NUM!.mong các bạn giải thích giùm.Thanks.
Thì... chỉ có trời mới biết tại sao công thức của bạn bị lỗi... còn chúng tôi cứ phải đoán mò, tội nghiệp chớ...
 
Lần chỉnh sửa cuối:
Status
Không mở trả lời sau này.

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

Back
Top Bottom