Manually retyping unit prices into every estimate invites mistakes and makes it painful to update pricing later. Linking your estimate sheet to a separate price list with VLOOKUP fixes both problems at once.
=VLOOKUP(A2,Prices!A:B,2,FALSE) — this looks up the item name in column A and returns its price from the Prices tab.=Quantity*UnitCost as before, now driven by a price that updates everywhere the moment you change it once on the Prices tab.=SUMIF(TradeColumn,"Electrical",LineTotalColumn) gives you a trade-by-trade breakdown for the bid summary page without manual re-entry.This structure turns a one-off estimate into a living pricing system: update a material cost in one place, and every project template that references it recalculates instantly.
Assume the Prices tab contains three items: 3000 psi concrete at $165.00 per cu yd, #4 rebar 20 ft at $11.50 each, and 2x4x8 stud at $3.85 each. In the estimate sheet:
| Item | Qty | Unit Cost (VLOOKUP) | Line Total |
|---|---|---|---|
| 3000 psi concrete | 18 | $165.00 | $2,970.00 |
| #4 rebar 20 ft | 85 | $11.50 | $977.50 |
| 2x4x8 stud | 240 | $3.85 | $924.00 |
When your supplier raises concrete to $172.00, change that single cell on the Prices tab. The estimate line becomes $3,096.00 on its own, in every estimate that uses the same Prices tab.
=IFERROR(VLOOKUP(A2,Prices!A:B,2,FALSE),"Check item") shows a readable message instead of #N/A when an item is missing or misspelled.Is VLOOKUP obsolete?
XLOOKUP is more flexible in modern Excel, but VLOOKUP is still everywhere and works in all versions. It is perfectly fine for a price list.
How do I keep old estimates from changing when prices change?
Once a bid is submitted, copy the sheet, then paste the Unit Cost column as values (Paste Special → Values) so it no longer depends on the live Prices tab.