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