如何用Excel公式,实现求同一列中,不同类别的分数优良率?

请问在Excel表格中,如何求同一列中,不同类别的分数优良率。要求在“等级”那一列输入公式后自动分数各自在某个类别中的“优(前20%)、及格(前80%)、不及格(后20%)”?比如90.5属于A类别的前20%,应该是输入公式后,显示优。
89属于C类别的前20%,也应该是输入公式后,显示优。

这个是可以实现的呢!

需要用到if函数。if函数的多条件应用,因为你没有给出具体的规则,所以我自己编写了一个,你可以参考修改一下。

你根据规则修改一下数据就可以,然后下拉填充,即可解决!

如果问题解决了,还请给个采纳,点个赞!

如果没解决欢迎继续交流!

如果一直不采纳,后面回答问题的人会越来越少!

欢迎关注我。

追问

谢谢。这个只是对同一类别,我要的是同一列有ABC甚至更多种类比时,他们的各自的分数算出优及格80%,差后20%。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-09

截图不带行号和列标,百度知道提问之通病怎么就很少有人能改变呢?

再者,第1列的姓名也颇令人费解。如果是姓名,那么同为A就表示是同一个人,又何来不同的等级?还真把老朽给弄糊涂了!后来看文字描述,貌似“姓名”改为“分类”才对。

如图:

C2=LOOKUP(1-PERCENTRANK(IF(A$2:A$13=A2,$B$2:$B$13),B2),{0,0.2,0.8},{"优","及格","低分"})

同时按Ctrl+Shift+Enter三键输入数组公式,下拉

本回答被网友采纳
第2个回答  2020-04-09

这是公式=IF(B2>=LARGE($B$2:$B$13,ROUNDDOWN(ROWS($B$2:$B$13)*20%,0)),"优秀",IF(B2>=LARGE($B$2:$B$13,ROUNDUP(ROWS($B$2:$B$13)*80%,0)),"及格","不及格"))

$B$2:$B$13为成绩选定区域   假如你的是不一样的  需要把所有的$B$2:$B$13都改成你的选定区域  记得把选定区加$ B2 为当前学生成绩成绩也需要替换为前面的成绩单元格

第3个回答  2020-04-09
以第一个分数在B2单元格为列。C2=IF(RANK(B2,B$2:B100)/COUNTA(B$2:B100)<0.2,"优秀",IF(RANK(B2,B$2:B100)/COUNTA(B$2:B100)>0.8,"差","及格"))应该是这样的手机作答没验证,有误差自己改一下。逻辑:先用rank查成绩排名,排名除以总人数就算出是前百分之几,两次if判断就简单了!
第4个回答  2020-04-09
在C2中输入或复制粘贴下列公式
=IF(RANK.AVG(C2,C:C)<=COUNT(C$2:C$13)*20%,"优",IF(RANK.AVG(C2,C:C)>=COUNT(C$2:C$13)*80%,"不及格","及格"))
下拉填充
相似回答