Fleet — vehicle maintenance log

Pro workbook: Log, Vehicles, Schedule, Setup, Formulas. Sample data, real formulas.

Maintenance log
One row per service, repair or cost. Days and km to the next due are calculated against today and the vehicle's latest odometer.
As of14 SepCost this year5,235.00
Cost, all time5,235.00
Entries17
Overdue1
DateVehicleOdometerTypeDescriptionCostNext dueNext kmDays to dueKm to dueFlagDue soon1
12 JanVan 161,200Oil and filter140.0012 Jul71,200-64-2,200OverdueBiggest type this yearService
20 JanVan 288,400ServiceAnnual service420.0020 Jan108,4001289,800
3 FebCar24,100TyresTwo front260.00
14 FebVan 162,900InsuranceAnnual1,180.0014 Feb153
5 MarVan 290,100BrakesFront pads and discs380.00130,10031,500
22 MarCar25,300Oil and filter95.0022 Mar40,30018910,800
8 AprVan 165,400RepairWing mirror85.00
30 AprVan 292,300Oil and filter150.005 Oct102,300213,700Due soon
15 MayVan 167,100TyresFour520.00107,10033,700
2 JunCar27,400ServiceAnnual service310.002 Jun42,40026112,900
18 JunVan 294,600RepairSliding door lock130.00
9 JulVan 169,800Oil and filter140.009 Jan79,8001176,400
28 JulVan 170,900ServiceAnnual service460.0028 Jul90,90031717,500
11 AugVan 297,200TyresTwo rear240.00
25 AugCar29,500Battery145.0025 Aug1441
3 SepVan 298,600RepairAlternator410.00
10 SepVan 173,400BrakesRear pads170.00113,40040,000
Vehicles
Each vehicle: latest odometer and spend from the Log, and the three dated reminders — tax, insurance, inspection.
VehicleMake / modelPlateYearLatest kmCost this yearCost / kmTax dueInsurance dueInspection dueNext reminderIn daysFlag
Van 1Ford Transit CustomAB12 CDE202173,4002,695.000.22130 Nov14 Feb3 OctInspection19Due soon
Van 2VW TransporterFG34 HIJ201998,6001,730.000.17031 Mar28 Sep20 JanInsurance14Due soon
CarToyota CorollaKL56 MNO202229,500810.000.15031 May1 Dec11 AprInsurance78
All5,235.00
Cost / km = this year's cost ÷ this year's distance (latest odometer minus the first odometer logged this year). It needs at least two log entries this year.
Next reminder is the earliest of the three dates; move a date forward when you've renewed.
Service schedule
What each vehicle needs and how often. Last done comes from the Log; next due is by km and by date, whichever comes first.
Overdue1
Due soon1
VehicleItemEvery kmEvery monthsLast doneAt kmNext by dateNext by kmLatest kmDays leftKm leftStatusNever done1
Van 1Oil and filter10,00069 Jul69,8009 Jan79,80073,4001176,400OK
Van 1Service20,0001228 Jul70,90028 Jul90,90073,40031717,500OK
Van 1Brakes40,0002410 Sep73,40010 Sep113,40073,40072740,000OK
Van 2Oil and filter5,000630 Apr92,30030 Oct97,30098,60046-1,300Overdue
Van 2Service20,0001220 Jan88,40020 Jan108,40098,6001289,800OK
Van 2Brakes40,000245 Mar90,1005 Mar130,10098,60053831,500OK
CarOil and filter15,000622 Mar25,30022 Sep40,30029,500810,800Due soon
CarService15,000122 Jun27,4002 Jun42,40029,50026112,900OK
CarTyres40,000363 Feb24,1003 Feb64,10029,50087334,600OK
CarBrakes30,0002429,500Never done
'Item' must match the Type used on the Log — that's how 'last done' finds it. Leave 'every km' or 'every months' blank for items that only go by one of them.
Next by date = last done + months; next by km = km at last done + interval. Overdue or Due soon on either counts.
Setup
The as-of date and the types. Vehicles live on their own sheet.
As of2026-09-14Type =TODAY() to keep it live
Types
Oil and filter
Service
Brakes
Tyres
Battery
Repair
Inspection
Insurance
Tax
Other
Types are shared by the Log and the Schedule; keep the service items you schedule in this list.
How the formulas work
Every formula in this workbook, in plain words. Nothing is hidden and nothing needs a macro. Formulas are shown without the leading = sign.
WhereFormulaWhat it does
Log · Km to dueH8-SUMPRODUCT(MAX(($B$8:$B$207=B8)*$C$8:$C$207))Next km minus the vehicle's biggest odometer in the log. SUMPRODUCT(MAX(…)) makes MAX see the whole column without array entry — MAXIFS would be simpler but isn't in Excel 2016.
Log · FlagIF(OR(AND(G8<>"",I8<0),AND(H8<>"",J8<0)),"Overdue",IF(OR(AND(G8<>"",I8<=30),AND(H8<>"",J8<=1000)),"Due soon",""))Either the date or the km can trigger it; a blank one is ignored.
Vehicles · Latest kmSUMPRODUCT(MAX((Log!$B$8:$B$207=A6)*Log!$C$8:$C$207))The vehicle's highest odometer reading.
Vehicles · Cost / kmcost this year ÷ (max odometer this year − min odometer this year)The MIN side gives every other row a huge stand-in so it doesn't win; IFERROR covers a vehicle with one entry.
Vehicles · Next reminderIF(H6=MIN(H6:J6),"Tax",IF(I6=MIN(H6:J6),"Insurance","Inspection"))Which of the three dates is soonest.
Schedule · Last doneSUMPRODUCT(MAX((Log!$B$8:$B$207=A6)*(Log!$D$8:$D$207=B6)*Log!$A$8:$A$207))Latest date in the log for this vehicle and this item; 0 (shown blank) if never.
Schedule · Next by dateEDATE(E6,D6)Last done plus the interval in months.
Schedule · StatusIF(E6=0,"Never done",IF(OR(AND(G6<>0,J6<0),AND(H6<>0,K6<0)),"Overdue",IF(OR(AND(G6<>0,J6<=30),AND(H6<>0,K6<=1000)),"Due soon","OK")))Never done first; then overdue on either measure; then due soon; else OK.