← All posts

A lab results spreadsheet template, and where spreadsheets stop working

Published October 10, 2026

A spreadsheet is a perfectly good place to keep your lab history. It is free, it is yours, and it will still open in twenty years. Most people who try it give up for one of two reasons: they never settle on a layout, or the layout they pick cannot be charted. This post gives you a layout that works, as a file you can download, and then is honest about where a spreadsheet starts to mislead you.

Download the template

There is no sign-up and nothing to install. The example rows are made-up data, so delete them before you add your own.

To use the workbook in Google Sheets, upload it to Google Drive and open it, or use File > Import from an empty sheet.

What is in it

One row is one test result. A metabolic panel with 14 tests is 14 rows that share a date. This “long” layout looks repetitive, but it is the only one that survives a new test being added, and the only one that filters and charts cleanly.

ColumnWhat to enter
DateThe day the sample was collected, written as year-month-day, such as 2024-04-02.
TestThe test name, spelled the same way every time.
ValueThe number only, with no unit.
UnitThe unit exactly as the report prints it.
Reference LowThe bottom of the range printed on that report.
Reference HighThe top of the range printed on that report.
FlagH or L if the result is outside the range. The workbook fills this in.
LabWho ran the test: Quest, Labcorp, a hospital lab.
FastingYes or No.
NotesAnything that could have moved the number.

The workbook has three more sheets. Tests is your list of test names, the unit you record each one in, and the other names labs print for it. Medications holds starts, stops, and dose changes with dates. Read me repeats these instructions.

How to fill it in

Use the collection date. A report can be issued days after the blood was drawn, and corrected reports are reissued later still. The draw date is the one that belongs on a timeline. Write it year first. A date like 03/04/2024 means March 4 in the United States and 3 April almost everywhere else, and a spreadsheet will guess.

Pick one name per test. Labs print “Hemoglobin A1c”, “HbA1c”, and “A1C” for the same test. If all three end up in your sheet, you have three short histories instead of one long one. In the workbook, choose names from the dropdown and add new ones to the Tests sheet first.

Keep the value a number. Type 104, not “104 mg/dL”. The unit has its own column. A cell with text in it cannot be charted or compared with the range.

Copy the range from each report. Do not carry last year’s range forward. Each lab sets its own, and the same lab changes them over time.

Leave one side blank for a one-sided range. HDL cholesterol is usually printed as “above 40”. Enter 40 as the low and leave the high empty.

Write the note while you remember. “Not fasting, afternoon draw” takes five seconds today and cannot be reconstructed in two years.

How to chart one test

  1. On the Results sheet, use the filter arrow on the Test column and choose one test.
  2. Check the Unit column. Every visible row should show the same unit.
  3. Select the Date and Value cells for the visible rows.
  4. Insert a scatter chart with lines. In Excel that is Insert > Scatter. In Google Sheets it is Insert > Chart, then pick a scatter or line chart.

Use a scatter chart, not a plain line chart, so the dates are spaced by time. Two draws a week apart and two draws three years apart should not sit the same distance apart.

To see the range on the chart, add Reference Low and Reference High as two more series. They will draw as lines above and below your values.

Repeat for each test you care about. This is the part that takes the longest, and you redo it whenever you want to look at a different test.

Where the spreadsheet stops working

None of these are reasons not to start. They are the things to watch for once the sheet has a few years in it.

Units

A spreadsheet stores numbers. It does not know what they measure. If one lab reports glucose in mg/dL and another in mmol/L, the sheet will happily chart 99 next to 5.5 and show a collapse that never happened. The same goes for cholesterol, where 100 mg/dL is about 2.6 mmol/L, and for A1c, which is a percentage in the United States and mmol/mol in the United Kingdom and much of Europe. An A1c of 6.5% is 48 mmol/mol.

The opposite trap also exists. The example rows include TSH reported as mIU/L by one lab and uIU/mL by another. Those are the same scale under two labels, so the numbers compare directly, but a sheet filtered by unit would split them.

You can convert by hand and record the converted value. That works until one conversion is typed wrong, and nothing in the sheet will tell you.

Reference ranges

In the example rows, the A1c range is 4.0 to 5.6 at one lab and 4.8 to 5.6 at another. Ranges differ because instruments and methods differ, and that is why the template keeps the range on every row. The cost shows up on the chart. A range that changes partway through draws as a step, and you have to remember that the step is the lab changing, not you.

More than one lab

Every new source adds its own test names, its own units, and its own ranges. One person keeping one sheet from one lab can stay consistent for years. Add a second health system, a specialist who uses a different lab, and a few results from an urgent care visit, and the Tests sheet becomes the thing you maintain instead of the thing that helps you.

The smaller problems

For the method behind all of this, see How to track your lab results over time.

If you outgrow it

We make HealthViewer, so weigh this section accordingly.

HealthViewer is a lab results tracker that runs on your Mac or Windows computer and does the parts above that a spreadsheet leaves to you. It reads lab report PDFs directly, so there is no typing. It maps the names different labs print onto one test, converts units so one test’s history can share a chart, and keeps each report’s own reference range with each result. Charts shade the range and can mark medication starts and stops on the same timeline. Everything is stored in one encrypted file on your computer, with no account and no cloud service. It costs $24.99 once, after a 7-day free trial.

The template was built so the work you have already done carries over. In Excel or Google Sheets, save the Results sheet as a CSV file. In HealthViewer, choose Import, then Upload a File, and drop the CSV in. The date, test, value, unit, reference range, and flag columns are read as they are, and you can review every row before saving. The Lab, Fasting, and Notes columns are not imported, so keep the spreadsheet if you rely on them. Upload a PDF or CSV has the full steps.

It also goes the other way. Export writes your results back out as a CSV at any time, so moving in does not mean you cannot move out.

A spreadsheet is still the right answer for plenty of people: one lab, a handful of tests, and the patience to type them in. Where should your lab results live? compares it with portals, phone apps, and other trackers.


Excel is a trademark of Microsoft. Google Sheets is a trademark of Google. This post is general information, not medical advice. Talk to your clinician before acting on any change in your results.