PROCEDURE NumSuffix LPARAMETERS iNumber LOCAL iElement, ; iLastDigit, ; cNumberString, ; aSuffixes(4), ; iTestNumber, ; i aSuffixes[1] = "st" aSuffixes[2] = "nd" aSuffixes[3] = "rd" aSuffixes[4] = "th" iTestNumber = IIF(iNumber > 100, VAL(RIGHT(ALLTRIM(STR(iNumber)), 2)), iNumber) cNumberString = ALLTRIM(STR(iNumber)) iLastDigit = VAL(RIGHT(cNumberString, 1)) ** Use first 3 array elements if number ends in 1-3 without ending in 11-13 IF (INLIST(iLastDigit, 1, 2, 3) .AND. ; (! BETWEEN(iTestNumber, 11, 13))) iElement = iLastDigit ELSE iElement = 4 ENDIF RETURN (cNumberString + aSuffixes[iElement])I didn't go through an insane amount of testing but feel free to give it a whirl.