Nhờ các bác sửa lại code tính điểm cao nhất, thấp nhất của một lớp trong trường học.

Liên hệ QC

trungtamcnc

Thành viên hoạt động
Tham gia
5/4/10
Bài viết
124
Được thích
9
Em nhận thấy mã của em có nhiều biến đang chạy, chưa được thu gọn. Nên muốn nhận được sự đóng góp ý kiến để học tập ạ! Em cảm ơn nhiều.
Sub diem_maxmin() Range(Cells(2, 5), Cells(4, 10)).ClearContents Dim Arr As Variant ReDim Arr1(1 To 6) ReDim Arr2(1 To 6) For j = 5 To 10 diemmax = 0 diemmin = 10 For i = 2 To 179 If Cells(i, 1) = Cells(1, j) Then If diemmax < Cells(i, 2) Then diemmax = Cells(i, 2) End If End If Next i Cells(2, j) = diemmax Arr1(j - 4) = Cells(2, j) Next j '...................................... For jj = 5 To 10 diemmin = 10 For ii = 2 To 179 If Cells(ii, 1) = Cells(1, jj) Then If Cells(ii, 2) <> "" And diemmin > Cells(ii, 2) Then diemmin = Cells(ii, 2) End If End If Next ii Cells(3, jj) = diemmin Arr2(jj - 4) = Cells(3, jj) Next jj '............................... For iii = 1 To 6 Cells(4, iii + 4) = Arr1(iii) & "_" & Arr2(iii) Next iii End Sub
 

File đính kèm

  • Hàm Max if.xlsm
    18.8 KB · Đọc: 7
Nếu bạn xoay bảng kết quả lại, thì ta có thể làm 1 số việc để tham khảo thích thú hơn, như:

LớpĐiểm caoĐiểm thấpĐ. Cao _ thấp
12A18.248.2_4=DMAX(CSDL,B1,E1:E2)
12A26.636.6_3
12A38.258.2_5
12A46.656.6_5
12A56.456.4_5
12A67.857.8_5
. . . .

(*) Công thức dẫn ra là đang áp cho ô đang có trị 8.2; . . .
'CSDL' là Name là 2 cột chứa điểm
(*) Từ cơ sở này ta vẫn viết các câu lệnh VBA để tạo ra bảng kết quả trên & đảm bảo thoáng hơn.
Chúc bạn thành công!
 
Web KT
Back
Top Bottom