Excel实例:在间隔数据中排定名次

2016-04-01 03:41 122 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是Excel实例:在间隔数据中排定名次,一起来学习了解下吧!

【 tulaoshi.com - excel 】

Excel实例:在间隔数据中排定名次

   用Excel表格做了学生考试成绩汇总表,格式如图1所示。需要根据AA列中相应科目的成绩排出名次,并将结果放到AB列相应的单元格中。

Excel实例:在间隔数据中排定名次  图老师

  图1

  排定名次要使用RANK函数,其语法是RANK(number,ref,order)其中,参数number是需要找到排位的数字;而参数ref则是数字列表的引用;第三个参数如果省略则是按降序排列,这正是我们需要的。比如公式=RANK(A3,A2:A6)的意思就是要得到A3单元格数据在A2:A6单元格数据中的排名。

  显然,在本例中要使用RANK函数,但有一个问题是必须要解决的。假设我们要针对语文学科的总分来排名次。学生们的语文总成绩分布在AA4、AA12、AA20等单元格中,所处单元格区域并不连续,每8行有一个成绩。怎样才能将它们选中,并作为排名的区域呢?

  这个问题也曾经困扰了我很长时间,最后发现利用求余数函数可以使问题得到顺利解决。不过,有些准备工作是要做的。

  还是以语文成绩的排名为例。

  先将AA列的数据复制到别的位置,等准备工作完成后再粘贴回来。

  先选中AA4单元格,输入公式=1/(MOD(ROW(),8)-4),回车后即可发现出现#DIV/0!的错误提示。拖动该单元格填充句柄向下至AA379,则会从AA4单元格开始,每8行出现相同的错误提示,其它各行均为数字。

  点击功能区开始选项卡编辑功能组查找和选择按钮,在弹出的菜单中点击定位条件命令,打开定位条件对话框。选中公式单选项,并只保留选中随后出现的错误复选项,如图2所示。确定后就可以发现,凡是出现错误的提示的单元格就处于被选中状态了。

Excel实例 在间隔数据中排定名次

  图2

  现在点击功能区公式选项卡定义的名称功能组定义名称按钮,在打开的新建名称对话框的名称输入框中输入ymzf。确定关闭对话框。

  以后只要我们在名称框中输入ymzf,回车,就可以再次选中AA列中全部语文学科对应的单元格了,如图3所示。

Excel实例 在间隔数据中排定名次

  图3

  按照上面的方法,只要能让错误提示分别出现在相应学科所在行,那么就可以利用定位条件来选中它们。因为语文学科所处的单元格所在行除以8的余数为4,所以我们采用公式=1/(MOD(ROW(),8)-4)制造了除数为0的错误提示。那么数学、英语等其它学科则可以分别根据其行数除以8的余数不同,重复上面的操作过程,只是将公式分母中-4分别变成-5、-6、-7、-0、1、2、3就可以了。将所到的各学科区域分别以sxzf、yyzf等名称命名。

  但准备工作仅仅做这些还是不够的。因为我们排出的名次应该放在AB列而不是AA列。所以我们还要在再用上面的

  方法在AB列中选中各学科对应的区域,并分别以ymmc、sxmc、yymc等名称命名,以便将来在这些区域中输入不同的公式。

  至此,我们的准备工作才算是完成了。现在我们可以将临时放到别处的总分粘贴回AA列单元格中了,再剩下的事儿就是用RANK函数排名的问题了。咱还是先根据语文成绩排名吧。

  先在名称栏输入ywmc,回车,将AB列语文学科所对应的单元格全部选中,此时AB372单元格会处于被激活状态。我们只要在编辑栏输入公式=RANK(AA372,ywzf),并按下Ctrl+Enter就可以在全部选中的单元格中输入公式并得到名次结果了。最后的结果如图1所示。

  其它学科的名次排定依此法办理。够简单吧?

  至此,我们针对各学科的排名工作就算是大功告成了。

用Excel列表实现批量录入功能

   我们在使用Excel的过程中,通常需要输入大量的数据。这是保证我们顺利完成各项工作的基础。但是,在录入数据的过程中,尤其是录入大量数据的时候,经常会出现一些不经意的录入错误,而这,会严重影响我们所得到的结果正确性。那么,怎样才能有效地控制这种录入错误的发生呢?除了细心、细心、再细心以外,在Excel中完成必要的设置,以最大可能地减少错误的发生也是极为重要的。

  一、设置数据列表

  有时我们需要录入的数据是某些重复数据中的一个,比如单位员工所属的部门。单位中部门个数是有限的,如果我们都通过键盘手工录入每位员工的工作部门,那自然是费时费力,还容易出错的。因此,我们不如为这些部门指定一个数据列表。录入时只需要在下拉列表中单击选择相应的部门,就可以了。这不仅可以提高录入速度,还会使得录入的质量得到保证。

  首先选中要填写员工部门的所有单元格,点击功能区数据选项卡数据工具功能组中的数据有效性按钮,在弹出的菜单中点击数据有效性命令,打开数据有效性对话框。

  点击对话框中设置选项卡,在允许下方的下拉列表中选择序列选项,然后在下面来源输入框中输入各部门名称(人事部,一车间,二车间,生产部,技术部,办公室),部门之间用英文的逗号隔开,如图1所示。点击确定按钮关闭对话框。

用Excel列表实现批量录入功能 图老师

  图1 Excel设置序列

  我们也可以在工作表的空白单元格某列中分别输入各个部门名称,比如在H1:H6单元格区域。然后在来源下的输入框中输入=$H$1:$H$6,也可以得到同样的效果。

  现在将鼠标定位于刚才选中的那些单元格区域任一单元格,就会在右边出现一个下拉箭头,点击它就会出现刚才我们所设置的下拉列表,如图2所示,单击其中的项目就可以完成输入了。

用Excel列表 实现批量录入功能

  图2 Excel中的下拉列表

  二、在其它工作表中使用

  如果我们希望能在其它的工作表单元格区域中使用这个部门下拉列表,那么我们可以使用自定义名称完成这个任务。

  在空白单元格列中录入相应部门名称,比如H1:H6单元格区域。然后选中此单元格区域,点击功能区公式选项卡定义的名称功能组中的定义名称按钮,打开新建名称对话框。如图3所示,在名称右侧的输入框中输入名称,比如bumen。在范围下拉列表中选择工作簿,而在引用位置右侧的输入框中会自动使用我们选中的单元格区域。确定后,就可以为我们所选的单元格区域指定bumen的名称了。

用Excel列表 实现批量录入功能

  图3 Excel新建工作簿

  现在要做的,就是在选定工作表的相应单元格区域后,再打开数据有效性对话框,然后在来源输入框中输入=bumen,就可以在当前的工作表中使用这个部门列表了。

  如果觉得这个自定义名称的方法有些罗嗦的话,那下面的方法就简单多了。

  选中已经设置好数据有效性的单元格,然后按下Ctrl+C键进行复制。再将鼠标定位于目标单

  元格,点击功能区开始选项卡剪贴板功能组中的粘贴按钮下的小三角形,在弹出的菜单中点击选择性粘贴,打开选择性粘贴对话框。选中有效性验证单选项就可以了,如图4所示。

用Excel列表 实现批量录入功能

  图4 Excel选择性粘贴

Excel:重复名次也可以查姓名成绩

   当老师的,对分析学生成绩大概有瘾。这不,本来我们已经把学生各学科的成绩、总分、名次都排出来了,并按照总分进行了升序排序,但现在又有任课老师过来要求希望能够把自己学科的前10名的学生姓名及成绩找出来。按理说,这个要求并不是很困难,但是麻烦就在于学生各科名次有可能相同,这样的话,前10名的学生其实不一定是10个人,有可能更多。每个学科都要这么做的话,工作量也不小,所以,还是得靠函数和公式来帮忙。

Excel:重复名次也可以查姓名成绩  图老师

  图1 原始成绩表

  原始的成绩表如图1所示。姓名位于C2:C92单元格,语文成绩位于D2:D92单元格区域。我们就以查找语文学科的前10名成绩及学生姓名为例。为方便比较结果,图1中我们已经将数据按语文成绩降序进行了排序,实际操作中是不需要事先排序的。

  一、名次表的建立

  前面我们说过,我们不太容易确定排在前10名的学生共有多少,所以,我们需要使用公式将它们找出来。当然,最好顺便将名次表Tulaoshi.com填写出来。完成结果如图2所示。

Excel:重复名次也可以查姓名成绩

  图2 成绩排序

  将鼠标定位于X3单元格,然后在编辑栏输入公式=TEXT(SUMPRODUCT(($D$2:$D$92=LARGE($D$2:$D$92,ROW(1:1)))/COUNTIF($D$2:$D$92,$D$2:$D$92)),"第G/通用格式名"),回车后就可以得到第1名的结果。选定X3单元格,向下拖动其填充句柄至出现第11名为止。

  这里用到了几个函数,tulaoshi感觉上比较复杂。其实思路是这样的:ROW(1:1)的结果是1,而LARGE($D$2:$D$92,1)的结果是在指定的单元格区域中最大的一个数;那么公式中($D$2:$D$92=LARGE($D$2:$D$92,ROW(1:1)))可以理解为拿D2:D92单元格区域中的数据与该区域中最大值比较,大于或等于该值及小于该值的则会分别以TRUE、FALSE的结果保存在一个数组中。

  公式中COUNTIF($D$2:$D$92,$D$2:$D$92))部分则会统计D2:D92单元格区域中每一个数值出现的次数,也分别保存到一个数组中。所以,我们所用公式中SUMPRODUCT(($D$2:$D$92=LARGE($D$2:$D$92,ROW(1:1)))/COUNTIF($D$2:$D$92,$D$2:$D$92))在执行时会得到一个类似于SUMPRODUCT({TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;}/{1;1;2;2;1;2;2;1;2;2;2;2;1;})的结果。两个数组中的对应的数据分别相除,再将所有的商相加,正是分数所对应的名次。这种方法即使名次是并列的,也不会影响显示效果。

  至于最外层的TEXT函数,则是将得到的结果转换为按指定数字格式表示的文本。也就是本来内层公式运算的结果是数字1,现在我们将它显示为第1名。

  二、分数的查找

  将鼠标定位于Y3单元格,在编辑栏中输入如下公式=INDEX($D$2:$D$92,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),0)),然后按下Ctrl+Sh

  ift+Enter快捷键,完成数组公式的输入。这一步很关键的,否则不会出现正确的结果。

  向下拖动Y3单元格的填充句柄向下至最后一个单元格完成公式的复制。

  我们还是简单解释一下公式的思路。

  由于D2:D92区域中有很多数据是重复的,这给我们造成了困难。所以,我们要想办法使每一数据都变成唯一。公式中$D$2:$D$92+1/ROW($D$2:$D$92)就是给D2:D92区域中每一个数据都加了该数据对应行数的倒数。由于每一数据对应的行数是不一样的,这样,就会使每一数据都变成了唯一的值,并保存到了一个数组中。

  公式中的LARGE($D$2:$D$92+1/ROW($D$2:$D$92),ROW(1:1))还是返回了上面所得数组中的最大值。本例中的结果是{96.5}。

  公式中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),0)返回的是刚刚得到的最大值在数组中的位置。本例中的结果是{1}。

  这样,其实Excel最后执行的查询就是INDEX($D$2:$D$92,1)了,自然可以返回在$D$2:$D$92区域中的第一个值了。

  三、姓名的查找

  将鼠标定位于Z3单元格,在编辑栏中输入公式=INDEX($C$2:$C$92,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),0)),同样按下Ctrl+Shift+Enter快捷键完成数组公式的输入。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/ejc/)

  向下拖动Z3单元格的填充句柄向下至最后一个单元格完成公式的复制。最后的效果如图3所示。

Excel:重复名次也可以查姓名成绩

  图3 完成公式的复制(点击看大图)

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/ejc/)

  其实您肯定已经明白了,姓名的查找与前面分数的查找是一样的。公式本身也没有什么大的变化。所以,明白了前面的方法,要查找别的什么东西也就方便了。

  其它的学科可以照此办理。只要注意变换一下公式中的单元格区域就可以了,我这里就不罗嗦了。

Excel用SUMPRODUCT实现有条件排名

   前些日子市里搞了一次模拟考试,下发了汇总后的成绩表。全市三所学校各个专业的学生成绩都放到了一个工作表中,格式如图1所示。为了做好成绩分析,主任要求做好两个排名:一是排出每位学生在全市相同专业的学生中的名次;二是排出每位学生在本校本专业中的名次;两个排名都以总分为依据。

Excel用SUMPRODUCT实现有条件排名  图老师

  图1(点击看大图)

  这个工作以前也做过,每次都得将数据按专业、按学校分别筛选出来复制到不同的工作表中,然后在不同的工作表中用RANK函数进行排序。全市三所学校一千多个学生,每所学校都有七到八个专业,所以这个筛选复制工作也是费时费力,筛选复制完成后还要在十多个工作表中进行排名工作,非常麻烦。不过这一次,工作完成得却异常顺利,只需要十分钟就可以完成全部的工作了。因为,这次我们使用了SUMPRODUCT函数来完成这个有条件的排名工作。具体实现过程如下:

  一、准备工作

  选定总分所在的H2:H1032单元格区域,点击功能区公式选项卡定义的名称功能组中定义名称按钮,在弹出的新建名称对话框名称输入框中输入为此区域定义的名称zongfen。此时,对话框下方的引用位置后的输入框中已经自动输入我们选定的单元格区域=对口!$H$2:$H$1032,如图2所示。

Excel用SUMPRODUCT实现有条件排名

  图2

  按同样的方法,选定学校所在单元格区域I2:I1032、专业所在单元格区域J2:J1032,分别为它们指定名称xuexiao和zhuanye。

  完成后,这准备工作就算是结束了。

  二、排定名次

  在K1单元格输入标题按专业排名。点击K2单元格,输入公式=SUMPRODUCT((zhuanye=$J2)*($H2

  在L1单元格输入标题校内专业排名。点击L2单元格,输入公式=SUMPRODUCT((zhuanye=$J2)*($H2

Excel用SUMPRODUCT实现有条件排名

  图3(点击看大图)

  如果您也遇到类似的问题,比如平行班的成绩汇总在一张工作表中,而我们又需要学生的班内名次,那么不妨照此办理一回,呵呵,那效果,真的是谁用谁知道啊。a

来源:http://www.tulaoshi.com/n/20160401/2076795.html

延伸阅读
标签: 办公软件
不知道大家有没有这样的感觉,当你查看Excel数据表中某行记录时,由于数据表中的字段较多,需要拖动水平滚动条才能将整个表格的内容看完,这样很容易“看走眼”,不小心就会将上面一行或下面一行的内容错看成当前记录的数据。这样的数据交给领导,可是要挨批噢,其实通过下面的几行VBA代码,你就可以轻轻松松地查看记录了,操作步骤如下: ...
标签: 办公软件
    近日,校长交给我一个麻烦的任务:将全校两千多名学生的学籍信息录入到office 2000中作为资料保存。硬着头皮输了二十来个人,就遇到两个麻烦:一是要在单元格之间不断切换输入法,影响输入速度;二是输入的学号前面部分都是zjsx(“枝江市实验小学”的拼音字头),重复输入令人厌烦,而且容易出错。常言道:“磨刀不误砍柴工...
标签: excel
Excel:重复名次也可以查姓名成绩   当老师的,对分析学生成绩大概有瘾。这不,本来我们已经把学生各学科的成绩、总分、名次都排出来了,并按照总分进行了升序排序,但现在又有任课老师过来要求希望能够把自己学科的前10名的学生姓名及成绩找出来。按理说,这个要求并不是很困难,但是麻烦就在于学生各科名次有可能相同,这样的话,前1...
    本人在项目开发过程,需要实现一个“来电归属地”的功能,因此用到了Toast。但Toast的显示时间,不受我们控制,系统只提供了两个配置参数,分别是LENGTH_LONG,LENGTH_SHORT。因为要让Toast长期显示,需要另外一个线程,每隔一个时间段,就循环显示一次。        先说明一下,本次需要用到Ha...
标签: 电脑入门
如果要在一个成百上千行的数据中找到上百个没有规律的数据,那可是一种比较麻烦的事。例如,笔者学校最近进行学生资料造册工作,很多老师都在苦恼,有没有办法将手中的200名学生名单在学校总的学生名单册(3000人的Excel2007工作表)中快速找出来?这个时候,使用Excel2007的粘贴函数VlookUp(),就能让这种“复杂”的检索问题变得简单。 检...

经验教程

66

收藏

83
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部