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

Liên hệ QC
Status
Không mở trả lời sau này.
Lần chỉnh sửa cuối:
Tiêu đề của topic này là "Hỏi vể Hàm IF"; tuy nhiên, công thức bên trên có thể được dùng bằng một cách khác (không dùng IF):
=SUMPRODUCT(--(MONTH(D3)=10),(60000-10000*(C3="nam")))
Ca_dafi ơi, sao không bỏ luôn cái Sumproduct đi cho gọn công thức?
=(MONTH(D3)=10)*(60000-10000*(C3="nam"))
 
Theo tui thì công thức có thể như sau:
=IF(and(Month(D3)=10),C3="nam")="true",50000,60000)
Các bác cho ý kiến co đúng không?
 
Theo tui thì công thức có thể như sau:
=IF(and(Month(D3)=10),C3="nam")="true",50000,60000)
Các bác cho ý kiến co đúng không?

- Yêu cầu của tác giả là: Nếu tháng của ngày sinh là 10 và nếu giới tính là Nam thì thưởng 50.000, giới tính là nữ thì thưởng 60.000, công thức của bạn sai vì nếu tháng không phải là 10 và giới tính là Nam thì cho ra 60,000 --> Vô lý!

- Thêm vào đó, điều kiện trong hàm IF, bạn không cần phải gán = "TRUE";
- Nếu muốn gán bằng TRUE thì bạn nên bỏ cả hai dấu nháy kép đi!
- Điều cuối cùng là: bạn có tin là công thức của bạn luôn luôn cho ra giá trị là 60000 không?
 
Cảm ơn bạn , nhưng mà có chút rắc rối !!!!

Ngắn hơn mà không dùng name như Phillip:

=IF(LEFT(B13)="N", "NHẬP", "XUẤT") & VLOOKUP(maVT_NX,maVTU_d,2,0)

Nói chung rút gọn như thế này là tạm được rồi nhưng mà có chút trở ngại là nếu như ở cột B không có giá trị ( N... Or X... ) thì ô chứa công thức : =IF(LEFT(B13)="N", "NHẬP", "XUẤT") & VLOOKUP(maVT_NX,maVTU_d,2,0) sẽ trả về kết quả không có giá trị tham chiếu ( #N/A ) , mà nếu muốn để khi các ô ở cột B chưa nhập giá trị mà ô chứa công thức là rỗng ( " " ) thì phải chèn thêm 1 hàm if nữa . Khi đó lại quay về 2 hàm If giống của mình . Bạn có cách nào khi các ô cột B không nhập giá trị thì trả về rỗng mà công thức ngắn hơn không ???
Xin cảm ơn nhiều !!!!
 
Mình có công thức này xin các bạn vui lòng rút gọn giúp nhe !!!
= IF(LEFT(B13,1)="N',"NHẬP"&VLOOKUP(maVT_NX,maVTU_d,2,0),IF(LEFT(B13,1)="X","XUẤT"&VLOOKUP(maVT_NX,maVTU_d,2,0)&" ",0))
Ô B13 CHỨA DỮ LIỆU LÀ : X01
XIN CÁC BẠN GIÚP ĐỠ NHÉ !!!
&&&%$R


Mình gởi kèm file mong các bạn giúp đỡ nha !!! Cám ơn nhiều !!!
Cho phép mình phân tích lại cái này tí:
  • Nếu B13 là NHẬP: = "NHẬP" & VLOOKUP(maVT_NX, maVTU_d,2,0)
  • Nếu B13 là XUẤT: = "XUẤT" & VLOOKUP(maVT_NX, maVTU_d,2,0) & " "
  • Nếu B13 là thứ gì khác: = 0
Ở hàng thứ hai, nếu B13 là XUẤT, bạn có thể bỏ bớt cái [ & " " ] không?
Nếu được, thì công thức này hơi hơi ngắn tí nè, nhưng vẫn phải dùng 2 IF:
=IF(AND(LEFT(B13)<>"N",LEFT(B13)<>"X"),0,IF(LEFT(B13)="N","NHẬP","XUẤT")&VLOOKUP(maVT_NX,maVTU_d,2,0))​
 
Cột C =IF(ISERROR(SEARCH(" "&"B"&" ",$B4)),"Z","X")

Cột D =IF(ISERROR(SEARCH(" "&"A"&" ",$B4)),"Z","X")

...

Vấn đề đã rõ ràng. Nhưng sao không là

Cột C =IF(ISERROR(SEARCH(" B ",$B4)),"Z","X")
Cột D =IF(ISERROR(SEARCH(" A ",$B4)),"Z","X")
cho gọn nhẹ??
 
Cách áp dụng hàm IF

Nhờ các bạn hướng dẫn cách thức sử dụng hàm IF.
Nếu tôi có điều kiện: >10 công; thì phụ cấp 100.000 đồng
>20 công thì phụ cấp 200.000 đồng
<10 thì không phụ cấp
Mong các bạn hướng dẫn nhé. Xin cảm ơn nhiều
 
Vậy thôi mà cũng không biết nữa sao?
=IF(DK>10,100000,IF(DK>20,200000,"Không phụ cấp"))
Thân.
 
Nhờ các bạn hướng dẫn cách thức sử dụng hàm IF.
Nếu tôi có điều kiện: >10 công; thì phụ cấp 100.000 đồng
>20 công thì phụ cấp 200.000 đồng
<10 thì không phụ cấp
Mong các bạn hướng dẫn nhé. Xin cảm ơn nhiều
Mình góp thêm một cách không dùng IF:

Ví dụ:
Cột A là cột [Ngày công]
Cột B là cột [Tiền Phụ Cấp]
Ô B1 gõ:
B1 = (--(A1>10)--(A1>20))*100.000
Đối với bài toán tương tự của bạn mà có trên 7 điều kiện, hãy làm theo công thức của mình.
Bài toán ví dụ tương tự:
|Ngày Công|Phụ cấp
1|>10|100.000
2|>20|200.000
3|>30|300.000
4|>40|400.000
5|>50|500.000
6|>60|600.000
7|>70|700.000
8|>80|800.000
9|>90|900.000
10|...|........
n|>10n|100.000*n
 
Lần chỉnh sửa cuối:
Lần chỉnh sửa cuối:
=IF(DK>10,100000,IF(DK>20,200000,"Không phụ cấp"))
Bạn đã bị dẫn dắt theo thứ tự điều kiện của tác giả nên công thức đưa ra theo thứ tự đó và vì vậy nó có vẻ chưa đúng.
Trong công thức trên, cái IF2 (DK>20) sẽ không có tác dụng (vì thoả IF2 thì cũng thoả IF1 và lấy giá trị tương ứng với IF1 rồi còn đâu).
Thông thường nếu có nhiều IF thì thứ tự IF1, IF2, ...sẽ đi theo chiều tăng dần, hoặc giảm dần, chứ ít khi xuất phát từ giữa (trừ trường hợp đặc biệt). Ví dụ trong trường hợp trên :
(1) Tăng dần : =IF(DK<10,"Không phụ cấp",IF(DK<=20,100000,200000))
(2) Giảm dần : =IF(DK>20,200000,IF(DK>10,100000,"Không phụ cấp"))
(3) Xuất phát từ giữa : =IF(DK>10 và DK<=20,100000,IF(DK>20,200000,"Không phụ cấp"))
Ta thấy (3) có vẻ phức tạp hơn (1) và (2). Còn giữa (1) và (2) thì (2) có vẻ dễ sử dụng hơn.
Nhìn kỹ lại (1) và (2) thì có khác chút xíu ở trường hợp DK=10, tức là khi DK=10 thì (1) và (2) cho ra kết quả khác nhau; (ở DK=20 thì (1) và (2) vẫn cho kết quả như nhau). Sở dĩ như vậy là do căn cứ theo đề bài của tác giả : minh bạch ở DK20 (200000 với DK>20 nghĩa là dấu =20 chỉ tương ứng 100000; mặc dù theo thực tế thông thường thì dấu =20 nên tương ứng 200000); và không minh bạch ở DK10 (dấu =10 không biết là tương ứng 100000 hay tương ứng "không phụ cấp", mặc dù theo thực tế thông thường thì dấu =10 là tương ứng 100000).
 
Mình vẫn chưa hiểu lắm công thức của bạn ca_dafi, bạn nào hiểu vui lòng giải thích giúp mình công thức này với. Nếu tiền phụ cấp ko phải là 100.000 và 200.000 mà lá 1 số ngẫu nhiên khác thì công thức này sẽ thế nào hả bạn?
 
@lypt: cảm ơn bạn đã nhắc, do mình chưa test lại chỉ theo ý của tác giả thôi!

@trunghtpco: Bạn thử dùng công thức của bác Ca_Dafi xem rồi thử thay các số khác nhau vào xem có lỗi gì không. Nếu có thì sẽ sữa lại sao.
Thân.
 
Mình vẫn chưa hiểu lắm công thức của bạn ca_dafi, bạn nào hiểu vui lòng giải thích giúp mình công thức này với. Nếu tiền phụ cấp ko phải là 100.000 và 200.000 mà lá 1 số ngẫu nhiên khác thì công thức này sẽ thế nào hả bạn?
Công thức của bạn Ca_Dafi, là áp dụng cho chỉ riêng cái trường hợp cụ thể đó mà thôi, bạn ấy đã lợi dụng con số tiền phụ cấp = 10 lần con số ngày tương ứng. Chứ công thức đó không thể dùng trong trường hợp số tiền (và số ngày) là ngẫu nhiên.

Nếu bạn muốn tổng quát, bạn có thể sử dụng mẫu này:
Giả sử có 3 mốc ngày để tính phụ cấp là: N1, N2 và N3, với N1 < N2 < N3, và:
- Với số ngày công là N1, thì được phụ cấp PC1
- Với số ngày công là N2, thì được phụ cấp PC2
- Với số ngày công là N3, thì được phụ cấp PC3

Ta có công thức tổng quát:
=IF(Ngày công < N1, "Không phụ cấp", IF(Ngày công < N2, PC1, IF(Ngày công < N3, PC2, PC3)))​

Tuy nhiên, hàm IF chỉ có thể lồng tối đa là 7 lần. Do đó, nếu có quá nhiều mốc thời gian để tính phụ cấp, thì không nên sử dụng IF, vì ngoài chuyện không thể lồng hơn 7 lần, nó còn làm cho công thức cồng kềnh và khó hiểu; mà trong trường hợp này, người ta sẽ dùng những hàm dò tìm như VLOOKUP, HLOOKUP...

Thân.
 
Bạn có thể nói rõ hơn công thức nào không? Thực ra công thức của bác ndu96081631 mới sai chứ?
A1|ca_dafi|ndu96081631|ndu96081631
|= (--(A1>10)--(A1>20))*100000|=100000*INT((A1-1)/10)|=100000*MIN(INT((A1-1)/10),2)
9|0|0|0
10|0|0|0
11|100000|100000|100000
20|100000|100000|100000
21|200000|200000|200000
29|200000|200000|200000
31|200000| 300000 |200000
Thật sự tùy còn tùy vào người dùng chứ, mỗi người khác nhau sẽ có cách dùng khác nhau.
Theo mình, tùy vào việc các bạn ứng biến thế nào thôi!
Thân.
 
Mình vẫn chưa hiểu lắm công thức của bạn ca_dafi, bạn nào hiểu vui lòng giải thích giúp mình công thức này với. Nếu tiền phụ cấp ko phải là 100.000 và 200.000 mà lá 1 số ngẫu nhiên khác thì công thức này sẽ thế nào hả bạn?
Công thức này:
B1 = (--(A1>10)--(A1>20))*100.000
Bạn hãy bỏ qua con số 100.000, công thức sẽ là:
Bây giờ ta xét từng khúc một nhé
(A1>10) sẽ trả về giá trị là True/False
Ta thêm hai dấu trừ "--" sẽ trả biểu thức trên về giá trị là 1/0 ==> Để hiểu rõ hơn về hai dấu "--" bạn có thể xem dưới chữ ký mình nhé!
Tương tự với --(A1>20)
Xét ví dụ cụ thể: Cho A1=12
(--(A1>10)--(A1>20)) = (--(12>10)--(12>20))
= (--True--False)
= (1+0) = 1
Xét ví dụ cụ thể: Cho A1=22
(--(A1>10)--(A1>20)) =(--(22>10)--(22>20))
= (--True--True)
= (1+1) = 2
Vậy nhé bạn.
Cho nên đối với bài toán này, thừa số chung ở đây là 100.000. Để làm được cách này, bạn phải cố gắng để lấy ra được thừa số chung này.

Đối với bài toán dạng khác sẽ có cách giải khác, không nhất thiết phải dùng IF (vì hạn chế của nó thì như member101575 đã trình bày.
 
Lần chỉnh sửa cuối:
Lại hỏi hàm if

Tôi có công thức tại B10=IF(A10="";"";(VLOOKUP(A10;'Nhập từ điển'!B3:C65536;2;0)))
Nhờ các bạn giúp tôi sửa lại hàm if sao cho nếu từ cần tra không có trong từ điển thì ="Không có từ này trong từ điển". Mình còn yếu Excel lắm, các bạn đừng cười nhé! Cảm ơn trước. Mình không đưa bài lên được!
 
Lần chỉnh sửa cuối:
Tôi có công thức tại B10=IF(A10="";"";(VLOOKUP(A10;'Nhập từ điển'!B3:C65536;2;0)))
Nhờ các bạn giúp tôi sửa lại hàm if sao cho nếu từ cần tra không có trong từ điển thì ="Không có từ này trong từ điển". Mình còn yếu Excel lắm, các bạn đừng cười nhé! Cảm ơn trước. Mình không đưa bài lên được!

Bạn dùng công thức này nhé:
B10=IF(A10="";"";IF(ISNA(VLOOKUP(A10;'Nhập từ điển'!B3:C65536;2;0));"Không có từ này trong tự điển";VLOOKUP(A10;'Nhập từ điển'!B3:C65536;2;0)))
 
Status
Không mở trả lời sau này.
Web KT
Back
Top Bottom