天气

excel新“排名”函数 PaiMing 诞生


 一、用法介绍

 

=PaiMing(数据区域,对应排名指标)


语法说明:

  • 数据区域:要排名的数据区域,可以是一列区域,也可以是一行区域。

  • 对应排名指标:和数据一一对应的指标。

 

二、功能演示

 

【例】如下图所示为各公司销售统计表,要求根据该表动态生成“销量排行榜”和利润排行榜。

 

生成的动态排行榜

 

三、公式设置方法


完成排行榜效果,如果用一般的方法,需要分别设置复杂的函数公式,但用PaiMing函数,只需要一键即可完成。

 

选取要显示的3列区域。在编辑栏中输入下面的公式,最后按Ctrl+shift+Enter完成输入。

注:排行榜显示前N名,就选取N行

 

=PaiMing(B2:B13,A2:A13)


输入完成后,公式两边会自动添加大括号 {}

 


四、加载函数。

 

PaiMing不是内置函数,是兰色编写的。所以要想使用它,需要按下面的方法加载一下。

 

1、alt+f11打开visual Basic窗口。插入菜单 - 模块。把下面的代码粘贴到右侧的窗口中。关闭VB窗口。

 

 

 

 

'示例用代码

Function PaiMing(rg As Range, rg1 As Range)
Dim iOuter As Long
Dim iInner As Long
Dim iLBound As Long
Dim iUBound As Long
Dim iTemp As Double
Dim x As Long, k As Long
Dim arr1, arr2, arr3(1 To 10000, 1 To 3)
arr1 = rg
arr2 = rg1
If UBound(arr1, 2) > 1 Then
arr1 = Application.Transpose(arr1)
arr2 = Application.Transpose(arr2)
End If
iLBound = LBound(arr1)
iUBound = UBound(arr1)
'冒泡排序
For iOuter = iLBound To iUBound
For iInner = iLBound To iUBound - iOuter
'比较相邻项
If arr1(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) = iTemp
arr2(iInner, 1) = arr2(iInner + 1, 1)
arr2(iInner + 1, 1) = iTemp1
End If
Next iInner
Next iOuter

For x = 1 To UBound(arr1)
arr3(x, 1) = arr2(x, 1)
arr3(x, 2) = arr1(x, 1)
k = k + 1
If x > 1 Then
If arr1(x, 1) = arr1(x - 1, 1) Then k = k - 1
End If
arr3(x, 3) = k
Next x
PaiMing = arr3
End Function

 

 

 

 

2、当前文件另存为“Excel 启用宏的工作簿

 

完成上述操作,在当前的excel文件中,就可以直接使用PaiMing函数了。

 

删除公式方法:全选输入公式的区域,按delete删除。

标签:excel
分类:Excel学习| 发布:admin| 查看: | 发表时间:2015/2/13
原创文章如转载,请注明:转载自个人资讯网 http://www.zhangxinran.com/
本文链接:http://www.zhangxinran.com/post/1264.html

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Design By zhangxinran.com | Login | Power By zhangxinran.com | 皖公网安备:34010402701072号