I want cells C1:C5 to list the top 5 values from A1:A10.
I want cells D1:D5 to list the corresponding top 5 fruit names from B1:B10.
I am pretty handy with Excel, but for the life of me I can not figure this out and don't know the right question to search google.
Thanks
Return top 5 values with criteria in Excel - Stack Overflow
excel - Listing the top 5 values of a range and their matching titles - Stack Overflow
excel - Rank the top 5 entries in different criteria - Stack Overflow
Extracting top 5th (or n) names based on values without sorting
I assume the top 5 values should go in 5 different cells. In this case why not use the same formula you already had, but look for 2nd, 3rd, 4th and 5th highest?
=INDEX($F$6:$F$244,MATCH(LARGE($V$6:$V$244,1),$V$6:$V$244,0))
=INDEX($F$6:$F$244,MATCH(LARGE($V$6:$V$244,2),$V$6:$V$244,0))
=INDEX($F$6:$F$244,MATCH(LARGE($V$6:$V$244,3),$V$6:$V$244,0))
=INDEX($F$6:$F$244,MATCH(LARGE($V$6:$V$244,4),$V$6:$V$244,0))
=INDEX($F$6:$F$244,MATCH(LARGE($V$6:$V$244,5),$V$6:$V$244,0))
Just enter the below formula, wherever you want the output to be,
=INDEX($F$6:$F$244,MATCH(LARGE($V$6:$V$244,ROW(1:1)),$V$6:$V$244,0))
and drag it to 5 cells for getting the maximum 5 values. If you want the same for maximum 10, drag it for 10 rows. Hope this helps.
Proof of Concept

Use the following formula in the example above in cell F2 and copy down and to the right as needed.
=IFERROR(INDEX($A$2:$A$8,MATCH(AGGREGATE(14,6,($C$2:$C$8=F$1)*($B$2:$B$8),ROW($A2)-1),$B$2:$B$8,0)),"")
In the header row provide the group numbers. or come up with a formula to augment and reset the group number as you copy down based on your X number in your question.
Explanation:
The AGGREGATE function unlike the large function is an array function without the need to use CSE. As such we can add criteria to what we want to use. In this case only 1 criteria was used and that was the group number. in the formula it was the following part:
($C$2:$C$8=F$1)
If there were multiple criteria we would use either an + operator as an OR or we would use an * operator as an AND.
The 6 option in the aggregate function allows us to ignore errors. This is useful when trying to get the small. It is also useful for dealing with other information that may cause errors that do not need to be worried about.
As this is technically an array operation avoid using full column/row references as they can bog down your system.
The basics of what the over all formula is doing is building a list that match the group number you are interested in. After filtering your numbers, it then determines which is the largest, second largest etc by what row you have copied down to. It then determine what row the nth largest number occurs in through the match function, and finally it returns to the corresponding name to that row with the index function.
Building on all the other great answers.
Because you have the possibilities of duplicate values in each group we need to do this with two formulas.
First we need to get the numbers in order. I used the Aggregate, but this could be done with the array LARGE(IF()) also:
=IFERROR(AGGREGATE(14,6,$B$2:$B$8/($C$2:$C$8=E$1),ROW(1:1)),"")
Then using that number and order we can reference, we can use a modified version of @ForwardEd's formula, using COUNTIF() to ensure we get the correct name in return.
=IFERROR(INDEX($A$2:$A$8,AGGREGATE(15,6,(ROW($B$2:$B$8)-ROW($B$2)+1)/(($C$2:$C$8=F$1)*($B$2:$B$8=E3)),COUNTIF(E$2:E2,E3)+1)),"")
This will count the number in the results returned and then bring in the correct name.

