Here's what I typically use:
=A1&IF(OR(MOD(A1,100)={11,12,13}),"th",LOOKUP(--RIGHT(A1),{0,"th";1,"st";2,"nd";3,"rd";4,"th"}))
It's a few keystrokes shorter.
Of course, it'd be a little longer with an error trap. (A1 being empty
causes #VALUE!)
Biff
"Epinn" wrote in message
...
http://www.cpearson.com/excel/ordinal.htm
=A1&IF(AND(MOD(A1,100)=10,MOD(A1,100)<=14),"th",
CHOOSE(MOD(A1,10)+1,"th","st","nd","rd","th","th", "th","th","th","th"))
I like the fact that this formula uses CHOOSE().
But I have a problem with =10 and <=14.
I am more inclined to use =11 and <=13. So I change the formula to the
following.
=A1&IF(AND(MOD(A1,100)=11,MOD(A1,100)<=13),"th",
CHOOSE(MOD(A1,10)+1,"th","st","nd","rd","th","th", "th","th","th","th"))
It works fine and makes me feel *logical*.
Does anyone see any reason why I shouldn't change to 11 and 13 respectively?
Thanks.
Epinn