排序技巧4:按先后顺序把同类项排在一起
按姓名出现的先后顺序将相同姓名的排列在一起
下图左表记录的是各位考生的多次考试成绩,现需要根据左表姓名的先后顺序将相同姓名的排列在一起,结果如右表所示。
如果用基础操作来完成,不管是用升序排序,还是降序排序,可能都不会达到上面的效果。这时你需要自定义排序,这里就不演示了。
=INDEX(A:A,RIGHT(SMALL(MATCH($B$3:$B$16,$B$3:$B$16,)/1%+ROW($3:$16),ROW()-2),2))
MATCH($B$3:$B$16,$B$3:$B$16,)这部分用match函数查找所有的姓名在B3:B16这个区域中第一次出现的位置,返回的结果为{1;2;3;2;2;3;1;8;9;9;8;2;9;1},如下图E列所示。
可以看到“徐娥芝”对应的3个数分别是103,109,116。下一步用small函数从小到大提取时,肯定先提取这3个数;然后再提取以2开头的数204,206,207,214,···,这样就把相同姓名对应的数字排在一起了。
行号得到了,最后用index函数返回相应行列交叉的内容就可以了。最主要的还是利用match函数将相同的姓名变为相同的数字,以及加权的方法。
https://pan.baidu.com/s/16dwKt2xrbBvjtLrjDvGZXA
赞 (0)