Make an Inventory Tracker in Excel
By ExcelReady TeamUpdated 7 min read
The short answer
To make an inventory tracker in Excel, keep two tables: a product list with each item's opening stock and reorder level, and a log with one row for every delivery or sale. SUMIF adds the stock in and out for each product, so current stock is opening plus in minus out. An IF formula and conditional formatting flag items to reorder.
Key takeaways
- Never type current stock by hand: log every movement and let SUMIF total it per product.
- Current stock = opening stock + total in − total out, one formula per product.
- =IF(F2<=G2,"Reorder","OK") turns the reorder level into an alert, and conditional formatting colors it.
- XLOOKUP (or VLOOKUP with FALSE) fills the item name in the log from the SKU, so names are never retyped.
- Lock the log ranges with $ and make them longer than the log, so new rows are counted.
On this page+
An inventory tracker in Excel works best as two tables: a product list that shows what you have, and a log that records every delivery and sale. SUMIF adds up the log for each product, so current stock is always calculated, never typed. This guide builds a tracker for a small office stockroom with reorder alerts, stock value and lookups. The same build works for a shop, a warehouse shelf or equipment loans.
How the inventory tracker is organised#
Split the tracker into two sheets, because they do different jobs.
| Sheet | One row per | Who changes it |
|---|---|---|
| Products | Item you stock | Rarely: new items, new reorder levels |
| Log | Movement of stock in or out | Every delivery and every sale |
Keeping movements in a log, rather than editing a stock number, gives you a history. If a count looks wrong, you can see every change that led to it.
Step 1: Set up the product list#
The product list holds the facts about each item. Give every item a unique SKU (stock keeping unit), a short code that never changes, even if the name does.
| A | B | C | G | I | |
|---|---|---|---|---|---|
| 1 | SKU | Item | Opening | Reorder level | Unit cost |
| 2 | A-100 | Printer paper (box) | 40 | 15 | 24.00 |
| 3 | A-101 | Toner cartridge | 12 | 5 | 68.50 |
| 4 | A-102 | Sticky notes (pack) | 60 | 20 | 3.20 |
| 5 | A-103 | Ballpoint pens (box) | 25 | 10 | 7.90 |
Opening is the stock on the day you start the tracker, from a physical count. Leave columns D, E, F and H free for the formulas below.
Step 2: Log every movement#
The Log sheet gets one row each time stock arrives or leaves. Use separate In and Out columns so the numbers stay positive and easy to check.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Date | SKU | In | Out | Item |
| 2 | 3/3/2025 | A-100 | 12 | Printer paper (box) | |
| 3 | 3/4/2025 | A-102 | 25 | Sticky notes (pack) | |
| 4 | 3/5/2025 | A-101 | 4 | Toner cartridge | |
| 5 | 3/6/2025 | A-100 | 20 | Printer paper (box) | |
| 6 | 3/7/2025 | A-103 | 18 | Ballpoint pens (box) | |
| 7 | 3/10/2025 | A-100 | 22 | Printer paper (box) | |
| 8 | 3/11/2025 | A-101 | 5 | Toner cartridge | |
| 9 | 3/12/2025 | A-102 | 30 | Sticky notes (pack) |
Column E is a lookup, so nobody types item names twice. In E2:
=XLOOKUP(B2,Products!$A$2:$A$100,Products!$B$2:$B$100,"Unknown SKU")XLOOKUP finds the SKU in the product list and returns its name. The fourth argument shows "Unknown SKU" instead of #N/A when a code is mistyped, which is itself a useful check. XLOOKUP needs Excel 2021, Excel 2024 or Microsoft 365. In older versions, use VLOOKUP with FALSE for an exact match:
=VLOOKUP(B2,Products!$A$2:$B$100,2,FALSE)The XLOOKUP function guide covers the other options, such as searching from the bottom up.
Step 3: Total stock in and out with SUMIF#
SUMIF adds the numbers in rows that match a condition. Back on the Products sheet, in D2 (Stock in):
=SUMIF(Log!$B$2:$B$500,A2,Log!$C$2:$C$500)It checks the SKU column of the log, keeps the rows that match A2, and adds their In amounts. In E2 (Stock out), use the Out column, Log!$D$2:$D$500, instead. Fill both down to row 5.
The ranges run to row 500, longer than the log, so new movements are counted without editing the formula. The $ signs keep them fixed when you fill down, while A2 moves to A3, A4 and A5. See how to use SUMIF in Excel and the SUMIF function guide for more criteria.
Step 4: Calculate current stock and reorder alerts#
Current stock is the opening count plus everything in, minus everything out. In F2:
=C2+D2-E2Then compare it with the reorder level in H2:
=IF(F2<=G2,"Reorder","OK")Fill both down. The finished summary:
| SKU | Opening | In | Out | Current | Reorder level | Status |
|---|---|---|---|---|---|---|
| A-100 | 40 | 20 | 34 | 26 | 15 | OK |
| A-101 | 12 | 0 | 9 | 3 | 5 | Reorder |
| A-102 | 60 | 30 | 25 | 65 | 20 | OK |
| A-103 | 25 | 0 | 18 | 7 | 10 | Reorder |
<= means the alert shows when stock reaches the reorder level, not only when it falls below it. Choose the level so a new order arrives before you run out.
Step 5: Color the items to reorder#
Conditional formatting makes the alerts visible from across the room.
- Select the product rows, A2:J5.
- Choose Home > Conditional Formatting > New Rule > Use a formula to determine which cells to format.
- Enter
=$H2="Reorder", choose a light red fill and click OK.
The $ before H makes every cell in the row check the Status column. When a delivery is logged and stock climbs back above the reorder level, the color disappears by itself.
Step 6: Work out the stock value#
Stock value is current stock times unit cost. In J2, type =F2*I2 and fill down, then total it with =SUM(J2:J5).
| SKU | Current | Unit cost | Value |
|---|---|---|---|
| A-100 | 26 | 24.00 | 624.00 |
| A-101 | 3 | 68.50 | 205.50 |
| A-102 | 65 | 3.20 | 208.00 |
| A-103 | 7 | 7.90 | 55.30 |
| Total | 1,092.80 |
This uses the latest unit cost for every item. Accounting methods that value each delivery at its own cost need a more detailed log.
How to keep the tracker accurate#
- Count regularly. Compare a physical count with the Current column. Log a correction (In or Out) with a note rather than changing the opening stock.
- Use a drop-down for SKUs in the log (Data > Data Validation > List, with the product SKUs as the source), so codes can't be mistyped.
- Turn both tables into Excel tables with Ctrl+T (Mac: ⌘T), so new rows are formatted and included automatically.
- Keep each SKU once in the product list. A duplicate SKU makes XLOOKUP return only the first match, and both rows would show the same SUMIF totals. Sorting either table is safe, because SUMIF and XLOOKUP find each SKU wherever it sits.
Stock tracking with SUMIF and lookups is a classic task in Excel skills for sales and operations roles, and a common format in an Excel test for a job interview. For the next project, an invoice with formulas uses the same lookups to price each line, and a gradebook practises IF and AVERAGE.
Practise it#
Do the exercise on this page to calculate current stock from a log. Then practise VLOOKUP exact match for the item lookups, practise SUMIF for stock totals, and practise conditional formatting to build the reorder alerts in a live spreadsheet.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
The log in F1:H9 lists deliveries (In) and sales (Out) by SKU. In D2, work out the current stock of the SKU in A2: the opening stock in C2, plus SUMIF of the In column, minus SUMIF of the Out column. Lock the log ranges with $.
| A | B | C | D | E | F | G | H | I | |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Current | Out | |||||||
| 2 | A-100 | ||||||||
| 3 | A-102 | ||||||||
| 4 | A-101 | ||||||||
| 5 | |||||||||
| 6 | A-103 | ||||||||
| 7 | A-100 | ||||||||
| 8 | A-101 | ||||||||
| 9 | |||||||||
| 10 | |||||||||
| 11 | |||||||||
| 12 |
Tip: SUMIF($F$2:$F$9,A2,$G$2:$G$9) adds everything received for A-100. Do the same with the Out column and subtract it.
Practise this in a lesson
Frequently asked questions
What columns does an inventory tracker need?
At minimum: a unique SKU or item code, item name, opening stock, stock in, stock out, current stock and reorder level. Add unit cost and stock value if you need to report what the stock is worth.
How do I calculate current stock in Excel?
Add the opening stock to everything received and subtract everything sent out: =C2+SUMIF(log SKUs,A2,log In)-SUMIF(log SKUs,A2,log Out). It updates every time a row is added to the log.
How do I get Excel to warn me when stock is low?
Add a reorder level for each item and a status formula such as =IF(F2<=G2,"Reorder","OK"). Then add a conditional formatting rule so Reorder rows turn red.
Is Excel good enough for inventory management?
For a small business, a stockroom or a single team, a well-built Excel tracker works well. Once many people edit stock at the same time, or you need barcode scanning, dedicated inventory software is usually a better fit.