Q:

How to handle duplicate values using LARGE() function?

I want to calculate the top 3 results with duplicate values but different names. 
Example data:
Name           score
A              40
B              55
C              37
D              55            

Expected result:
order        score     name
1            55        B
1            55        D
3            40        A

A:

You can achieve this with a pivot table, as well as the RANK() function.
Step 1 - Preparing the Pivot Table

Add a column (e.g. in C) to your data, with the following formula: =RANK(B2,$B$2:$B$5) -> this will display how B2 ranks among all values in $B$2:$B$5

Select your data (including the rank column) and click Insert > Pivot Table
Put the fields "Score" and "Name" as rows, and the field "Score" as values as shown

Format the pivot table by clicking the following menu items:

You should now have something similar to this:

Step 2 - Displaying the top 3 values (Method A)

Click on the arrow near the first field of your pivot table (Rank)
Select "Value Filters"
Select "Top 10"

Enter 3 instead of 10 to have the top 3 values

You should now have something like this:

Note: with this method, if several values have the same rank (like in your example data), they will be shown multiple times. That's the default behaviour of the pivot table and the "Top X" features.
If you don't want 4 lines, but only 3, see method B

Step 2 - Displaying the top 3 values (Method B)

Click on the arrow near the first field of your pivot table (Rank)
Select "Label Filters"
Select "Less than or equal to", and enter 3 when prompted

Note: be careful with this method: if there are 5 values with rank 1, there will be 5 lines. The 2nd highest value will then have rank 6, and will not be displayed (it's greater than 3). So it's not really a top 3 anymore, but I think this method is worth mentioning, as in some cases it might work.

When the data changes, don't forget to refresh the pivot table!

