Start a conversation ↗

FORMULA & SQL / TOTALS

Top N 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

RowA: RegionB: RepC: AmountD: Order DateE: StatusF: Customer
2NorthAna1,2002026-03-01PaidJo Smith
3SouthBen4502026-03-15OpenRaj Patel
4NorthCy3002026-04-02PaidLee Wong
5EastAna980.502026-04-20PaidMia Ross
6NorthBen752026-05-05OpenJo Smith
7WestDee1,6402026-05-18PaidSam Okoro

The formula

Excel
=TAKE(SORT(A2:F7,3,-1),5)
Google Sheets
=SORTN(A2:F7,5,0,3,FALSE)

TAKE(the range A2:F7, sorted, 5) — which keeps the first rows.

Spills the top rows. Needs Excel 365 or Google Sheets.

Run on the example rows:

ABCDEF
WestDee16402026-05-18PaidSam Okoro
NorthAna12002026-03-01PaidJo Smith
EastAna980.52026-04-20PaidMia Ross
SouthBen4502026-03-15OpenRaj Patel
NorthCy3002026-04-02PaidLee Wong

The SQL

PostgreSQL
SELECT *
FROM sales
ORDER BY amount DESC
LIMIT 5

Run on the example rows:

regionrepamountorder_datestatuscustomer
WestDee16402026-05-18PaidSam Okoro
NorthAna12002026-03-01PaidJo Smith
EastAna980.52026-04-20PaidMia Ross
SouthBen4502026-03-15OpenRaj Patel
NorthCy3002026-04-02PaidLee Wong
Other databases
MySQL
SELECT *
FROM sales
ORDER BY amount DESC
LIMIT 5
SQL Server
SELECT TOP 5 *
FROM sales
ORDER BY amount DESC
SQLite
SELECT *
FROM sales
ORDER BY amount DESC
LIMIT 5
BigQuery
SELECT *
FROM sales
ORDER BY amount DESC
LIMIT 5
Snowflake
SELECT *
FROM sales
ORDER BY amount DESC
LIMIT 5

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 ↗

Bring us the problem. We'll work through the system.

Your next
hard problem.↗