ExcelReady
CourseMock testsFunction guidesBlog
Start freeStart learning for free
ExcelReady

Be Excel-ready before day one. Hands-on practice in your browser, with instant feedback.

Learn

  • Course
  • Mock tests
  • Function guides
  • Blog

Test prep

  • Excel level test
  • Excel test practice
  • Free screening quiz
  • Certificate

Company

  • About
  • Editorial policy
  • Contact
  • Terms
  • Privacy

© 2026 ExcelReady. All rights reserved.

  1. Blog
  2. Lookups
  3. Tax Bracket and Tier Lookups in Excel

Tax Bracket and Tier Lookups in Excel

By ExcelReady Team·Updated November 1, 2026·6 min read

The short answer

For a tax bracket lookup, list each bracket's lower limit in ascending order with its rate, then use an approximate match: =VLOOKUP(B2,D2:E5,2,TRUE) or =XLOOKUP(B2,D2:D5,E2:E5,,-1). Both return the rate for the bracket the income falls in. To calculate progressive tax, add a base-tax column and use base + (income - lower limit) x rate.

Key takeaways

  • List the lower limit of each bracket, starting at 0, in ascending order.
  • VLOOKUP with TRUE, or XLOOKUP with match_mode -1, returns the row for the bracket an amount falls in.
  • A bracket lookup gives the rate; progressive tax needs a base-tax column or a SUMPRODUCT formula.
  • The same method works for commission tiers, discount levels, grade bands and shipping rates.
On this page+
  1. How to set up a bracket table
  2. Look up the bracket with VLOOKUP TRUE
  3. Look up the bracket with XLOOKUP
  4. Bracket rate vs progressive tax
  5. Calculate progressive tax with a base-tax column
  6. Calculate progressive tax with SUMPRODUCT
  7. Use the same lookup for any tiered table
  8. Common mistakes with bracket lookups
  9. Practise it

A tax bracket lookup in Excel finds which band an amount falls into and returns that band's rate. You list each bracket's lower limit with its rate, then use VLOOKUP with TRUE or XLOOKUP with match mode -1. This guide builds the lookup step by step, then shows how to turn the rate into a real progressive tax figure, and how the same method handles any tiered table.

The brackets in this guide are a simple made-up example, not any country's real tax rules. Swap in your own figures.

How to set up a bracket table#

A bracket table has one row per band, with the lower limit of the band in the first column. Sort it from smallest to largest and start at 0:

DE
1Lower limitRate
200%
310,00010%
440,00020%
590,00030%

Read each row as "from this amount up to the next limit". So income from 40,000 up to 89,999.99 is in the 20% band. You don't need a column of upper limits; the next row's lower limit does that job.

The 0 row matters. Without it, any income below 10,000 has no bracket and the lookup returns #N/A.

Look up the bracket with VLOOKUP TRUE#

VLOOKUP with TRUE as the last argument does an approximate match: it finds the largest lower limit that is less than or equal to the amount. With income in B2:

Excel formula
=VLOOKUP(B2,D2:E5,2,TRUE)

For an income of 55,000, VLOOKUP doesn't find 55,000, so it takes the last limit that isn't bigger: 40,000. The result is 20%.

IncomeBracket foundRate
9,00000%
55,00040,00020%
90,00090,000 (exact)30%
120,00090,00030%

The table must be sorted smallest to largest. If it isn't, VLOOKUP can return a wrong rate without any error. The VLOOKUP function guide covers the TRUE and FALSE options.

Look up the bracket with XLOOKUP#

XLOOKUP does the same job with match mode -1, which means "exact match or the next smaller item":

Excel formula
=XLOOKUP(B2,D2:D5,E2:E5,,-1)

This also returns 20% for 55,000. The two commas leave the not-found argument empty. XLOOKUP has two advantages here: the table doesn't need to be sorted, and the rate column can sit anywhere, even to the left. It needs Excel 2021 or Microsoft 365. See the XLOOKUP function guide for all its arguments.

Dates work the same way. A price list with "effective from" dates is just a bracket table where the limits are dates; see how to look up a value by date.

Bracket rate vs progressive tax#

The rate from the lookup is the rate on the top slice of income, not the rate on all of it. In a progressive system, each slice is taxed at its own rate. For an income of 55,000 with the table above:

SliceAmountRateTax
0 to 10,00010,0000%0
10,000 to 40,00030,00010%3,000
40,000 to 55,00015,00020%3,000
Total55,0006,000

So the tax is 6,000, not 20% of 55,000 (11,000). Mixing these up is a common mistake in finance tests.

Calculate progressive tax with a base-tax column#

The cleanest method adds a third column: the tax due on all income below each lower limit.

DEF
1Lower limitRateBase tax
200%0
310,00010%0
440,00020%3,000
590,00030%13,000

Each base tax is the previous base plus the previous band taxed in full. For the 90,000 row: 3,000 + (90,000 - 40,000) x 20% = 13,000.

Now tax = base tax + (income - lower limit) x rate:

Excel formula
=VLOOKUP(B2,D2:F5,3,TRUE)+(B2-VLOOKUP(B2,D2:F5,1,TRUE))*VLOOKUP(B2,D2:F5,2,TRUE)

For 55,000: 3,000 + (55,000 - 40,000) x 20% = 3,000 + 3,000 = 6,000, which matches the slice table. Each VLOOKUP finds the same row and returns a different column.

Calculate progressive tax with SUMPRODUCT#

If you'd rather not keep a base-tax column, SUMPRODUCT can do it with a column of rate increases: how much each band's rate goes up from the one before. Here that is 0%, 10%, 10% and 10% in G2:G5:

Excel formula
=SUMPRODUCT((B2>D2:D5)*(B2-D2:D5)*G2:G5)

For 55,000, this adds 55,000 x 0% + 45,000 x 10% + 15,000 x 10% = 0 + 4,500 + 1,500 = 6,000. The (B2>D2:D5) part switches off bands the income doesn't reach. This formula is compact, but the base-tax version is easier for others to check.

Use the same lookup for any tiered table#

Any table where values fall into ranges works the same way: commission tiers, volume discounts, grade boundaries, shipping bands. The rules don't change:

  1. Put the lower limit of each tier in the first column, starting with the smallest possible value.
  2. Sort ascending if you use VLOOKUP TRUE.
  3. Use TRUE (VLOOKUP) or -1 (XLOOKUP), never an exact match.

If the tier depends on two things, such as region and amount, see lookups with multiple criteria. To find the most recent rate rather than a band, read how to look up the last match. And if the rate column sits left of the limits, lookups to the left explains your options.

Common mistakes with bracket lookups#

  • FALSE instead of TRUE. An exact match returns #N/A for almost every income, because few incomes equal a limit exactly.
  • Upper limits in the first column. A table that lists "up to 10,000" values puts everyone one band too low. Use lower limits, or XLOOKUP with match mode 1.
  • An unsorted table with VLOOKUP. Sort it ascending, or switch to XLOOKUP.
  • Rates typed as whole numbers. 20 instead of 20% (0.2) makes every tax figure 100 times too big.

Practise it#

Bracket lookups are a favourite in finance and HR job tests. Practise VLOOKUP approximate match in a live spreadsheet: you type the formula and it checks the result instantly. Then practise XLOOKUP match modes to do the same with -1 and 1, and try the finance Excel mock test when you're ready.

Try it yourself

This is a live spreadsheet. Type the formula in the green cell and press Enter.

Noor earns 55,000. In C2, use VLOOKUP with TRUE to find her bracket rate from the table in D2:E5 (rate is column 2).

fx
ABCDEF
1
Employee
Income
Rate
Lower limit
Rate
2
Noor
55000
0
0
3
Felix
9000
10000
0.1
4
Hana
120000
40000
0.2
5
90000
0.3
6
7
8

Tip: Look up B2 in D2:E5, return column 2, and end with TRUE for an approximate match.

Practise this in a lesson

LessonVLOOKUP approximate matchUse VLOOKUP with TRUE to place values into tiers like commission bands, tax brackets or grades.LessonXLOOKUP wildcards and match modesSearch partial names with XLOOKUP's wildcard mode, and place values into tiers with next-smaller and next-larger matches.Function guideVLOOKUPLearn VLOOKUP with clear examples, the 4 most common mistakes, and a live practice exercise you can try in your browser.Function guideXLOOKUPXLOOKUP explained with real examples: exact matches, looking left and custom not-found messages, plus a live exercise to try now.

Frequently asked questions

How do I look up a tax bracket in Excel?

+

Put the lower limit of each bracket in one column, in ascending order starting at 0, and the rate next to it. Then use =VLOOKUP(income,table,2,TRUE) or XLOOKUP with match mode -1 to return the rate.

Why does my tax bracket VLOOKUP give the wrong rate?

+

The usual causes are a table that isn't sorted smallest to largest, upper limits instead of lower limits in the first column, or FALSE instead of TRUE as the last argument.

How do I calculate progressive tax in Excel?

+

Add a column with the tax due on all income below each bracket's lower limit. Then tax = base tax + (income - lower limit) x rate, using an approximate VLOOKUP or XLOOKUP for each part.

Can I use IFS instead of a lookup table for tax brackets?

+

Yes, but a lookup table is easier to check and update. When the rates change, you edit the table once instead of rewriting every IFS formula.

Sources

  • VLOOKUP function - Microsoft Support
  • XLOOKUP function - Microsoft Support
  • SUMPRODUCT function - Microsoft Support

Written and checked by the ExcelReady Team. First published November 1, 2026. The practice exercise runs in the same formula engine as our lessons. Found a mistake? Read our editorial policy or email hello@excelready.app.

On this page

  1. How to set up a bracket table
  2. Look up the bracket with VLOOKUP TRUE
  3. Look up the bracket with XLOOKUP
  4. Bracket rate vs progressive tax
  5. Calculate progressive tax with a base-tax column
  6. Calculate progressive tax with SUMPRODUCT
  7. Use the same lookup for any tiered table
  8. Common mistakes with bracket lookups
  9. Practise it

Keep reading

Lookups· 6 min read

How to Look Up a Value by Date in Excel

To look up by date, treat the date like any other lookup value: =XLOOKUP(D2,A2:A6,B2:B6) finds an exact date. To get the value in effect on a date, such as a price that changed over time, use an approximate match: =XLOOKUP(D2,A2:A6,B2:B6,,-1) or =VLOOKUP(D2,A2:B6,2,TRUE). Both need real dates, not text.

Lookups· 7 min read

Find the Last Match in Excel With XLOOKUP

To find the last match, set XLOOKUP's sixth argument, search_mode, to -1 so it searches from the bottom up: =XLOOKUP(F2,A2:A8,C2:C8,"Not found",0,-1). It returns the value from the last row where column A equals F2, such as the most recent price in a list sorted oldest first. XLOOKUP needs Excel 2021 or Microsoft 365.

Lookups· 6 min read

Lookup With Multiple Criteria in Excel

To look up a value that must match two or more criteria, multiply the tests and look up 1: =XLOOKUP(1,(A2:A8=F2)*(B2:B8=F3),C2:C8). Each test gives 1 for TRUE and 0 for FALSE, so only rows that pass every test become 1. In Excel 2019 and earlier, use =INDEX(C2:C8,MATCH(1,(A2:A8=F2)*(B2:B8=F3),0)) or a helper column.

More on lookups

  • Two-Way Lookup in Excel (Row and Column)
  • VLOOKUP in Excel: Step-by-Step for Beginners
  • VLOOKUP Approximate Match for Tiers and Bands
  • VLOOKUP Column Index Number Explained
  • VLOOKUP Exact Match: Why FALSE Matters
  • VLOOKUP to Return Several Columns at Once
All lookups articles →

Don't just read about Excel. Do it.

Practise real formulas in a live spreadsheet with instant feedback, right in your browser. Nothing to download.

Start learning for free