如何使用自定義函數(shù)快速生成排名榜
在處理排名榜難題時(shí),我們可以使用自定義函數(shù)來解決。這個(gè)函數(shù)可以幫助我們快速生成并更新排名榜,無論數(shù)據(jù)如何變化。 代碼示例 Function PaiMing(rg As Range, rg1 A
在處理排名榜難題時(shí),我們可以使用自定義函數(shù)來解決。這個(gè)函數(shù)可以幫助我們快速生成并更新排名榜,無論數(shù)據(jù)如何變化。
代碼示例
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 (arr1)
arr2 (arr2)
End If
iLBound LBound(arr1)
iUBound UBound(arr1)
'冒泡排序
For iOuter iLBound To iUBound
For iInner iLBound To iUBound - iOuter
'比較相鄰項(xiàng)
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
End If
arr3(x, 3) k
Next x
PaiMing arr3
End Function
設(shè)置步驟
- 復(fù)制上面的代碼示例,包括函數(shù)開頭和結(jié)尾的關(guān)鍵字。
- 在Excel中打開您的工作表,并右鍵單擊工作表標(biāo)簽。
- 選擇“查看代碼”,在新打開的VBE窗口中插入一個(gè)新模塊。
- 將代碼粘貼到右側(cè)的窗口中,并關(guān)閉窗口。
- 保存文件,并另存為“啟用宏的工作簿”。
使用排名函數(shù)
使用排名函數(shù)非常簡單。假設(shè)我們要生成語文成績的排名榜,我們可以按照以下步驟進(jìn)行設(shè)置:
- 選取包含成績的數(shù)據(jù)區(qū)域(例如I3:K8)。
- 在編輯欄中輸入公式
PaiMing(B2:B15,A2:A15)。 - 按下Ctrl Shift Enter鍵以完成輸入。注意,輸入后公式兩邊會(huì)添加大括號(hào){}
現(xiàn)在,您就可以在指定的范圍內(nèi)看到自動(dòng)生成的排名榜了。