My test was with nearly 8,000 rows only but these approximate calculation times on my (old) machine may give you something to consider.
From your attempted formula in post 1 I wasn't certain what you were trying to do with zero values or whether you may have blank cells in the range. For the moment I have assumed no blanks and 0 values to be ranked at the bottom like Eric's formula does.
Formula from post 4 (adjusted to row 8,000)
About 30 seconds
Formula from post 3 (adjusted to row 8,000)
About 30 seconds
This formula (only needs to be placed in the top cell and not copied down)
0.04 seconds
Excel Formula:
=MATCH(U9:U8000,SORT(UNIQUE(U9:U8000),,-1),0)
The vba code below (which places the results in Y9 and below but can be varied in the second last line of the code)
0.09 seconds
VBA Code:
Sub Rank_Unique()
Dim SL As Object
Dim a As Variant, b As Variant
Dim i As Long, SLC As Long
Set SL = CreateObject("System.Collections.Sortedlist")
a = Range("U9", Range("U" & Rows.Count).End(xlUp)).Value
ReDim b(1 To UBound(a), 1 To 1)
For i = 1 To UBound(a)
If Not SL.Contains(a(i, 1)) Then SL.Add a(i, 1), 1
Next i
SLC = SL.Count
For i = 1 To UBound(a)
b(i, 1) = SLC - SL.IndexOfKey(a(i, 1))
Next i
Range("Y9").Resize(UBound(b)).Value = b
End Sub