1. The following field coding (with or without an enclosing QUOTE field) may be a little more obvious for many, at least assuming that they understand what "mod" does.
{ SET v { MERGEFIELD MyField \#0 } }{ v }{ IF { v \*Ordinal } = *h th { =mod(v,10)-2 \#rd;st;nd } }
(You can lose a few more spaces in there if you prefer, but the same notes apply as inPaul's message, i.e. primarily that all the { } have to be the special field code braces that you can insert using ctrl-F9 on Windows Word). In this case, you also have to
ensure that the { v \*Ordinal } field is formatted as English language.
2. If your Excel sheet happens to contain the ordinals in a format where there is some kind of space between the number and the "Ordinal indicator" st, nd etc., and every single value in the column is in that format (no empty cells etc.) then you could in theory
achieve this using the \*MERGEFORMAT switch. You use
{ MERGEFIELD MyField \*Mergeformat }
Then you show the result of one of the values, and format the result so that
a. the ordinal indicator (st, rd etc.) is superscripted
b. the spacing character is either hidden or made much smaller (e.g. using a small font size.
That's really what \*Mergeformat was originally intended to achieve, but it is so dependent on the consistency of the data that I doubt if many people rely on it.
3. Again, in theory, if you are merging to a single output file, e.g. via a Directory merge (Catalog merge on Mac), you could postprocess the file using autoformat. You would need to go and find the Option in Word->Options and put it in your QAT. Then, when
you open the dialog box, you'll need to go into the Options... and uncheck everything except the "Oridinals (1st) with Superscript" option. (It may be different on Word 2013). But I wouldn't entirely trust that not to change other things unexpectedly.