取名分数查询(姓名分数查询)
取名分数查询,姓名分数查询很多人还不知道,乐儿来为大家解答以上问题,现在让我们一起来看看吧!
1、 原来已经列出了学生在各个学科的成绩、总分、排名,按照总分升序排序。但是现在,有老师来要自己学科前10名学生的名字和分数。按理说,这个要求并不是很难,但麻烦在于学生可能各科排名都一样。在这种情况下,前10名的学生不一定是10名,但可能更多。如果每个学科都要这么做的话,工作量会很大,所以还是要靠函数和公式来帮助。
2、 原始报告单如图。名称位于单元格C2:C92,语言分数位于单元格D2:D92。我们以查找中文排名前10的分数和学生姓名为例。为了方便比较结果,我们已经将数据按照图中中文分数降序排列,实际操作中不需要提前排序。
3、 一、排名表的建立
4、 我们前面说过,我们不容易确定有多少学生是前10名,所以我们需要使用公式来找出他们。当然,最好是顺便填写一下排名榜。最终结果如图所示。
5、 将鼠标放在X3单元格中,然后输入公式"=text(sum product(($D $ 2:$ D $ 92=large($ D $ 2:D $ 92,ROW(1:1)))/COUNTIF($ D $ 2:D $ 92,$ D。选择X3单元格并向下拖动其填充柄,直到出现第11位。
6、 这里用了几个函数,感觉比较复杂。其实思路是这样的:“ROW(1:1)”的结果是“1”,而“large ($ d $2: $ d $92,1)”的结果是指定单元格范围内的最大数;那么公式中的“($D$2:$D$92=LARGE($D$2:$D$92,ROW(1:1))”可以理解为将D2:D92单元格区域中的数据与该区域中的最大值进行比较,大于等于该值和小于该值的将分别为“真”和“假”。
7、 在公式“COUNTIF($D$2:$D$92,$D$2:$D$92)”中,将计算每个值在单元格D2:D92中出现的次数,这些次数也将保存在一个数组中。因此,“sum product(($ D $ 2:$ D $ 92=large($ D $ 2:D $ 92,ROW(1:1)))/COUNTIF($ D $ 2:D $ 92,$ D $ 2:D $ FALSE;假的;假的;假的;假的;假的;假的;假的;假的;假的;假的;假的;…}/{1;1;2;2;1;2;2;1;2;2;2;2;1;…}) ".将两个数组中对应的数据分别相除,然后将所有的商数相加,就是分数对应的排名。这种方式即使排名并列也不会影响展示效果。
8、 至于最外层的文本函数,就是把结果转换成指定数字格式的文本。即内部公式运算的结果是数字“1”,现在我们显示为“1号”。
9、 第二,寻找分数
10、 将鼠标定位在单元格Y3中,在编辑栏中输入以下公式“=INDEX($D$2:$D$92,match(large($D$ 2:$ D $ 92 1/ROW($ D $ 2:$ D $ 92),ROW(1:1)),$ D $这一步至关重要,否则不会出现正确的结果。
11、 将单元格Y3的填充柄向下拖到最后一个单元格,以完成公式复制。
12、 因为D2:D92区域的很多数据是重复的,这给我们造成了困难。因此,我们必须找到一种方法使每个数据都是唯一的。在公式“$D$2:$D$92 1/ROW($D$2:$D$92)”中,数据的相应行号的倒数被添加到D2:D92区域的每个数据中。因为每个数据对应的行数不同,所以每个数据都会变成唯一的值,保存在一个数组中。
13、 公式“large($ d $ 2:$ d $ 921/ROW($ d $ 2:$ d $ 92),ROW(1:1))仍然返回上述数组中的最大值。此示例中的结果是“{96.5}”。
14、 在公式“match(large($ D $ 2:$ D $ 92 1/ROW($ D $ 2:$ D $ 92),ROW(1:1)),$D$2:$D$92 1/ROW($D$2:$D$92)中,此示例中的结果是“{1}”。
15、 这样,实际上Excel最后执行的查询是“index ($D$2:$D$92,1)”,自然返回$D$2:$D$92区域的第一个值。
16、 第三,寻找名字
17、 将鼠标放在单元格Z3中,并在编辑栏中输入公式“=INDEX($C$2:$C$92,match(large($ D $ 2:$ D $ 92 1/ROW($ D $ 2:$ D $ 92),ROW(1:1))。
18、 将单元格Z3的填充柄向下拖到最后一个单元格,以复制公式。最终效果如图。
19、 姓名搜索与之前的分数搜索相同。配方本身没有大的变化。
今天的分享,希望对大家有所帮助。