Cellwise Start free

Excel guide · 4 min read

How to calculate year-over-year growth in Excel

Quick answerYear-over-year (YoY) growth = this period / the same period last year - 1, formatted as a percentage. For October: =C11/B11-1. Sales went from $5,920 to $6,640, so YoY growth is 12.2%.

Sample data

Every result on this page was calculated from this sheet by the same spreadsheet engine the Cellwise app uses.

ABCDEFGHIJ
1Month20252026YoY %DateAmountSettingValue
2Jan03880Oct 3, 2025410Month startOct 1, 2026
3Feb315036200.14920634921Oct 17, 2025655Margin last year0.32
4Mar402045100.12189054726Oct 29, 2025380Margin this year0.35
5Apr44104290-0.027210884354Nov 4, 2025520
6May488054700.12090163934Sep 28, 2026300
7Jun523058600.12045889101Oct 2, 2026540
8Jul501053900.075848303393Oct 15, 2026720
9Aug476051500.081932773109Oct 30, 2026465
10Sep534058100.088014981273
11Oct592066400.12162162162
12Nov6810
13Dec8450

Download this sheet as an Excel practice file (.xlsx)

The YoY formula

Put months down column A and one year per column. Then this year / last year - 1 is the growth for that month. =(C11-B11)/B11 gives exactly the same answer and reads more like the definition: the change divided by where you started.

Format the cell as a percentage (Home > Number > %, or Ctrl+Shift+%). Don't multiply by 100, or Excel shows 1216%.

Compare a month with the same month a year earlier, not with last month. October against September mixes growth with seasons. This shop's December is always its best month, so a drop in January isn't news.

=C11/B11-1

Result: 0.12162162162 shows as 12.2% with Percent format

About 0.1216, which shows as 12.2%: October grew by $720.

A YoY column that handles blanks and a zero base

Copy the plain formula down and two rows break. January 2025 is 0 (the shop opened in February), so January gives #DIV/0!. Growth from zero has no meaningful percentage, so show nothing, or "new". November and December 2026 haven't happened yet, so they'd show -100%, which looks like a disaster.

The formula in column D checks both: if last year is 0 or this year is still blank, it returns an empty string. Use "n/a" instead of "" if you'd rather see a label.

If last year was negative (a loss turning into a smaller loss), the plain formula gets the sign backwards: going from -500 to -200 gives -60%. Divide by ABS(last year) to get +60%, or just report the change in dollars, which nobody misreads.

=IF(OR(B3=0,C3=""),"",C3/B3-1)

Result: 0.14920634921 shows as 14.9% with Percent format

About 0.1492, which shows as 14.9%: February. Row 2 (January) and rows 12-13 (November, December) stay blank.

Year-to-date growth: compare the same months

For YTD, add up this year so far and the same months last year. The trap is comparing 10 months of 2026 with 12 months of 2025: =SUM(C2:C13)/SUM(B2:B13)-1 says -12.7%.

=SUMIFS(B2:B13,C2:C13,"<>") only adds last year's months that have a value this year, so both sides cover January to October. That gives 18.5%. But it's still flattered: January 2026 ($3,880) is compared with a January 2025 of $0.

For a like-for-like YTD, use only months that have both years. The formula below adds this year's sales where last year was above 0, and last year's where this year isn't blank: February to October, $46,740 vs $42,720, or 9.4%. That's the honest number.

=SUMIFS(C2:C13,B2:B13,">0")/SUMIFS(B2:B13,B2:B13,">0",C2:C13,"<>")-1

Result: 0.094101123596 shows as 9.4% with Percent format

About 0.0941, which shows as 9.4%: February to October in both years.

Same month last year from a dated sales list

If your data is a list of dated sales instead of a monthly table, let SUMIFS build both months from one start date. EDATE(J2,-12) is the same day 12 months earlier (Oct 1, 2025), and EDATE(J2,-11) is the start of the month after it. Using "<" the next month start includes every time of day on the last day.

October 2026 adds up to $1,725 and October 2025 to $1,445, so YoY is 19.4%. Change J2 to any month start and both halves move together. For fiscal years that don't start in January, the same pattern works with a fiscal year start in J2 and EDATE(J2,12) as the end.

=SUMIFS(G2:G9,F2:F9,">="&J2,F2:F9,"<"&EDATE(J2,1))/SUMIFS(G2:G9,F2:F9,">="&EDATE(J2,-12),F2:F9,"<"&EDATE(J2,-11))-1

Result: 0.1937716263 shows as 19.4% with Percent format

About 0.1938, which shows as 19.4%: $1,725 vs $1,445.

Rates: percentage points vs percent

When the thing you're comparing is already a percentage (margin, conversion rate, churn), say which change you mean. A margin going from 32% to 35% is up 3 percentage points, =J4-J3. It's also up 9.4% relative to where it was, =J4/J3-1.

Both are correct, and they're easy to confuse in a report. "Margin grew 3 points" is the clear one. If you write "margin grew 9.4%", someone will read it as 41.4%.

=J4-J3

Result: 0.03 shows as 3.0% with Percent format

0.03, which shows as 3.0%: three percentage points.

Common mistakes

Averaging the monthly YoY percentages

The average of the monthly % here is 9.47%, close to but not the same as the 9.4% from the totals. Big and small months count the same in an average of %. Use totals for the period.

Comparing a partial year with a full year

For YTD, add only the months both years have, with SUMIFS on a not-blank or above-zero test.

Dividing by zero or a negative base

Wrap the formula in IF(B2=0,"",...) and use ABS(B2) as the divisor when last year can be negative.

Multiplying by 100 and adding a % format

Excel's % format already multiplies by 100. Use one or the other.

FAQ

What is the formula for year over year growth in Excel?

=this_year/last_year-1, or =(this_year-last_year)/last_year, formatted as a percentage. Both give the same result.

How do I calculate YoY growth in a pivot table?

Put the date in Columns grouped by Years, sales in Values, then Show Values As > % Difference From, with Base field Years and Base item (previous). Group the dates by Months and Years to get it per month.

How is YoY different from CAGR?

YoY compares one period with the same period a year earlier. CAGR is the steady yearly rate that gets you from a start value to an end value over several years, which smooths out the ups and downs.

Why does my YoY show -100%?

This year's cell is blank or 0, usually because the month hasn't happened yet. Add a test like IF(C2="","",C2/B2-1) so future months stay empty.

Functions used

Related guides

Updated