Here's an easy non-array formulas approach using tiebreakers to set it up for

a full auto-descending/ascending sort

Assume your source data as posted within B1:C10

where B1:B10 contains scores (ie real numbers),

C1:C10 are the names/items

Auto-Top xx (Full descending sort)

In E1: =IF(B1="","",B1-ROW()/10^10)

This is the tiebreaker criteria for descending sort

In F1

=IF(ROWS($1:1)>COUNT($E$1:$E$10),"",INDEX(B$1:B$10,MATCH(LARGE($E$1:$E$10,ROWS($1:1)),$E$1:$E$10,0)))

Copy F1 to G1. Select & copy E1:G1 down to G10. Minimize/hide col E. Cols F

& G will return the required results, ie scores/names in descending order by

scores in col B. Any names with tied scores will appear in the same relative

order as they are within the source. Read-off the top xx in cols F & G as

desired. You need the full descending sort to read-off since there could be

multiple ties (you could have say, a 2 way tie for 1st, a 3 way tie for 2nd,

& a 2 way tie for 3rd. aw!)

Auto-Bottom xx (Full ascending sort)

In I1: =IF(B1="","",B1+ROW()/10^10)

This is the tiebreaker criteria for ascending sort. Exactly the same as the

earlier, except for: + (instead of: -)

In J1

=IF(ROWS($1:1)>COUNT($I$1:$I$10),"",INDEX(B$1:B$10,MATCH(SMALL($I$1:$I$10,ROWS($1:1)),$I$1:$I$10,0)))

Copy J1 to K1. Select & copy I1:K1 down to K10. Minimize/hide col I. Cols J

& K will return the required results, ie scores/names in ascending order by

scores in col B. Any names with tied scores will appear in the same relative

order as they are within the source. Read-off the bottom xx in cols J & K as

desired. Again, you'd need the full ascending sort to read-off since there

could be multiple ties. The formula is v.similar to the earlier, except for

the use of SMALL (instead of LARGE) and the point to the criteria col I.

Success? Celebrate it, hit the YES below