May 10

用Excel函数自动排名次 晴

admin365 , 21:25 , Excel , 评论(0) , 引用(0) , 阅读(6) , Via 本站原创 | |
[转载]

笔者认为无论对原数据清单进行排序或筛选最好不要破坏原清单的原貌。EXCEL的函数十分丰富,不用宏,用函数也能解决数值自动排名。方法如下。

如第一行为表头,A列(例如A2:A101,下同)为姓名,B列数据,在C2单元格输入公式“=IF(A2=0,0,INT(CONCATENATE(INT(B2),200-ROW(A1))))”。公式中ROW(A1)为A1单元格所在的行数即为1,(该公式下拉时依次为2、3、4.....),用200来减是为了CONCATENATE函数中的第2个参数保持3位数,CONCATENATE函数是一个拼合函数这里把B列的数据和它所在的行数拼合成一个数据。这样在对它进行排序后该数据包含了它所在行数的信息。CONCATENATE函数INT函数套用是为了把原来的文本变为数字。

在D2单元格输入公式“=LARGE(C:C,ROW(A1))”即对B列数值(包含所在行的信息)按大小排列。

在F2单元格(为了与原始清单分开中间空了一列)输入公式“=IF(D2=0,0,200-RIGHT(D2,3))”,函数 RIGHT(D2,3)即为D2单元格数据的后3位数,用200来减即为此数据所在的行数。

在G2单元格输入公式“=IF($F2=0,0,INDEX($A$2:$B$15,$F2,COLUMN(A1)))”,并拖到H2单元格。INDEX函数为引用函数,即根据F2单元格所标明的行数在$A$2:$B$15单元格矩阵中引用姓名及得分。

在I2单元格输入公式“=IF(H2=0,0,IF(H2=H1,I1,ROW(A1)))”,本来G、H列就是按得分大小排列的,但可能有平列名次,所以选用上述公式。

最后把C2到I2单元格的公式下拉,程序就完成了。


[转载]原文链接: http://cid-42beb05f0dd95f59.spaces.live.com/Blog/cns!42BEB05F0DD95F59!130.entry

百度搜索:Excel
Google搜索:Excel
雅虎搜索:Excel
SOSO搜索:Excel

Tags:
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]