How to Calculate Percentage Change in Google Sheets
Type =(B2-A2)/A2 where A2 is the old value and B2 is the new one, then format the cell as a percentage. A positive result is growth; negative is a decline.
=(B2-A2)/A2
New minus old, divided by old. Format the cell as % (Format > Number > Percent) to show it as, say, 25% instead of 0.25.
How it works
Percentage change is the difference between two numbers relative to the starting value: (new - old) / old. Format the result as a percentage so 0.25 reads as 25%. If the old value can be zero you'll get a #DIV/0! error, so wrap it in IFERROR. To show the change with an explicit + or - sign, use the percentage number format.
Variations
Guard against divide-by-zero
=IFERROR((B2-A2)/A2,"")
Returns blank instead of #DIV/0! when the old value is 0.
Fill the whole column
=ARRAYFORMULA(IF(A2:A="","",(B2:B-A2:A)/A2:A))
One formula for every row; leaves empty rows blank.
Percent of a target
=A2/B2
For "how much of the goal" rather than change, divide actual by target and format as %.
Examples
| Scenario | Formula |
|---|---|
| Month-over-month growth | =(B2-A2)/A2 |
| Safe version for a report | =IFERROR((B2-A2)/A2,"") |
FAQ
Why does my percentage change show 0.25 instead of 25%?
The cell is formatted as a number. Select it and choose Format > Number > Percent to display 25%.
How do I avoid #DIV/0! errors?
Wrap it: =IFERROR((B2-A2)/A2,"") returns blank when the old value is zero.
Which cell is old and which is new?
A2 is the older/starting value and B2 is the newer value: (new - old) / old.
Related formulas
- How to Get the Last Value in a Column in Google Sheets
- How to Multiply Two Columns in Google Sheets
- How to Rank Numbers in Google Sheets
- How to Separate First and Last Name in Google Sheets
- How to Sum by Month in Google Sheets
- How to VLOOKUP from Another Sheet in Google Sheets
- COUNTIF vs COUNTIFS in Google Sheets — When to Use Each
- FILTER vs QUERY in Google Sheets — Which Should You Use