Home / Blog / Utilization Rate in Excel
How-to · 2026

How to Calculate Utilization Rate in Excel

Utilization is billable hours divided by capacity hours. The formula is easy; the denominator is where every firm goes wrong, and the person it gets most wrong is the one who logged nothing at all.

By the Quiriz Team · Published August 18, 2026 · 7 min read

The formula is one division. Everything that goes wrong with utilization goes wrong in the denominator, so this covers the formula quickly and the denominator properly.

Utilization = billable hours / capacity hours

Set the export up as a table

Export your timesheets to a single sheet — one row per person, project and day. Harvest, Toggl and Clockify all produce this shape. You want at least:

Select any cell in it and press Ctrl + T to make it a Table, then rename it Time in the Table Design tab. This is not cosmetic: a Table grows when you paste next month in, and every formula below keeps working. Ranges do not, and that is how a working utilization report quietly stops including the newest rows.

The numerator

With a list of people down column A, billable hours per person is:

=SUMIFS(Time[Hours],Time[Billable],"Billable",Time[Person],$A2)

Match the flag to whatever your export actually writes. Harvest exports the words Yes and No in a Billable? column; Clockify writes Billable and Non-Billable. Get this wrong and the formula returns zero rather than an error, which is the worst kind of wrong because it looks like an answer.

Total logged hours, for comparison, drops the flag:

=SUMIFS(Time[Hours],Time[Person],$A2)

The denominator, which is the actual work

Capacity is the hours the person was available. It is not in the timesheet, and there is no formula that recovers it, so you maintain a small table beside the export:

Person        Contracted   Holiday   Leave    Capacity
A. Okafor        160          16        0        144
B. Lindqvist     160          16        8        136
C. Marsh          96          10        0         86

Three ways to fill the Capacity column, in rising order of honesty:

  1. Flat 40 hours a week. One number for everyone. Comparable, simple, and understates utilization for anyone who took leave.
  2. Contracted hours minus public holidays. One number per contract type. Good enough for most firms and worth the ten minutes.
  3. Contracted minus holidays and per-person leave. Correct. Needs your leave records, which are usually in a different system, and is the only version that treats part-timers fairly.

Then utilization per person is a lookup and a division:

=IFERROR(SUMIFS(Time[Hours],Time[Billable],"Billable",Time[Person],$A2)
        /XLOOKUP($A2,Cap[Person],Cap[Capacity]),"")

Format the column as a percentage with one decimal. On older Excel without XLOOKUP, VLOOKUP($A2,Cap,4,FALSE) does the same job.

The trap: the person who logged nothing

This is the one worth understanding, because it survives every rebuild of the spreadsheet.

If your denominator is logged hours, then someone who recorded only the six hours they billed and nothing else shows as 100% utilized. Someone who recorded nothing at all does not appear in the export, so they have no row, and your average is computed over the people who filled in their timesheets.

Both errors push the same direction: the number goes up as timesheet discipline goes down. That is precisely backwards, and it is why a firm can watch utilization climb for two quarters while the pipeline is emptying.

Dividing by capacity fixes both, because the capacity table has one row per person whether or not they logged anything. Build the report from the capacity list and pull hours onto it, not the other way round.

Check: does every person on the payroll appear in your utilization report? If the report is built from the timesheet, some of them will not, and those are the rows that matter most.

A monthly series, not one number

Add a column to the timesheet table:

=EOMONTH([@Date],0)

Now add the month as another SUMIFS condition, with months across the top and people down the side:

=IFERROR(SUMIFS(Time[Hours],Time[Billable],"Billable",Time[Person],$A3,Time[Month],B$2)
        /XLOOKUP($A3,Cap[Person],Cap[Capacity]),"")

Strictly, capacity should also vary by month — August and December are shorter almost everywhere. If you have the leave data, make the capacity table one row per person per month and use SUMIFS on it as well.

A monthly series is what a partner actually wants: one figure says where you are, twelve say which way you are going. If the report needs to reach people every month, the automatic emailing walkthrough covers sending it without remembering to.

Or use a PivotTable

For the numerator, a PivotTable is faster than any formula: rows Person, columns Month, values Sum of Hours, and the billable flag on Filters set to Billable. What a PivotTable will not do is divide by a capacity that lives outside the source data, so the usual arrangement is a pivot for billable hours and one formula column beside it for the division. Details in the PivotTable guide.

Asking for it instead

All of the above is a monthly rebuild. If you would rather ask, Quiriz reads the same timesheet export and answers in plain English — in Excel, =QUIRIZ.ASK("billable hours by person by month", "table") spills the grid straight into the sheet.

The same limit applies to us as to your workbook, and we would rather say it here than have you find out later: capacity is not in the timesheet, so true utilization is not something we can compute from that file alone. Billable ratio by person, by role, by month, we do. Utilization needs the capacity source, and if you have one, it becomes another dataset to upload rather than a formula to maintain.

Stop rebuilding the utilization tab every month

Upload the timesheet export once and ask for billable hours by person, role or month in plain English. Free to start.

Try Quiriz free →

Frequently asked questions

What is the formula for utilization rate?
Utilization rate = billable hours divided by capacity hours, expressed as a percentage. Capacity is the hours a person was available to work in the period — contracted hours minus holiday and leave — not the hours they happened to log. In Excel that is =SUMIFS(Time[Hours],Time[Billable],"Billable",Time[Person],$A2)/capacity.
How do I calculate utilization rate in Excel from a timesheet?
Format the export as a Table, then use SUMIFS on the hours column filtered by person and by the billable flag for the numerator. The denominator has to come from a small capacity table you maintain alongside it, with one row per person and their available hours for the period. Divide, wrap in IFERROR, and format as a percentage.
Should utilization use 40 hours a week as the denominator?
It is the simplest option and it is wrong in every week containing holiday or leave, which understates utilization for the people who took time off — the opposite of what you want. Contracted hours minus public holidays is a better default, and per-person leave is better again if you can reach the data.
Why does my utilization rate look too high?
Almost always because the denominator is logged hours rather than available hours. If someone logs only the eight hours they billed and nothing else, billable over logged is 100% and the four days they were idle never appear in the file. Dividing by capacity fixes it, because capacity does not depend on whether anyone opened the timesheet.
What is the difference between utilization and billable ratio?
Billable ratio is billable hours over total logged hours; utilization is billable hours over available hours. Billable ratio is calculable from a timesheet alone, so it is what most spreadsheets actually compute, and it runs higher than true utilization. If you cannot get capacity data, report the billable ratio and call it the billable ratio.