Function Ordinal(Cardinal)
Intermediate1 = Int(Cardinal / 10)
   Intermediate2 = Application.Floor(Intermediate1, 10)
   TensDigit = Intermediate1 - Intermediate2
   Intermediate3 = Application.Floor(Cardinal, 10)
   UnitsDigit = Cardinal - Intermediate 3
   If TensDigit = 1 Then
      Ordinal = Application.Text(Cardinal, "0") & "th"
   Else
      Suffix = Application.Choose(UnitsDigit + 1, "th", "st", "nd", "rd", 
       "th", "th", "th", "th", "th", "th")
      Ordinal = Application.Text(Cardinal, "0") & Suffix
   End If
End Function
