# How to calculate percent complete in Excel

Count the finished tasks and divide by all tasks: `=COUNTIF(B2:B11,"Done")/COUNTA(B2:B11)`, formatted as a percentage.

**Excel:** `=COUNTIF(B2:B11,"Done")/COUNTA(B2:B11)` (Every current version)

**Google Sheets:** the same formula works.

## Example

Sample data (row 1 is the header):

| A | B | C | D | E |
| --- | --- | --- | --- | --- |
| Task | Status | Hours |  | Complete |
| Requirements | Done | 8 |  |  |
| Wireframes | Done | 4 |  |  |
| API design | In progress | 12 |  |  |
| Database | Done | 6 |  |  |
| Front end | Not started | 10 |  |  |
| Auth | Done | 3 |  |  |
| Testing plan | In progress | 5 |  |  |
| Style guide | Done | 2 |  |  |
| Integration | Not started | 16 |  |  |
| Kickoff deck | Done | 4 |  |  |

Formula in F1: `=COUNTIF(B2:B11,"Done")/COUNTA(B2:B11)`

Result: 60%

## How it works

COUNTIF counts the six tasks marked Done, and COUNTA counts every task that has a status, ten. Six out of ten is 0.6, which the Percent format shows as 60%.

Every task counts the same here, whether it takes two hours or sixteen.

## Other ways

- `=SUMIF(B2:B11,"Done",C2:C11)/SUM(C2:C11)`: Weights each task by its hours, which is a fairer measure when tasks differ in size. (Returns 38.6%: the finished tasks are the small ones.)

## Common mistakes

- COUNTA counts every non-empty status, including "Cancelled". Exclude those from the total: `=COUNTIF(B2:B11,"Done")/(COUNTA(B2:B11)-COUNTIF(B2:B11,"Cancelled"))`.
- Rows added below B11 aren't included. Format the list as a table, or use a range that runs further down.

## Questions

**How do I show progress as a bar?**

Use conditional formatting, Data Bars, on the percentage cell, or `=REPT("█",ROUND(F1*10,0))` for a text bar.

**How do I calculate percent complete with checkboxes?**

Count the TRUEs: `=COUNTIF(B2:B11,TRUE)/ROWS(B2:B11)`.

Every formula and result on this page was checked by running it in the Spreadsheet Practice formula engine on 2026-10-30.

Source: https://spreadsheetpractice.com/formulas/percent-complete
