How to Make a Sales Leaderboard in Excel That Updates
By ExcelReady TeamUpdated 5 min read
The short answer
To make a sales leaderboard in Excel that updates itself, keep the sales data in a table and rank it with a formula: =SORT(A2:D8,4,-1) sorts every rep by the Sales column, highest first, and re-sorts whenever a number changes. For a top-3 list, use LARGE to find each value and XLOOKUP to return the rep's name.
Key takeaways
- =SORT(A2:D8,4,-1) returns the whole table sorted by column 4, largest first, and updates automatically.
- =LARGE(D2:D8,2) finds the second-highest sale. XLOOKUP then returns the name that goes with it.
- Put the data in an Excel table so new reps and new sales are included without editing formulas.
- Add rank numbers with SEQUENCE, and check for ties, which LARGE plus XLOOKUP handles badly.
- SORT, SEQUENCE and XLOOKUP need Excel 2021 or Microsoft 365. TAKE needs Microsoft 365 or Excel 2024.
On this page+
A sales leaderboard in Excel ranks reps from highest to lowest sales and re-sorts itself when the numbers change. The key is to build it with formulas, not with the Sort button: =SORT(A2:D8,4,-1) gives a ranked copy of the data that updates on its own. This guide builds a full leaderboard and a top-3 panel, and shows the older-Excel version too.
What you need for a sales leaderboard#
A leaderboard has two parts: the raw data, which people update, and the ranked view, which formulas build from it. Keep them separate. Then nobody has to re-sort anything by hand, and the original data stays in the order it was entered.
The examples use this data in A1:D8:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Rep | Region | Deals | Sales |
| 2 | Ana | North | 12 | 48,500 |
| 3 | Ben | South | 9 | 39,200 |
| 4 | Chloe | East | 15 | 61,750 |
| 5 | Dev | West | 11 | 52,300 |
| 6 | Ema | North | 8 | 33,900 |
| 7 | Finn | South | 13 | 57,100 |
| 8 | Gia | East | 10 | 44,800 |
If your data is a list of individual orders rather than one row per rep, total it first. =UNIQUE(A2:A100) lists each rep once, and =SUMIFS(D$2:D$100,A$2:A$100,F2) totals each rep's sales. The guide to building a sales report in Excel shows that step in full.
Step 1: Rank every rep with SORT#
SORT returns a sorted copy of a range. Click an empty cell, such as F2, and type:
=SORT(A2:D8,4,-1)A2:D8is the data, without the header row.4sorts by the fourth column, Sales.-1sorts in descending order, largest first. Use1for smallest first.
The result spills: it fills as many rows as it needs, starting in F2. Chloe (61,750) comes first, then Finn (57,100), Dev, Ana, Gia, Ben and Ema. Change Ben's sales to 70,000 and he jumps to the top instantly.
To rank by something you don't want to show, such as listing only names ranked by sales, use SORTBY: =SORTBY(A2:A8,D2:D8,-1). The SORT function guide covers multi-column sorts, and both functions need Excel 2021 or Microsoft 365.
Step 2: Add rank numbers#
Put rank numbers next to the sorted list with SEQUENCE. In E2, type:
=SEQUENCE(ROWS(A2:A8))ROWS counts the reps (7), and SEQUENCE lists 1 to 7 down the column. When you add a rep, the count grows.
If you'd rather keep the original order and add a rank column beside it, use =RANK.EQ(D2,$D$2:$D$8) and fill down. Chloe gets 1 and Ema gets 7. The guide to the RANK function explains how it treats ties.
Step 3: Build a top-3 panel with LARGE and XLOOKUP#
A top-3 panel shows the leaders at a glance. LARGE finds the k-th largest value, and XLOOKUP returns the name that goes with it.
| K | L | M | |
|---|---|---|---|
| 1 | Place | Rep | Sales |
| 2 | 1 | =XLOOKUP(M2,$D$2:$D$8,$A$2:$A$8) | =LARGE($D$2:$D$8,K2) |
| 3 | 2 | Finn | 57,100 |
| 4 | 3 | Dev | 52,300 |
Put it in columns K to M, away from the spilled list, and fill both formulas down to row 4. In M2, LARGE($D$2:$D$8,K2) returns 61,750 because K2 is 1. In L2, XLOOKUP finds 61,750 in the Sales column and returns Chloe. You can also nest them in one cell: =XLOOKUP(LARGE(D2:D8,2),D2:D8,A2:A8) returns Finn, the second-place rep. The XLOOKUP function guide explains each argument.
In Microsoft 365 or Excel 2024, TAKE does the whole panel in one formula: =TAKE(SORT(A2:D8,4,-1),3) returns the top three rows.
Watch out for ties#
Ties are the most common leaderboard bug. If Dev and Ana both had 52,300, LARGE would return 52,300 for second and third place, and XLOOKUP would return Dev both times, because it always finds the first match.
There are two fixes:
- Use SORT or SORTBY for the ranked list. They return every row once, even when values tie.
- Break the tie on purpose. Sort by sales, then by deals:
=SORTBY(A2:D8,D2:D8,-1,C2:C8,-1). The rep with more deals comes first.
Real sales figures tie more often than you'd think when they are rounded or capped, so test your leaderboard with two equal numbers before you share it.
Make it update automatically#
Formulas update when the numbers change, but new rows need a little setup. Turn the data into an Excel table: click inside it and press Ctrl+T (Mac: ⌘T). Then point the formulas at the table's columns, for example =SORT(Table1,4,-1). A new rep added at the bottom of the table is included straight away.
Without a table, a range like A2:D8 stays fixed, and an eighth rep in row 9 is quietly left out.
To make the leader stand out, add conditional formatting to the spilled list, such as a Top 10 Items rule set to 3, or data bars on the Sales column. For a full one-page view with charts, see how to build a sales dashboard in Excel.
Leaderboards in sales jobs and Excel tests#
Ranking reps is a common task in sales operations work and in Excel tests: "Who had the highest sales?" or "List the top three." Being able to answer with LARGE, XLOOKUP and SORT quickly is a real advantage. The guide to Excel skills for sales operations lists the other skills those roles use, and the data analyst Excel test lets you try ranking questions under time pressure.
Practise it#
The fastest way to learn this is to build it. Practise SORT in a live spreadsheet, then practise LARGE and SMALL to find the top values. To put it all together, try the sales report interview drill: it asks for the top order and its rep, just like a leaderboard. Each answer is checked as soon as you press Enter.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
Who is in second place? In G2, use LARGE to find the second-highest value in D2:D8, and XLOOKUP to return the matching rep from A2:A8.
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | Sales | |||||||
| 2 | 2nd place | |||||||
| 3 | ||||||||
| 4 | ||||||||
| 5 | ||||||||
| 6 | ||||||||
| 7 | ||||||||
| 8 | ||||||||
| 9 | ||||||||
| 10 | ||||||||
| 11 |
Tip: LARGE(D2:D8,2) is the value to find. Look for it in D2:D8 and return from A2:A8.
Practise this in a lesson
Frequently asked questions
How do I make a leaderboard in Excel?
Put the names and scores in a table, then in an empty area type =SORT(A2:D8,4,-1), changing 4 to the score column. The result spills into a ranked list that re-sorts when any score changes.
How do I show the top 3 sales reps in Excel?
Use =LARGE(D2:D8,1), 2 and 3 to find the top three sales, then =XLOOKUP(LARGE(D2:D8,1),D2:D8,A2:A8) to return each name. In Microsoft 365, =TAKE(SORT(A2:D8,4,-1),3) does it in one formula.
How do I rank sales in Excel without sorting the data?
Use RANK.EQ in a new column: =RANK.EQ(D2,$D$2:$D$8) gives 1 to the highest sale. The original order stays the same.
Why does my leaderboard show the same name twice?
Two reps have the same sales figure, and XLOOKUP returns the first match for both. Use SORT or SORTBY instead, which list every row once even when values tie.
Can I make a leaderboard in older Excel without SORT?
Yes. Use LARGE to get the values in order and INDEX with MATCH to return the names, for example =INDEX(A2:A8,MATCH(LARGE(D2:D8,1),D2:D8,0)). It works in every version but has the same tie problem.