「昊明有态度」从此告别加班。,Excel:1分钟解决复杂的排名表

用Excel排序做排名榜 , 几乎每个各行各业的人都会用到 , 文员、老师、销售等 。 大多数人做排行榜也都是用手工排序的 , 然后再手动添加排名 。
「昊明有态度」从此告别加班。,Excel:1分钟解决复杂的排名表
文章图片
名次要一个个输入 , 因为分数的差距 , 直接拖动复制很容易出错 , 用RANK函数又无法处理分数相同的情况 , 真是费时又费力 , 经常要为此加班 。
「昊明有态度」从此告别加班。,Excel:1分钟解决复杂的排名表
文章图片
如果有多个需要排名的数据 , 比如像老师需要对语文、数学、化学等多个科目进行排名 , 而且下次考试 , 又要重新进行排名 , 那真是加班无尽头 。
不过不用担心 , 现在考呀呀就教你一个自动生成排名榜的高效率方法 , 不管数据怎么变 , 排名榜都可以自动更新 , 从此告别加班 , 把时间还给自己和家人 。
「昊明有态度」从此告别加班。,Excel:1分钟解决复杂的排名表
文章图片
这个方法 , 只需一分钟就能彻底解决手动排名 。
步骤一
复制下面代码
'示例用代码
FunctionPaiMing(rgAsRange,rg1AsRange)DimiOuterAsLongDimiInnerAsLongDimiLBoundAsLongDimiUBoundAsLongDimiTempAsDoubleDimxAsLong,kAsLongDimarr1,arr2,arr3(1To10000,1To3)arr1=rgarr2=rg1IfUBound(arr1,2)>1Thenarr1=Application.Transpose(arr1)arr2=Application.Transpose(arr2)EndIfiLBound=LBound(arr1)iUBound=UBound(arr1)'冒泡排序ForiOuter=iLBoundToiUBoundForiInner=iLBoundToiUBound-iOuter'比较相邻项Ifarr1(iInner,1)<arr1(iInner+1,1)Then'交换值iTemp=arr1(iInner,1)iTemp1=arr2(iInner,1)arr1(iInner,1)=arr1(iInner+1,1)arr1(iInner+1,1)=iTemparr2(iInner,1)=arr2(iInner+1,1)arr2(iInner+1,1)=iTemp1EndIfNextiInnerNextiOuterForx=1ToUBound(arr1)arr3(x,1)=arr2(x,1)arr3(x,2)=arr1(x,1)k=k+1Ifx>1ThenIfarr1(x,1)=arr1(x-1,1)Thenk=k-1EndIfarr3(x,3)=kNextxPaiMing=arr3EndFunction
步骤二
黏贴代码
工作表标签右键—查看代码—在新打开的VBE窗口插入模块—把代码粘贴到右侧的窗口中 , 然后关闭窗口 。
「昊明有态度」从此告别加班。,Excel:1分钟解决复杂的排名表
文章图片
步骤四
当前文件另存为“Excel启用宏的工作簿” , 设置好以后 , 就可以直接用啦 。
「昊明有态度」从此告别加班。,Excel:1分钟解决复杂的排名表
文章图片
下面我们再来说说如何使用它:
=PaiMing(数据区域,对应排名指标)
语法说明:
数据区域:要排名的数据区域 , 可以是一列区域 , 也可以是一行区域 。
对应排名指标:和数据一一对应的指标 。
设置方法
以生成语文排名为例 , 选取i3:k8区域(根据排行榜需要选取行数),在编辑栏中输入公式
=PaiMing(B2:B15,A2:A15)
然后按Ctrl+Shift+Enter三键完成输入(输入后公式两边会添加大括号{})
「昊明有态度」从此告别加班。,Excel:1分钟解决复杂的排名表
文章图片
用一般的函数公式和数据透视表也可以可以做排行 , 都是比较复杂 , 而且一刷新就没了 , 用这个方法一劳永逸 。 现在你学会了吗?
【「昊明有态度」从此告别加班。,Excel:1分钟解决复杂的排名表】PS:WPS不支持VBA , “查看代码”显示的是灰色 , 需要下载插件或购买产品 。