I think Reeza's reply is pretty much your best bet. The original values sort in a different order than what you want, and unless you want to change the formatted values, you need to restructure the data. One note on Reeza's post: the PUT statement creates a character variable, so the test_display format should be $test_display. Another way to go would be to create a format like your original one, but with formatted values that follow the preferred order, eg: Value $test "NIA Lvl 1"= "a. NIA 1" "NIA Lvl 2"="b. NIA 2" "NIA Lvl 3"="c. NIA 3" "NIA X"= "d. NIA XYZ" "NIA O"= "e. NIA Old" "NIA No"="f. NIA None" "NIA Miss"="g. NIA Missing" ; and then use the ORDER=FORMATTED option on the PROC FREQ (also works on PROC TABULATE, I think). However, for PROC SUMMARY and similar activities, the original values determine the sort order in the output data.
... View more