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

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

  • VD_xL.xls
    15 KB · Đọc: 37
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

  • Book1.xlsx
    9.6 KB · Đọc: 14
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.
Web KT

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

Back
Top Bottom