it won't let you sort because it does not 'know' the results of the formula until the report is rendering, which is too late for sorting.
You could get around this if you are using a stored proc, but most don't.
What you might try, is to use a command object to 1 store the id, 2 calculate the percentage. Then you can link to this table in your report, and since the values are now defined before the report starts to print, CR can sort on the command object's percentage.
HTH