WPS Excel VBA 按条件(小区名称、部门名称)统计业主满意度调查表(二维表格)数据
Excel->开发工具->查看代码->插入模块
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
'函数功能 求评分区域内 项目名称(某项目)的 评分
'
'Parameters List 参数列表
'
' project_name_feild as range 项目名称所在列
' score_range as range 评分数据区域(在《调查问卷汇总》表)
' 评分数据区域 与 项目名称列 的 起始行、结束行 必须分别在同一行 (在《调查问卷汇总》表)
'
' sepcified_project_name as string 项目名称(在《全项目计分汇总》表)
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function projectscore( project_name_feild, sepcified_project_name, score_range )
'用于指定项目的选项计数(问卷数*题目数)
Dim item_count As Integer
item_count = 0
'用于计算指定项目的得分之和
Dim score_sum As Integer
score_sum = 0
'用于计算指定项目满意度得分
Dim project_score As Single
project_score = 0
'用于for循环的行、列
Dim score_range_row As Integer
score_range_row = 1
Dim score_range_col As Integer
score_range_col =1
For score_range_row = 1 To score_range.Rows.Count Step 1
'如果项目名称的值 与 指定的项目名称 相同
If project_name_feild(score_range_row) = sepcified_project_name Then
For score_range_col = 1 To score_range.Columns.Count Step 1
'开始计算该项目的得分之和
score_sum = score_sum + score_range(score_range_row, score_range_col)
'计算指定项目的选项计数
item_count = item_count + 1
Next
End If
Next
project_score = score_sum / item_count
projectscore = project_score
End Function
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
'函数功能: 求评分区域内 指定项目名称(某项目)的 指定部门名称(某部门) 评分
'
'Parameters List 参数列表
' 评分数据区域 与 项目名称列 的 起始行、结束行 必须分别在同一行(在《调查问卷汇总》表)
' project_name_feild as range 项目名称所在列
' sepcified_project_name as string 指定项目名称(在《全项目计分汇总》表)
'
' dep_and_score_range as range 部门名称和评分所在区域 dep=department(在《调查问卷汇总》表)
' sepcified_dep_name as string 指定部门名称(在《全项目计分汇总》表)'
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function depscore(project_name_feild As Range, sepcified_project_name As String, dep_and_score_range As Range, sepcified_dep_name As String)
'用于指定项目的选项计数(问卷数*提数)
Dim item_count As Integer
item_count = 0
'用于计算指定项目的得分之和
Dim score_sum As Integer
score_sum = 0
'用于计算指定项目指定部门满意度得分
Dim dep_score As Single
dep_score = 0
'用于for循环的行、列
Dim score_range_row As Integer
score_range_row = 1
Dim score_range_col As Integer
score_range_col = 1
For score_range_row = 1 To dep_and_score_range.Rows.Count Step 1
'如果项目名称的值 与 指定的项目名称 相同
If project_name_feild(score_range_row) = sepcified_project_name Then
For score_range_col = 1 To dep_and_score_range.Columns.Count Step 1
'如果部门名称 与 指定部门名称 相同
If dep_and_score_range(1, score_range_col) = sepcified_dep_name Then
'开始计算该项目的得分之和
score_sum = score_sum + dep_and_score_range(score_range_row, score_range_col)
'计算指定项目的选项计数
item_count = item_count + 1
EndIf
Next
End If
Next
project_score = score_sum / item_count
depscore = project_score
End Function
标签:VBA,name,dep,Excel,项目名称,project,range,score,名称
From: https://www.cnblogs.com/qtaishang/p/18120494