ngocthaigtvt
Thành viên mới

- Tham gia
- 19/8/10
- Bài viết
- 5
- Được thích
- 1
Excel có đuôi .xlsx hình như chưa thông dụng trên GPE, nhiều Bạn muốn "xem thử" nhưng không được.Nhờ bác nào dùng công thức tổng quát để tính giùm em giá trị ở cột thi lại. Em nghĩ nát óc mà vẫn chưa ra cách tính
Nhờ bác nào dùng công thức tổng quát để tính giùm em giá trị ở cột thi lại. Em nghĩ nát óc mà vẫn chưa ra cách tính
ĐTB: N5 =AVERAGE(D5:M5,INDEX(D5:M5,,MATCH(C5,D$4:M$4,0)))
Ghi Chú: O5 =IF(MIN(D5:M5)>=5,"Đạt",IF(OR(COUNTIF(D5:M5,"<"&5)>1,INDEX(D5:M5,,MATCH(C5,D$4:M$4,0))<5),"Hỏng",IF(COUNTIF(D5:M5,"<"&5)=1,"Thi Lại","???")))
Môn Thi Lại: P5 =IF(O5="Thi Lại",INDEX(D$4:M$4,,MATCH(MIN(D5:M5),D5:M5,0)),"")
Xếp Loại: Q5 =IF(O5<>"Đạt","",IF(N5>=9,"Giỏi",IF(N5>=7,"Khá",IF(N5>=5,"TB",""))))
Học Bổng: R5 =IF(Q5="Giỏi",100000,IF(Q5="Khá",50000,""))
en xin lúc nãy đổi đuôi xong quên không save, để em đăng lại
Function DiemTB(BgDiem As Range, Chuyen As String, Optional TraVe As String = "TB")
Dim WF, Col As Byte, Diem As Double
Set WF = Application.WorksheetFunction
Col = Range("Mon").Find(Chuyen, , xlFormulas, xlWhole).Column - 3
Select Case TraVe
Case "TB", "XL", "TH"
Diem = (WF.Sum(BgDiem) + BgDiem.Cells(1, Col)) / (1 + BgDiem.Columns.Count)
If TraVe = "TB" Then
DiemTB = Diem
Else
If WF.Min(BgDiem) >= 5 Then
DiemTB = Switch(Diem < 5, "", Diem < 7, "TB", Diem < 9, "KHÁ", Diem <= 10, "GIOI")
If TraVe = "XL" Then Exit Function
If TraVe = "TH" And Len(DiemTB) > 2 And WF.Count(BgDiem) = BgDiem.Count Then
Diem = 10 ^ 5
If DiemTB = "KHÁ" Then DiemTB = Diem / 2 Else DiemTB = Diem
Else
DiemTB = ""
End If
End If
End If
Case "GC"
If WF.Min(BgDiem) >= 5 Then
DiemTB = "DAT"
ElseIf BgDiem.Cells(1, Col).Value < 5 Or WF.CountIf(BgDiem, "<5") > 1 Then
DiemTB = "HONG"
ElseIf 1 = WF.CountIf(BgDiem, "<5") Then
DiemTB = "THI LAI"
End If
Case "TL"
If 1 = WF.CountIf(BgDiem, "<5") And BgDiem.Cells(1, Col).Value >= 5 Then _
DiemTB = Range("Mon").Cells(1, BgDiem.Find(WF.Min(BgDiem)).Column - 3).Value
Case Else
DiemTB = "GPE.COM"
End Select
End Function
Do điều kiện: Học sinh thi có một môn điểm < 5 ghi là "Thi Lại" nên ta có thể làm như sau
Mã:ĐTB: N5 =AVERAGE(D5:M5,INDEX(D5:M5,,MATCH(C5,D$4:M$4,0))) Ghi Chú: O5 =IF(MIN(D5:M5)>=5,"Đạt",IF(OR(COUNTIF(D5:M5,"<"&5)>1,INDEX(D5:M5,,MATCH(C5,D$4:M$4,0))<5),"Hỏng",IF(COUNTIF(D5:M5,"<"&5)=1,"Thi Lại","???"))) Môn Thi Lại: P5 =IF(O5="Thi Lại",INDEX(D$4:M$4,,MATCH(MIN(D5:M5),D5:M5,0)),"") Xếp Loại: Q5 =IF(O5<>"Đạt","",IF(N5>=9,"Giỏi",IF(N5>=7,"Khá",IF(N5>=5,"TB","")))) Học Bổng: R5 =IF(Q5="Giỏi",100000,IF(Q5="Khá",50000,""))
bạn giải thích giúp tớ 1 chút được không t không hiểu lắm à
p/s: mình mới học excel à![]()