- 28
- 0
- 约1.36千字
- 约 4页
- 2017-08-20 发布于北京
- 举报
Excel计算含有不同项目个数加权平均值
Excel计算含有不同项目个数的加权平均值在计算学生成绩时会遇到下面的问题:每一位学生所选的课程不同,导致每个学生的学分数不同,这样计算加权平均分时会出现问题。如图采用的解决方法是,使用VBA功能,自定义函数。如上图,点击开发工具Visual Basic,进入VBA编辑窗口。如果没有“开发工具”选项,请点击文件选项,进入Excel选项窗口,如下图。点击“自定义功能区”,右侧勾选“开发工具”。VBA窗口如下图所示在图中“1”处空白区域点击右键,选择“插入”模块,双击新建的模块1,打开程序编辑窗口。注意:图中“2”区域显示为“模块1”.程序代码如下Function zyRowAverage(a, b) If a.Columns.Count b.Columns.Count Or a.Rows.Count 1 Or b.Rows.Count 1 Then MsgBox (所选单元格必须具有相同的列数(行数),且行数(列数)为1) Exit Function End If s = 0 For i = 1 To a.Columns.Count s = s + a.Cells(1, i) * b.Cells(1, i) Next i m = 0 For i = 1 To a.Columns.Count If a.Cells(1, i) 0 Then m = m + b.Cells(1, i) End If Next i zyRowAverage = s / mEnd FunctionFunction zyColumnAverage(a, b) If a.Rows.Count b.Rows.Count Or a.Columns.Count 1 Or b.Columns.Count 1 Then MsgBox (所选单元格必须具有相同的行数,且列数为1) Exit Function End If s = 0 For i = 1 To a.Rows.Count s = s + a.Cells(i, 1) * b.Cells(i, 1) Next i m = 0 For i = 1 To a.Rows.Count If a.Cells(i, 1) 0 Then m = m + b.Cells(i, 1) End If Next i zyColumnAverage = s / mEnd Function含有两个函数,分别计算行平均值(zyRowAverage)和列平均值(zyColumnAverage)。下面使用该函数计算加权平均值。如下图,在G3单元格内输入公式如红圈内所示。该处使用了符号“$”,是为了后续拖动公式时,权值项保持不变。关于函数使用的说明:本函数由燕山大学“zhiying”提供,允许任何单位和个人使用。帮助他人就是帮助自己。
原创力文档

文档评论(0)