Resources
Lab Results Tracker Spreadsheet: How to Set One Up in Excel or Google Sheets
Most practitioners who follow client labs over time keep a spreadsheet. It is free, you control it, and it works in Excel or Google Sheets. The difference between a tracker that helps and one that fights you is mostly in how it is set up on day one. Here is a setup that holds up across clients and visits, step by step.
1. Start with the layout
Give each client their own tab. On it, put markers down the side and lab draws across the top:
- Column A: the marker name.
- Column B: the unit.
- Columns C and D: your low and high, which come from your Ranges tab in step 2.
- Column E onward: one column per lab draw, oldest on the left, with the draw date as the header.
Group markers by panel, with a short heading row for each (thyroid, iron, vitamins and so on). Use the same marker list, in the same order, on every client's tab. That makes it quick to copy a tab for a new client and easy to find a marker at a glance.
One client's tab
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Marker | Unit | Low | High | 11/18/25 | 2/3/26 | 5/12/26 |
| 2 | Iron | ||||||
| 3 | Ferritin | ng/mL | 60 | 110 | 11 | 22 | 38 |
| 4 | Serum iron | µg/dL | 85 | 130 | 88 | 91 | 96 |
| 5 | Vitamins | ||||||
| 6 | Vitamin D | ng/mL | 50 | 80 | 31 | 52 | 62 |
| 7 | Folate | ng/mL | 15 | 25 | 16.2 | 15.1 | 15.8 |
2. Keep your ranges on one tab
This is the step that saves the most time later. Make one tab called Ranges with the same first four columns: Marker, Unit, Low, High. Then, instead of typing your ranges into every client's tab, have each client tab look them up. Change a range once on the Ranges tab and every client updates.
In cell C3 of a client tab, enter:
=XLOOKUP($A3, Ranges!$A:$A, Ranges!C:C)
Then fill it across into column D and down the rest of the list. Because the Ranges tab uses the same column order, the one formula finds the low in column C and the high in column D. XLOOKUP works in Google Sheets and in current versions of Excel. In older Excel, =VLOOKUP($A3, Ranges!$A:$D, 3, FALSE) does the same job for the low (use 4 for the high).
The Ranges tab
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Marker | Unit | Low | High |
| 2 | Ferritin | ng/mL | 60 | 110 |
| 3 | Serum iron | µg/dL | 85 | 130 |
| 4 | Vitamin D | ng/mL | 50 | 80 |
| 5 | Folate | ng/mL | 15 | 25 |
A client tab, looking them up
| A | B | C | D | |
|---|---|---|---|---|
| 3 | Ferritin | ng/mL | 60 | 110 |
| 4 | Serum iron | µg/dL | 85 | 130 |
| 6 | Vitamin D | ng/mL | 50 | 80 |
| 7 | Folate | ng/mL | 15 | 25 |
Separate ranges by sex? Give the Ranges tab a pair of columns for each set (for example Low F, High F, Low M, High M), and point each client's lookup at the pair that applies to them.
3. Let the sheet do the flagging
Conditional formatting can color any result that falls outside your low and high, so nothing slips by. Select the results area (for example E3:G60) and add a rule that uses a formula. In Google Sheets that is Format, Conditional formatting, "Custom formula is". In Excel it is Home, Conditional Formatting, New Rule, "Use a formula to determine which cells to format". Enter:
=AND(ISNUMBER(E3), OR(AND(ISNUMBER($C3), E3<$C3), AND(ISNUMBER($D3), E3>$D3)))
Pick a light fill color and save. The checks for numbers keep heading rows and empty cells from lighting up, and let a marker with only a high (or only a low) work properly.
Saved as a number
| A | C | D | G | |
|---|---|---|---|---|
| 4 | Serum iron | 85 | 130 | 81 |
Saved as text
| A | C | D | G | |
|---|---|---|---|---|
| 4 | Serum iron | 85 | 130 | 81 µg/dL |
Numbers only in the results cells. Keep the unit in column B, never in the result cell. Results a lab prints with a symbol, such as <5, are text too: type them as they appear and expect them not to be colored, or add a note to the cell.
4. One unit per row
Labs don't all report a marker in the same unit. Glucose can come back in mg/dL from one lab and mmol/L from another, and vitamin D in ng/mL or nmol/L. If a result arrives in a different unit from the one in column B, convert it before you type it in, and leave a note on the cell saying so. A value in the wrong unit is the easiest mistake to miss, because it still looks like a reasonable number.
5. Keep draws in date order
Type each draw date into the header row as a real date, not as text, so the spreadsheet can sort it. When older results turn up late, say a client finds last spring's panel, insert a new column in the right place instead of adding it on the end. Trends only make sense when the columns run in the order the labs were drawn.
6. Add a trend
A small line next to each marker shows direction at a glance without building a chart. Add a Trend column after your draws. In Google Sheets, enter =SPARKLINE(E3:G3) and fill it down. In Excel, select the cells for the trend, then Insert, Sparklines, Line, and choose the results as the data range. When you add a draw, widen the range to include it.
A trend column
| A | E | F | G | H | |
|---|---|---|---|---|---|
| 1 | Marker | 11/18/25 | 2/3/26 | 5/12/26 | Trend |
| 3 | Ferritin | 11 | 22 | 38 | |
| 4 | Serum iron | 88 | 91 | 96 | |
| 6 | Vitamin D | 31 | 52 | 62 | |
| 7 | Folate | 16.2 | 15.1 | 15.8 |
7. Keep the file private
Client lab results are health information. Keep the tracker in an account that is covered by a Business Associate Agreement (BAA) with you. Google Workspace and Microsoft 365 both offer one on their business plans (in Google Workspace, an administrator has to accept it in the Admin console first); a personal Gmail, Google Drive or OneDrive account does not. Share it only with people who need it, and avoid emailing copies of the file around.
What to show your client
The tracker is your working file. Your client needs something easier to read: their results, your ranges, a clear flag on anything outside them, and your notes in plain language. Our guide to what to include in a client lab report walks through it.
When a spreadsheet stops being worth it
A tracker set up this way holds up well for a handful of clients. These are the usual signs it is time for something else:
- Typing results in takes longer than reading them.
- Each visit means scrolling a PDF in one window and a spreadsheet in the other, about 80 values at a time.
- You have stopped adding trend lines, or stopped updating old tabs when a range changes.
- You copy everything into a separate document to make the client report.
How My Practice Labs handles this
My Practice Labs does the same jobs as the tracker, without the typing:
- Results come in from the files your client sends. Upload PDFs, portal screenshots and photos together, up to 15 files at once. Values are sorted by panel, and anything unclear is set aside for you to check before it is saved.
- Ranges are built in and customizable. Functional and standard ranges come ready to use. Adjust the functional range for any marker once, with separate male and female sets, and it applies to every client.
- Units are handled for you. Results in other units are converted as they come in, and each converted value is marked so you can see it.
- Visits stay in draw-date order, and any marker opens to its own history.
- The client report is built from the same results, with your logo and your notes.
Where the result falls
Visit history
It organizes and presents results; it never diagnoses, scores or recommends. The interpretation, and the notes that go with it, stay yours.
Try it with your next client's labs
Start a 7-day free trial, no credit card required. Or take the quick tour to see each screen first.
Start free trialThis article is educational content for practitioners. It is not medical or legal advice. Excel, Google Sheets, Google Workspace and Microsoft 365 belong to their owners and are mentioned only as examples.