WPS Excel VBA 按条件(小区名称、部门名称)统计业主满意度调查表(二维表格)数据

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
posted @   曲涛  阅读(88)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示