ongtrungducmx25
Thành viên gạo cội
- Tham gia
- 5/2/07
- Bài viết
- 2,077
- Được thích
- 1,987
- Nghề nghiệp
- GV





Ctrl + Shift + EnterN8=IF(D8:L8="","",ROUND(AVERAGE(D8:M8,I8:L8,M8),1))
Y8=IF(O8:W8="","",ROUND(AVERAGE(O8:X8,T8:W8,X8),1))
Z8=IF(OR(N8="",Y8=""),"",ROUND((Y8*2+N8)/3,1))









Tôi thấy công thức của bạn hơi lạ. D9:M9 quét lần thứ nhất để lấy hệ số 1 tôi nhất trí, I9:L9 quét lần thứ 2 để lấy hệ số 2, sau đó lại có M9 như vậy M9 cũng quét lần thứ 2, tại sao bạn không quét lần thứ 2 là I9:M9 luôn. Nếu bạn đang thiết lập công thức tính điểm trung bình môn với D9:G9 là hệ số 1, I9:L9 là điểm hệ số 2 còn M9 là điểm thi học kì-hệ số 3 thì công thức của bạn phải sửa là : =ROUND(AVERAGE(D9:M9,I9:M9,M9),1) mới đúng chứ. Tôi học EX theo "phản xạ có điều kiện" nếu không phải xin bạn thông cảm!!!ongtrungducmx25 đã viết:công thức tính điểm trung bình của mình nó có vấn đề gì không mình đã dùng hàm =ROUND(AVERAGE(D9:M9,I9:L9,M9),1) lúc nhập điểm thì nó hiện lên ,nhưng khi không có điểm thì nó báo lỗi #DVI/0! không có điểm thì khắc phục như thế nào zậy!
Dài, đúng là có dư 1 hàm làm tròn không cần thiết trongcông thức này dài quá có thể dùng hàm if không các bạn nhé mình thấy nó khá dài có cách nào rút gọn không!

SA_DQ đã viết:Dài, đúng là có dư 1 hàm làm tròn không cần thiết trong
=IF(ISERROR(ROUND(AVERAGE(D9:M9,I9:L9,M9),1)),"",ROUND(AVERAGE(D9:M9,I9:L9,M9),1))
Ngoài ra bạn có thể dùng hàm #, như TYPE()<>16 ,
Số kí tự như nhau, nhưng dễ nghía hơn!
&ui thôi nha!![]()
TYPEongtrungducmx25 đã viết:bạn nói rõ hơn nhé hàm Type()<>16 là sao zậy mình không hiểu







Bạn có thể tải chương trình cộng điểm của thầy LePhuongVan trong diễn đàn Ex cho giáo dục này, gỡ bỏ khóa voi mat khau là "van", tôi thấy công thức đơn giản và không thấy lỗi như bạn nói.ongtrungducmx25 đã viết:công thức tính điểm trung bình của mình nó có vấn đề gì không mình đã dùng hàm =ROUND(AVERAGE(D9:M9,I9:L9,M9),1) lúc nhập điểm thì nó hiện lên ,nhưng khi không có điểm thì nó báo lỗi #DVI/0! không có điểm thì khắc phục như thế nào zậy!
Cột TBNăm của Bạn:Ban co the tham khao file
=IF(OR(COUNT(N9)=0;COUNT(Y9)=0);" ";ROUND((Y9*2+N9)/3;1))
=IF(OR(N9="";Y9="");"";ROUND((Y9*2+N9)/3;1))

Mình tính bình quân nhưng trong các giá trị mình tính có chứa giá trị = 0.
Mình muốn giữ nguyên vùng dữ liệu nhưng giá trị 0 thì không tính vào.
Ví dụ:
A1=0
A2=2
A3=4
Tính Average(A1:A3)=2 => Sai => ???? = 3
Các Bác giúp dùm!
Option Explicit
Function AVERAGEs(LookUpRange As Range, Optional Not0 As Boolean = True) As Double
If Not0 Then
Dim Clls As Range, Dem As Byte
For Each Clls In LookUpRange
If Clls.Value <> 0 Then
Dem = Dem + 1: AVERAGEs = AVERAGEs + Clls.Value
End If
Next Clls
AVERAGEs = AVERAGEs / Dem
Else
AVERAGEs = Application.WorksheetFunction.Average(LookUpRange)
End If
End Function
|. . .|Mình tính bình quân nhưng trong các giá trị mình tính có chứa giá trị = 0.
Mình muốn giữ nguyên vùng dữ liệu nhưng giá trị 0 thì không tính vào.
Ví dụ:
A1=0
A2=2
A3=4
Tính Average(A1:A3)=2 => Sai => ???? = 3
Các Bác giúp dùm!

công thức tính điểm trung bình của mình nó có vấn đề gì không mình đã dùng hàm =ROUND(AVERAGE(D9:M9,I9:L9,M9),1) lúc nhập điểm thì nó hiện lên ,nhưng khi không có điểm thì nó báo lỗi #DVI/0! không có điểm thì khắc phục như thế nào zậy!
-------Trong công thức tính trung bình cộng nó có phép chia cho số số hạng, nên không có số hạng nào để chia tất nhiên báo lỗi #DVI/0 là đúng rồi (chia cho 0)
Tôi có chế biến một cách nhỏ trong file kèm theo, mời các bạn xem thử.
=IF(COUNTA(D9:M9)=0;0;ROUND(AVERAGE(D9:M9;I9:L9;M9);1))
=IF(COUNTA(D9:M9)=0;"";ROUND(AVERAGE(D9:M9;I9:M9;M9);1))

-------
- Nếu công thức tính trung bình trong bài: KTTX hệ số 1, KTĐK hệ số 2, Thi hệ số 3 thì công thức của Bạn (ví dụ ở HKI):
từ cột D9:M9 hệ số 1, I9:L9 thành hệ số 2, M9 vẫn hệ số 2, kết quả ...?Mã:=IF(COUNTA(D9:M9)=0;0;ROUND(AVERAGE(D9:M9;I9:L9;M9);1))
- Không có HS hoặc HS bỏ học, nếu dùng công thức thức trên thì TBHK là 0,0. điều này không cần thiết, tôi sửa lại như thế này:
Mã:=IF(COUNTA(D9:M9)=0;"";ROUND(AVERAGE(D9:M9;I9:M9;M9);1))
----------Vâng. Tôi cũng đã thử qua công thức =IF(COUNTA(D9:M9)=0;"";ROUND(AVERAGE(D9:M9;I9:M9;M9);1)) như bạn đã nêu. Nhưng nó sẽ báo lỗi tham chiếu (#VALUE!) ở cột Ghi chú phía sau (phần XẾP LOẠI). Bạn thử xem lại. Vã lại các môn chưa có điểm thì TB = 0 và nó được ẩn thì có sao đâu? Phải không?

bảng điểm kham khảo nhé! bạn cứ từ từ ngâm cú đi sẽ hiểu có gì bàn tiếp nhé!Mình mong được các bạn giải thích: Mình lập bảng tính điểm gồm: điểm miệng hệ số 1, điểm 15 phút hệ số 1, điểm 1 tiết hệ số 2, điểm học kỳ hệ sổ. Và số lần điểm như sau:
Điểm Miệng: có học sinh 1 lần, 2 lần , có học sinh 3 lần điểm
Điểm 15 phút có 2 lần điểm
Điểm 1 tiết có 2 lần điểm
Điểm HK có 1 lần điểm
Hãy giúp tôi lập công thức tính TBM khi biết học sinh có số lần điểm miệng khác nhau. Xin cám ơn các bạn.




Mình mong được các bạn giải thích: Mình lập bảng tính điểm gồm: điểm miệng hệ số 1, điểm 15 phút hệ số 1, điểm 1 tiết hệ số 2, điểm học kỳ hệ sổ. Và số lần điểm như sau:
Điểm Miệng: có học sinh 1 lần, 2 lần , có học sinh 3 lần điểm
Điểm 15 phút có 2 lần điểm
Điểm 1 tiết có 2 lần điểm
Điểm HK có 1 lần điểm
Hãy giúp tôi lập công thức tính TBM khi biết học sinh có số lần điểm miệng khác nhau. Xin cám ơn các bạn.
Công thức tạo ô U2 của Bạn:công thức đây bạn xem nhé
Có thể làm như vầy sẽ gọn hơn:=IF(COUNT(D2:T2)<4;"";ROUND((SUM(D2:L2)+SUM(M2:S2)*2+SUM(T2)*3)/(COUNT(D2:T2)+COUNT(M2:T2)+COUNT(T2));1))
=IF(COUNT(D2:T2)<4;"";ROUND(AVERAGE(D2:T2;M2:T2;T2);1))




Công thức tạo ô U2 của Bạn:
Có thể làm như vầy sẽ gọn hơn:
Mã:=IF(COUNT(D2:T2)<4;"";ROUND(AVERAGE(D2:T2;M2:T2;T2);1))