ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [开_152]年终考核评分统计[已总结]

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-11-13 13:43 | 显示全部楼层
能否请圣侠详细指点一下?

TA的精华主题

TA的得分主题

发表于 2017-11-16 19:15 | 显示全部楼层
学习小笔记

大部分优秀的解答思路都是通过尾数&1的方法取巧获得去掉高低分后的有效人数
以最佳解答之一为例
=SUM(TEXT(MMULT((B2:N2&1)*(B$1:N$1=R$2:R4),1-FREQUENCY(LARGE(B2:M2,{1,12}),B2:M2)),"!0 0!/0")*S$2:S4)

(B2:N2&1)*(B$1:N$1=R$2:R4) 获得一个3*13的数组,每行对应一个级别的评分
为什么是13呢,因为要与Frequency函数所产生的数组一致

FREQUENCY(LARGE(B2:M2,{1,12}),B2:M2) 获得一个1*13的数组,第一个最大值与最小值所在行值为1

mmult()函数获得一个1*3的数组,数字为每个级别去掉最高、分后的总和,和的最后一位数等于有效人数
text()用的太强大啦,对求和后的每个数字进行处理,最后一位数字前加“/””,作为后续除法用。用法太高深了,不深究了,貌似前边的“!0”很重要,只有这样才会被当作数字参与后续计算。

最后提醒一下哦,如果哪位变态领导打了带小数的分数,这个方法就不适用了

TA的精华主题

TA的得分主题

发表于 2017-11-16 19:31 | 显示全部楼层
flykiss80 发表于 2017-11-16 19:15
学习小笔记

大部分优秀的解答思路都是通过尾数&1的方法取巧获得去掉高低分后的有效人数

可以总体加倍 ,  如有 两位小数    你就写成 (B2:N2*10^4+1)  ,  最后再缩倍 。只要达到公式中的计算值没小数就行。

TA的精华主题

TA的得分主题

发表于 2017-11-17 14:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
在版主题目的基础上制作了一个更灵活的文档。

更改功能如下:

1. 添加优先级的设定(一般优先级的高低和权重的大小是一致的,不知道实际应用是否会有不一致的情况);
2. 添加去除最高和最低分数个数的设定(下限为0,上限就是人数最少的一类评委不会全部被取消);
3. 分数支持零、负数和小数;
4. 支持评委错序排列;
5. 表格数据扩充基本做到自适应。

大家看看是否还有BUG,函数法不知道是否还能做得更简洁一点,还想听听大家的意见!
demo.gif

年终考核评分(扩展).rar

48.24 KB, 下载次数: 29

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-12-5 15:22 | 显示全部楼层
本帖最后由 mmlzh 于 2017-12-5 20:27 编辑

呵呵,水平不够,公式比较长
  1. =SUM(MMULT((B$1:N$1=R$2:R$4)*S$2:S$4*B2:N2,1-FREQUENCY(LARGE(B2:M2,{1,12}),B2:M2))/MMULT(N(B$1:N$1=R$2:R$4),1-FREQUENCY(LARGE(B2:M2,{1,12}),B2:M2)))
复制代码

TA的精华主题

TA的得分主题

发表于 2023-4-13 15:40 | 显示全部楼层
  1. =BYROW(B2:M17,LAMBDA(s,LET(_a1,s,_a,SUBTOTAL({4;5},_a1),_b,SUBSTITUTE(SUBSTITUTE(TEXTJOIN(",",,_a1),TAKE(_a,1),"",1),TAKE(_a,-1),"",1),_c,TEXTSPLIT(@_b,,","),_d1,TAKE(_c,5),_d2,DROP(TAKE(_c,9),5),_d3,TAKE(_c,-3),SUM(SUM(IFERROR(--_d1,0))/COUNT(--_d1)*0.2,SUM(IFERROR(--_d2,0))/COUNT(--_d2)*0.3,SUM(IFERROR(--_d3,0))/COUNT(--_d3)*0.5))))
复制代码
%[IV[3M~3$HWOCFT7@OUN0X.png
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 06:42 , Processed in 0.035292 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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