The template: eleven columns, in this order
Resist the urge to add twenty columns on day one — unused columns are guilt, and guilt kills logs. This set covers nearly every reader; add more only when you feel a real gap. If you're still deciding between a sheet, an app, or a notebook at all, our broader guide on how to track books you've read compares the three systems first.
| Col | Field | Type | Why it's here |
|---|---|---|---|
| A | Title | Text | The book. Include series info here if you like ("Mistborn #1"). |
| B | Author | Text | One name per cell, "Last, First" if you plan to sort by it. |
| C | ISBN | Text | Disambiguates editions and makes future app imports match cleanly. Format the column as plain text so leading zeros survive. |
| D | Format | List: Print / Ebook / Audio | Cheap to record, interesting in aggregate. |
| E | Status | List: To Read / Reading / Read / Abandoned | The engine of every count. Keep the values fixed. |
| F | Started | Date | Optional, but unlocks pace stats. |
| G | Finished | Date | Powers "books read this year." The most important date. |
| H | Rating | Number 1–5 | Whole or half stars — just be consistent. |
| I | Pages | Number | For yearly page totals. |
| J | Genre | Text | One primary genre keeps counting simple. |
| K | Notes | Text | Two lines, written the day you finish, worth more than any other cell. |
A starter row, so the shape is concrete
| Title | Author | ISBN | Format | Status | Started | Finished | Rating | Pages | Genre | Notes |
|---|---|---|---|---|---|---|---|---|---|---|
| Piranesi | Clarke, Susanna | 9781635575637 | Read | 2026-07-14 | 2026-07-21 | 5 | 272 | Fantasy | Strange and gentle; the journal structure pays off. Reread candidate. |
Use ISO dates (2026-07-21) if you can bear them — they sort correctly as text, they're unambiguous across regions, and every import tool on earth understands them.
Formulas worth adding
Put these on a second sheet (name it Stats) or in a few cells above your header row. Column letters below match the template: Status in E, Finished in G, Rating in H, Pages in I.
Books finished this year
=COUNTIFS(E:E,"Read",G:G,">="&DATE(2026,1,1),G:G,"<="&DATE(2026,12,31))
This is the number every reading app puts on its home screen. Swap the year to get any past year — put the year in a cell and reference it if you want a little dashboard.
Pages read this year
=SUMIFS(I:I,E:E,"Read",G:G,">="&DATE(2026,1,1),G:G,"<="&DATE(2026,12,31))
Average rating
=AVERAGEIF(H:H,">0")
The condition skips blanks and zero cells so unrated to-read rows don't drag the average down.
Nice extras
- Currently reading: =COUNTIF(E:E,"Reading")
- To-read pile size: =COUNTIF(E:E,"To Read")
- Books per genre: =COUNTIFS(J:J,"Fantasy",E:E,"Read") — or point a pivot table at Genre and Status and let it do all genres at once.
- Days per book: a helper column =G2-F2 on rows with both dates, then AVERAGE it.
Setting it up in Google Sheets or Excel
- Create the sheet and type the eleven headers into row 1. Bold them.
- Freeze row 1 (View → Freeze → 1 row in Sheets; View → Freeze Panes in Excel) so headers stay visible as the log grows.
- Add dropdowns for Status and Format. In Sheets: select the column, Data → Data validation → Dropdown, enter the fixed values. In Excel: Data → Data Validation → List. This is what keeps "read" vs "Read" vs "finished" from silently breaking your COUNTIFS.
- Format the date columns as dates and the ISBN column as plain text.
- Add the Stats formulas on a second tab.
- Optional polish: conditional formatting to tint rows by Status, and an Excel Table (Ctrl+T) or Sheets alternating colors for readability.
- Sort by Finished descending so the log reads newest-first, like a journal.
Total setup time is about ten minutes. From then on, each book costs you thirty to sixty seconds of typing.
Layout variations worth considering
One long sheet vs a tab per year
Keep everything on one sheet. A tab per year looks tidy but breaks every formula that answers cross-year questions ("have I read this author before?", "how many books since 2020?"), and the Finished column already knows what year each book belongs to. If you like a yearly view, filter or slice — don't split the data.
A separate TBR tab
Some readers prefer to keep the to-read pile out of the main log so it doesn't clutter sorting. That's fine — but then moving a book from "want" to "reading" means cutting and pasting between tabs. The single-sheet Status column handles the same job with one dropdown change, which is why the template keeps it unified.
Decide your DNF policy now
Abandoned books are data: they tell you which authors, genres, or lengths don't work for you. The template's "Abandoned" status exists so you record the DNF instead of deleting the row and pretending the attempt never happened. Add a note about why you bailed — future you, browsing a bookstore, will thank you.
Backups for the backup
A Google Sheet is Google's file until you download it. Once or twice a year, File → Download → CSV and drop the copy wherever your real backups live; in Excel, save an extra copy as CSV alongside the XLSX. CSV is the format every future tool will read, which makes it the right archival shape even if you never leave the sheet.
The honest tradeoffs
Now the part template posts usually skip. A spreadsheet's weaknesses are real, and they compound with library size:
- Every field is manual. Title, author, ISBN, page count — you type it all, for every book. An app fills all of that from a search or a barcode scan in seconds. Sixty seconds per book is fine at 20 books a year and grim when you're backfilling 300.
- No scanning. A shelf of fifty owned-but-unlogged books is an evening of data entry in a sheet. With a barcode scanner it's a few seconds per book.
- No covers. A wall of text rows never gives you the small pleasure of a shelf of covers. Minor, but it affects whether you open the log at all.
- No reading sessions or timers. Pace, streaks, and time-per-book need per-session rows and more formulas than most people will maintain.
- Stats stop where your formulas stop. Everything is buildable; nothing is built.
- Phone entry is clumsy. Mobile spreadsheet editors work, but logging a finish from the couch is noticeably more annoying than tapping a status in an app — and friction is what kills logs.
What the sheet wins, decisively: custody (it's a file you hold, no company required), flexibility (any column you can imagine), and longevity (CSV and XLSX will outlive every app in this space).
When an app is the better call
If you mostly want the record and the stats — not the joy of maintaining a system — a dedicated tracker does the spreadsheet's job with the friction removed. That's the case for an app like Leafed:
- Entry is seconds, not a minute: search the catalog or scan a barcode or a whole shelf, and title, author, ISBN, pages, and cover arrive filled in.
- The stats are already built: books and pages per year, goals, reading sessions with a timer, streaks and insights — no formulas to maintain.
- It's still private and offline: no account required, no ads, no social feed; the library lives on your device, with an optional free sync account if you want it on more than one.
And the exit stays open in both directions, which is the part that matters if you care enough about custody to have read this far. Leafed imports Goodreads-format CSV — so a spreadsheet whose columns follow that shape (or an actual Goodreads export) loads straight in, mapping titles, authors, ISBNs, shelves, ratings, and read dates. And it exports your full library back to CSV or JSON whenever you want, so returning to a spreadsheet is always one export away. You're never locked in; the sheet becomes your backup format instead of your daily tool.
A reasonable hybrid
Plenty of readers run both: an app for daily logging (because it's frictionless) and a periodic CSV export dropped into a spreadsheet or backup folder (because files are forever). That gets you app-grade convenience and spreadsheet-grade custody, for the cost of a two-minute export a couple of times a year. If you're comparing dedicated apps for that daily-logging role, our guide to reading log apps covers the field.
Related reading
- How to track books you've read (without losing your list)
- Reading log apps compared
- How to export your Goodreads library
FAQ
What columns should a book tracking spreadsheet have?
Title, Author, ISBN, Format, Status, Started, Finished, Rating, Pages, Genre, Notes — eleven columns, with Status limited to a fixed dropdown list so your formulas count reliably.
How do I count books read this year in Google Sheets or Excel?
With Status in column E and Finished in column G: =COUNTIFS(E:E,"Read",G:G,">="&DATE(2026,1,1),G:G,"<="&DATE(2026,12,31)). Swap in SUMIFS over the Pages column for yearly pages.
Is a spreadsheet or an app better for tracking books?
The sheet wins custody and flexibility; the app wins entry speed, scanning, covers, sessions, and prebuilt stats. If manual entry won't bother you, keep the sheet. If it will, use an app that exports CSV so you keep the custody anyway.
Can I move my spreadsheet into a book tracking app later?
Yes. Leafed imports Goodreads-format CSV, so a matching sheet (or a real Goodreads export) loads in with shelves, ratings, and dates intact — and exports back to CSV or JSON anytime.