FORMULA & SQL / TOTALS
Rank rows by a value.
Tested, not guessed.
The Excel and Google Sheets formula and the SQL query, each run on the rows below. Open this with your own data ↗
The example rows
| Row | A: Region | B: Rep | C: Amount | D: Order Date | E: Status | F: Customer |
|---|---|---|---|---|---|---|
| 2 | North | Ana | 1,200 | 2026-03-01 | Paid | Jo Smith |
| 3 | South | Ben | 450 | 2026-03-15 | Open | Raj Patel |
| 4 | North | Cy | 300 | 2026-04-02 | Paid | Lee Wong |
| 5 | East | Ana | 980.50 | 2026-04-20 | Paid | Mia Ross |
| 6 | North | Ben | 75 | 2026-05-05 | Open | Jo Smith |
| 7 | West | Dee | 1,640 | 2026-05-18 | Paid | Sam Okoro |
The formula
Excel
=RANK(C2,$C$2:$C$7)
RANK(Amount (C2), the Amount column ($C$2:$C$7)) — which gives a value's rank in a list.
Run on the example rows:
| Row | Result |
|---|---|
| 2 | 2 |
| 3 | 4 |
| 4 | 5 |
| 5 | 3 |
| 6 | 6 |
| 7 | 1 |
The SQL
PostgreSQL
SELECT *, RANK() OVER (ORDER BY amount DESC) AS rank_position FROM sales ORDER BY rank_position
Run on the example rows:
| region | rep | amount | order_date | status | customer | rank_position |
|---|---|---|---|---|---|---|
| West | Dee | 1640 | 2026-05-18 | Paid | Sam Okoro | 1 |
| North | Ana | 1200 | 2026-03-01 | Paid | Jo Smith | 2 |
| East | Ana | 980.5 | 2026-04-20 | Paid | Mia Ross | 3 |
| South | Ben | 450 | 2026-03-15 | Open | Raj Patel | 4 |
| North | Cy | 300 | 2026-04-02 | Paid | Lee Wong | 5 |
| North | Ben | 75 | 2026-05-05 | Open | Jo Smith | 6 |
Other databases
MySQL
SELECT *, RANK() OVER (ORDER BY amount DESC) AS rank_position FROM sales ORDER BY rank_position
SQL Server
SELECT *, RANK() OVER (ORDER BY amount DESC) AS rank_position FROM sales ORDER BY rank_position
SQLite
SELECT *, RANK() OVER (ORDER BY amount DESC) AS rank_position FROM sales ORDER BY rank_position
BigQuery
SELECT *, RANK() OVER (ORDER BY amount DESC) AS rank_position FROM sales ORDER BY rank_position
Snowflake
SELECT *, RANK() OVER (ORDER BY amount DESC) AS rank_position FROM sales ORDER BY rank_position
Your own data
Paste your rows into the free tool and it writes this for your columns, then runs it on your data before you copy it. Open the tool ↗