I have a simple table consisting of two columns:
CLIENT REVENUE
___________________________
A 5000 USD
B 7500 USD
C 6000 USD
D 2500 USD
... ...
I want to create a dynamic top 10 client list, that automatically updates itself as revenues are changed.
I have already been able to list the top 10 revenues by using the LARGE function, but I have trouble with getting the clients’ names next to the revenue numbers.
A simple way to do this would be to combine the Index and Match functions like this :
=INDEX(A:A,MATCH(E1,B:B,0))This assumes your client names are in column A, Revenue is in column B, and the the
large()revenue you are looking up is in cellE1Additionally this simple approach will return the first client name with the ‘large’ revenue and in the rare event that two clients had the exact same revenue the above formula will show the first client twice.
An approach that handles the offset from duplicate revenue’s would look like this:
=IF(ISNUMBER(E1),INDEX($A$1:$A$13,SMALL(IF($B$1:$B$13=E1,ROW($A$1:$A$13)-ROW($A$1)+1),COUNTIF(E$1:E1,E1))),"")Note Array formula ctrl+shift+enter after typing, then drag down to the right of your
Large()revenue numbers.Here’s a screenshot of the second formula deployed in the event that you need to use it:

(while the first approach is simple, cell F3 is an example of where the additional complexity may be required)