ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: divineson

[求助] 绩效量化计算

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-10-19 15:09 | 显示全部楼层
你的多条件求和公式不明白逻辑

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-19 15:56 | 显示全部楼层
本帖最后由 divineson 于 2024-10-19 18:12 编辑
shiruiqiang 发表于 2024-10-19 15:09
你的多条件求和公式不明白逻辑


老师你好,我描述一下各公式的功能
N列公式:=IF(H3="不参评","不参评",SUMPRODUCT((E:E=E3)*(H:H=H3)*(J:J>J3))+1)
主要是公式后半部分的作用,我理解是排序的功能,例子:对“参评”的“值班员”的得分在值班员内进行升序排序,“值班站长”、“站务员”也是同理,对同一岗位的得分进行升序排序,其名次写入N列。

O列公式:=IFERROR(IF(M3<0.3,-7.5,IF(M3<0.4,-6,IF(M3<0.5,-5,IF(M3<0.6,-4,IF(M3<0.7,-3,IF(M3<0.8,-2,IF(M3<0.9,-1,IF(L3>=1,VLOOKUP(N3,表5分值分布!J:M,IF(E3="值班站长",2,IF(E3="值班员",3,IF(E3="站务员",4,""))),0),0)))))))),"")
如单独判断M列我能写出来,但后面的L列>=1时的判断就想不出了,根据N列的名次和E列的岗位,匹配表5分值分布!J:M中对应名次和岗位的得分。

U列公式:{=SUMPRODUCT((E:E=E3)*(T:T>T3))+1}
也是一个同一岗位的得分进行升序排序,按E列的岗位和T列的得分进行同一岗位人员的得分进行升序排序,其名次写入U列中。

V列公式:=IFERROR(IF(H4="不参评","不参评",IF(M4<0.7,"D",IF(F4>5,"C",VLOOKUP(U4,表6分配AB档指标!$R:$U,IF(E4="值班站长",2,IF(E4="值班员",3,IF(E4="站务员",4,0))),0)))),"")
用来评级,首先判断M列<0.7,满足这个条件的评为“D”,如M列>=0.7的就再判断F列有无>5的,有则直接评为"C",M列、F列条件同时不满足的则可以根据U列的最终排名名次匹配表6分配AB档指标!$R:$U,按不同的岗位进行评级。
N列和O列的代码个人感觉是逻辑关系没有处理好,所以数据无法正常显示,后面两条的排序确实不懂如何编写,麻烦老师指导一下,万分感谢!

TA的精华主题

TA的得分主题

发表于 2024-10-19 18:55 | 显示全部楼层
虽然没仔细看,但是排名(名次)一次性写不了,需要第二个代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-19 20:35 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
老师的意思是要另外再写两段代码程序来运行排序功能吗?如果不需要让表格实现具体的排序结果显示,只是内部运算后赋上名次,是否就不需要另开一个程序编码呢?这样不知是否可行?请老师指点迷津

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-19 20:37 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
shiruiqiang 发表于 2024-10-19 18:55
虽然没仔细看,但是排名(名次)一次性写不了,需要第二个代码

老师的意思是要另外再写两段代码程序来运行排序功能吗?如果不需要让表格实现具体的排序结果显示,只是内部运算后赋上名次,是否就不需要另开一个程序编码呢?这样不知是否可行?请老师指点迷津

TA的精华主题

TA的得分主题

发表于 2024-10-20 07:59 | 显示全部楼层
看了一下,取前10%、20%等,还要large等,还要排名,分级。需要花费时间。同时一次性写不了。
这样:第一次写入表2后,读取,排名,large判断、赋分。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-22 12:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
shiruiqiang 发表于 2024-10-20 07:59
看了一下,取前10%、20%等,还要large等,还要排名,分级。需要花费时间。同时一次性写不了。
这样:第一 ...

老师你好,重感几天,现在才有些精神处理,麻烦老师看看N列的代码,“不参评”的显示相对容易,后面名次的赋值一直无法成功,但也没有报错,“count"已在最上方进行定义了,但程序运行后无法按岗位得分高低进行名次的赋值,请指导一下,谢谢
N列:
If crr(dic(drr(i, 1) & "|" & drr(i, 2)), 8) = "不参评" Then
crr(dic(drr(i, 1) & "|" & drr(i, 2)), 14) = "不参评"
End If
If crr(dic(drr(i, 1) & "|" & drr(i, 2)), 5) = "值班站长" And crr(dic(drr(i, 1) & "|" & drr(i, 2)), 8) = "参评" And crr(dic(drr(i, 1) & "|" & drr(i, 2)), 10) > crr(dic(drr(i, 1) & "|" & drr(i, 2)), 10) Then
count = count + 1
ElseIf crr(dic(drr(i, 1) & "|" & drr(i, 2)), 5) = "值班员" And crr(dic(drr(i, 1) & "|" & drr(i, 2)), 8) = "参评" And crr(dic(drr(i, 1) & "|" & drr(i, 2)), 10) > crr(dic(drr(i, 1) & "|" & drr(i, 2)), 10) Then
count = count + 1
ElseIf crr(dic(drr(i, 1) & "|" & drr(i, 2)), 5) = "站务员" And crr(dic(drr(i, 1) & "|" & drr(i, 2)), 8) = "参评" And crr(dic(drr(i, 1) & "|" & drr(i, 2)), 10) > crr(dic(drr(i, 1) & "|" & drr(i, 2)), 10) Then
count = count + 1
crr(dic(drr(i, 1) & "|" & drr(i, 2)), 14) = count + 1
End If

绩效量化计算10.18.zip

194.2 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2024-10-22 18:37 | 显示全部楼层
本帖最后由 shiruiqiang 于 2024-10-22 18:40 编辑
divineson 发表于 2024-10-22 12:28
老师你好,重感几天,现在才有些精神处理,麻烦老师看看N列的代码,“不参评”的显示相对容易,后面名次 ...

排名直接字典+rank就行。

绩效量化计算10.20.rar

193.06 KB, 下载次数: 4

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-10-22 18:39 | 显示全部楼层
中间说过,表2和表5相互作用太多。
先把表2的数据清空,代码运行不下去的。
建议第一步先把a-j列的数据写入,第二步操作其余列。

TA的精华主题

TA的得分主题

发表于 2024-10-22 20:44 | 显示全部楼层
本帖最后由 chxw68 于 2024-10-22 20:46 编辑

楼主的要求挺复杂,只凭楼主的说明很难理解,主要是参照楼上网友代码理解的。纯属练习。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 16:57 , Processed in 0.034825 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表