Hi,

Assuming the data you give it is in A1:D6, go to Name Manager and create the following new names:

Name: Arry1
Refers to: =ROW(INDIRECT("1:"&SUM(IF(1-ISNA($A$1:$D$6),IF(1-ISNUMBER($A$1:$D$6),IF($A$1:$D$6<>"",IF(EXACT(UPPER($A$1:$D$6),$A$1:$D$6),1)))))))

Name: Arry2
Refers to: =T(INDIRECT(IF(1,TEXT(SMALL(IF(1-ISNA($A$1:$D$6),IF(1-ISNUMBER($A$1:$D$6),IF($A$1:$D$6<>"",IF(EXACT(UPPER($A$1:$D$6),$A$1:$D$6),10^3*ROW($A$1:$D$6)+COLUMN($A$1:$D$6))))),Arry1),"R000C000")),0))

(When you paste these names in, double-check that they are exactly as they appear here.)

Exit Name Manager.

Enter this array formula** in your first cell of choice:

=IFERROR(INDEX(Arry2,MATCH(SMALL(MMULT(0+(Arry2>TRANSPOSE(Arry2)),Arry1^0),ROWS($1:1)),MMULT(0+(Arry2>TRANSPOSE(Arry2)),Arry1^0),0)),"")

Copy down until you start to get blanks.

Regards


**Array formulas are not entered in the same way as 'standard' formulas. Instead of pressing just ENTER, you first hold down CTRL and SHIFT, and only then press ENTER. If you've done it correctly, you'll notice Excel puts curly brackets {} around the formula (though do not attempt to manually insert these yourself).