Function createstr(ByVal vari)
Dim i As Long, j As Long, arr, darr, result, lenstr As Long, str As String
arr = vari
ReDim darr(1 To UBound(arr, 2), 1), result(1 To UBound(arr), 1 To 1)
For i = 1 To UBound(arr, 2)
lenstr = 0
For j = 1 To UBound(arr)
lenstr = IIf(lenstr > Len(arr(j, i)), lenstr, Len(arr(j, i)))
Next j
darr(i, 1) = lenstr
Next i
For i = 1 To UBound(arr)
str = ""
For j = 1 To UBound(arr, 2)
str = str & Format(arr(i, j), String(darr(j, 1), "0"))
Next j
result(i, 1) = str
Next i
createstr = result
End Function
Function createarr(ByVal vari, ByVal n As Long)
Dim i As Long, j As Long, z As Long, arr, result, lenstr As Long, str As String, m As Long, total As Long
arr = vari
ReDim result(1 To UBound(arr), 1 To Int(UBound(arr, 2) / n))
For i = 1 To UBound(arr)
z = 0
For j = 1 To UBound(arr, 2) Step n
total = 0
For m = 1 To n
total = total + arr(i, j + m - 1)
Next m
z = z + 1: result(i, z) = total
Next j
Next i
createarr = result
End Function
Function rankk(ByVal vari1, ByVal vari2)
Dim arrstr, arrarr, result, result2, i As Long, j As Long, n As Long
arrstr = createstr(vari1): arrarr = createstr(createarr(vari2, 3))
ReDim result(1 To UBound(arrstr), 1 To 1), result2(1 To UBound(arrstr), 1 To 1)
For i = 1 To UBound(result)
result(i, 1) = arrstr(i, 1) & arrarr(i, 1)
Next i
For i = 1 To UBound(result)
n = 0
For j = 1 To UBound(result)
If result(j, 1) > result(i, 1) Then n = n + 1
Next j
result2(i, 1) = n + 1
Next i
rankk = result2
End Function