欢迎来到天天文库
浏览记录
ID:1687998
大小:160.00 KB
页数:2页
时间:2017-11-13
《excel不改变数据位置进行排序的两种方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、不改变数据位置进行排序的两种方法宝安中学初中部熊伟以前,有位朋友问我,不改变数据位置怎么让名次自动显示出来?我说这个容易啊,等会我写好了就给你。这个用宏来做当然容易了,看这个数在这一列中排序第几,把序数写进名次那一列就行了。看下图:用CTR+M作快捷键。再看一下宏代码:这是一个降序排列的宏,对于并列名次和空值也能很好地处理。写完之后,心里还沾沾自喜,认为自己对这个问题解决得很不错了。前两天在网上逛,看到了一个Excel函数,能很好地处理这个问题,才明白自己不过是只井底之蛙而已。看下图:函数名称:rank(Number,ref,order)它有三个
2、参数:第一个参数Number,就是要排序的那个数字;第二个参数Ref,就是要排序的数字在哪个范围内排序,所以它应该是一个数据范围;第三个参数Order,是升序排列还是降序排列,如果为0或忽略,降序排列,为非0,则升序排列。在上面在参数中,有一个特别要强调的参数Ref,一般要排序的数据较多,我们会采用填充的方式把名次那一列填完,在下拉的过程中,地址范围有可能发生变化。上例中,如果这样写函数:=rank(B2,B2:B15,0)当你下拉填充的时候,下一个单元格就会变成:=rank(B3,B3:B16,0)这时候排序的范围发生变化,结果就不准确了。原因
3、是B2:B15是一个相对引用,填充的时候地址范围就会自动产生变化。因此,参数Ref的地址范围应该中一个绝对引用的地址。把B2:B15改成$B$2:$B$15,当你填充的时候,地址就不会发生变化了。这个函数与我上面的宏比较起来,有一个缺点:不能对空值进行排序。上图的第12行,要排序的值显示的是#N/A,这就表示rank()函数的第一个参数是不能为空值的。我想这一点对用户来说,应该不重要吧。
此文档下载收益归作者所有