When three or four subs bid the same scope, comparing PDFs side by side is slow and error-prone. A structured comparison sheet turns that into a two-minute read.
=MIN(B2:E2) returns the lowest price across all bidders for that row.=INDEX($B$1:$E$1,MATCH(MIN(B2:E2),B2:E2,0)) looks up which bidder's column matches the lowest price and returns their name — no manual scanning required.=B2=MIN($B2:$E2), and set a green fill. Every lowest bid highlights itself as you enter new numbers.=SUM(B2:B20) per bidder column shows total bid price — useful since the lowest bidder line-by-line isn't always the lowest overall.This turns bid leveling from a multi-hour manual comparison into something that updates itself the moment a late bid comes in.
| Line item | Bidder A | Bidder B | Bidder C | Lowest |
|---|---|---|---|---|
| Rough plumbing | $18,500 | $17,900 | $19,200 | B |
| Electrical rough-in | $22,400 | $23,100 | $21,800 | C |
| Fixtures | $9,800 | $9,200 | $9,500 | B |
| Total | $50,700 | $50,200 | $50,500 | B |
Bidder B is lowest on two of three lines and lowest overall, but only by $300 over Bidder C. If Bidder C's number includes permit fees that B excluded, the real ranking could change. That is exactly why the Notes column matters.
MATCH(...,0) forces an exact match. Leaving it out can return the wrong bidder.Should I always pick the lowest bidder?
Not automatically. Price is one factor, along with scope completeness, schedule, references and the bidder's current workload. The sheet is a decision aid, not the decision.
Can I use XLOOKUP instead of INDEX/MATCH?
In Excel 2021 or Microsoft 365, yes: =XLOOKUP(MIN(B2:E2),B2:E2,$B$1:$E$1). INDEX/MATCH works in every version, which matters if you share files with subs on older Excel.