How to make an inventory spreadsheet in Excel or Google Sheets
Build a simple inventory spreadsheet for a small business in Excel or Google Sheets: the columns you need, the formulas to copy, and automatic reorder alerts.
A good inventory spreadsheet does three things: it tells you what you have, it tells you when to reorder, and it lets you find mistakes. Most templates you can download only do the first.
This guide shows how to build your own in about thirty minutes. It works the same way in Excel and Google Sheets, and you will understand every cell, which is what makes it easy to fix later.
The idea: three sheets, not one
The most common mistake is a single list where you type over the stock number after every sale. When the number is wrong, you have no way to know why.
Use three sheets (tabs) instead:
| Sheet | What it holds | How often it changes |
|---|---|---|
| Products | One row per product or variant | When you add a product |
| Movements | One row for every time stock goes in or out | Every day |
| Stock | The current stock, calculated automatically | Never by hand |
Nothing is ever overwritten. Stock is always the sum of the movements, so every number can be traced back.
Sheet 1: Products
Create a sheet called Products with these columns:
| Column | Header | Example |
|---|---|---|
| A | SKU | MUG-BLU-L |
| B | Product name | Blue mug, large |
| C | Supplier | Northside Ceramics |
| D | Unit cost | 4.20 |
| E | Reorder point | 44 |
| F | Storage location | Shelf B2 |
Each variant (size, colour) gets its own row and its own SKU. If you do not have SKUs yet, start with our guide on how to create SKU numbers.
Sheet 2: Movements
Create a sheet called Movements. Every time stock changes, add a new row at the bottom:
| Column | Header | Example |
|---|---|---|
| A | Date | 2026-11-13 |
| B | SKU | MUG-BLU-L |
| C | Type | Sale |
| D | Quantity | -2 |
| E | Note | Order 1042 |
Use positive numbers for stock coming in (deliveries, customer returns) and negative numbers for stock going out (sales, damaged items). For the Type column, keep a short fixed list: Opening stock, Delivery, Sale, Return, Adjustment.
Your very first rows are the opening stock: one row per SKU with the quantity you counted today.
Sheet 3: Stock
Create a sheet called Stock. Put the SKU in column A (copy the list from the Products sheet), then add these formulas in row 2 and copy them down.
Product name (column B)
=XLOOKUP(A2, Products!A:A, Products!B:B)
Current stock (column C)
=SUMIF(Movements!B:B, A2, Movements!D:D)
This adds up every movement for the SKU. It is the heart of the spreadsheet.
Reorder point (column D)
=XLOOKUP(A2, Products!A:A, Products!E:E)
Status (column E)
=IF(C2<=0, "Out of stock", IF(C2<=D2, "Reorder", "OK"))
Stock value (column F)
=C2 * XLOOKUP(A2, Products!A:A, Products!D:D)
If your version of Excel does not have XLOOKUP, use =VLOOKUP(A2, Products!A:F, 2, FALSE) and change the 2 to the number of the column you want.
Add automatic reorder alerts
The Status column already says “Reorder”. Make it impossible to miss:
- Select the Status column in the Stock sheet.
- Open conditional formatting (in the Format menu in Google Sheets, on the Home tab in Excel).
- Add a rule: text is exactly “Reorder”, fill the cell orange.
- Add a second rule: text is exactly “Out of stock”, fill the cell red.
To set good reorder points, use the formulas in our guide on reorder point and safety stock.
Prevent typing mistakes
A SKU typed slightly wrong in the Movements sheet is a movement that never reaches your stock. Two small protections avoid most errors:
- Drop-down list for SKUs. Select column B of the Movements sheet, open data validation, and allow only values from the SKU column of the Products sheet.
- Drop-down list for Type. Do the same for column C with your fixed list of movement types.
- Protect the Stock sheet so nobody types over a formula by accident.
How to use it day to day
- A sale: one new row in Movements with a negative quantity. If your store exports orders as a file, paste the rows in once a day instead of typing them.
- A delivery from a supplier: one new row with a positive quantity.
- A damaged or lost item: one row of type Adjustment with a negative quantity and a note.
- Once a month: count a few products and compare with the Stock sheet. Our stock count checklist explains how to do it quickly.
Useful extras
- Total stock value:
=SUM(Stock!F:F)gives you the value of everything on your shelves, which your bookkeeping needs at year end. - Units sold in a period:
=-SUMIFS(Movements!D:D, Movements!B:B, A2, Movements!C:C, "Sale")gives total units sold for a SKU. - A filter on Status shows your whole reorder list in two clicks.
The limits of a spreadsheet
This setup works well for one person, one stock location and up to a few hundred products. It starts to struggle when:
- several people edit it at the same time;
- you sell on several channels and need stock to update automatically;
- you spend more than a couple of hours a week keeping it up to date.
When that happens, read inventory spreadsheet or inventory software for the warning signs and how to switch, and the best free inventory software for tools that cost nothing to try.
Key takeaways
- Use three sheets: Products, Movements and Stock. Never overwrite a stock number.
- Current stock is one formula: a SUMIF over the movements.
- A Status column with conditional formatting gives you free reorder alerts.
- Drop-down lists prevent most typing mistakes.
- A spreadsheet is enough for many small shops. Switch when keeping it up to date costs more than the software would.