首页 > 软件 > vba不重复且不并列排名如何实现?

vba不重复且不并列排名如何实现?

软件 2022-07-05

vba不重复且不并列排名如何实现?

获取B:R数据的排名,填入T:AJ,用VBA实现的代码如下:

补充一、本问题可以用公式解决,T3公式为:

=RANK(B3, $B3:$AJ3)

右拉、下拉即可。


补充二、上图VBA代码的文本如下:

Option Explicit


Sub 宏1()

Dim arr1, arr2, i&, j&, k&

arr1 = Range("b2:r20") '请根据需要修改20为结束行

ReDim arr2(1 To UBound(arr1), 1 To UBound(arr1, 2))

For i = 1 To UBound(arr1)

For j = 1 To UBound(arr1, 2)

'通过循环,统计第i行数据中大于arr1(i,j)的数据个数到arr2(i,j)

For k = 1 To UBound(arr1, 2)

If arr1(i, k) > arr1(i, j) Then arr2(i, j) = arr2(i, j) + 1

Next k

arr2(i, j) = arr2(i, j) + 1 '次数+1即为排名

Next j

Next i

Range("t2").Resize(UBound(arr2), UBound(arr2, 2)) = arr2

End Sub

A列是一组数据,对A列的每一个数据进行数字的排序,放到B列中,不允许有重复,用VBA,怎么实现?

做好了。。。 Option Explicit Public resCol As Collection Sub a() Set resCol = New Collection Dim l As Integer, irow As Long Dim tmp As String, t() As String, tt() As String Dim i As Integer, k As Integer, kk As Integer irow = ActiveSheet.Range("A65536").End(xlUp).Row kk = 1 For i = 1 To irow With ActiveSh

Excel 如何用VBA实现中式排名次

假定是成绩。则用字典1,成绩作为key,取得不重复成绩列表 然后,把字典1的keys进行排序后,从大小到依序装入另一字典2。仍然用成绩作为key,item为自然数序列 遍历原始数据,根据成绩从字典2中读得对应名次

怎样用VBA实现中国式排名

直接用函数RANK就可以。例如下图:

有不理解的再联系我吧

excel vba编程如何实现筛选排序(不连续列)详见图片,谢谢

使用for循环嵌套需要嵌套3层,定义一个数组存放排名,然后使用jion进行组合,最后存放到h列,接下来将数组内存清空,大概过程就是这样。

标签:MicrosoftExcel MicrosoftOffice 编程 信息技术 vba

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18