Stop Using FORECAST.LINEAR — Try This Instead for Excel Forecasting

The first thing most people do when they need a forecast in Excel is type =FORECAST.LINEAR() into a cell. That’s usually the wrong move — especially if your data has seasonality, gaps, or uneven intervals. It ignores context, assumes perfect linearity, and fails silently on messy real-world data.

The Problem

You’re handed a quarterly sales sheet from Finance. No dates are formatted as actual dates — just text like "Q1 2023". There are blanks in column C (Revenue), and one row says "TBD" instead of a number. You try FORECAST.LINEAR on B2:B13 and C2:C13 — and get #VALUE! in three cells. You don’t know why. You paste over it with an average. Then Sales misses their target by 17%.

Period Revenue Forecast (FORECAST.LINEAR)
Q1 2023 $24,800
Q2 2023 $29,100
Q3 2023 TBD
Q4 2023 $36,400
Q1 2024 $28,200
Q2 2024 $31,500
Q3 2024 $39,700 #VALUE!
Q4 2024 $42,100 #VALUE!
Q1 2025 — #N/A

The Solution

Do this instead. It takes 90 seconds and works even with missing values or text labels.

  1. Clean your time labels first. In D2, enter =DATEVALUE("1 "&LEFT(A2,2)&" "&RIGHT(A2,4)). Drag down to D10. This converts "Q1 2023" → 1-Apr-2023. Format column D as Short Date.
  2. Replace non-numeric entries. Select C2:C10 → Ctrl+H → Find "TBD", Replace with blank → Find "—", Replace with blank. Then press Alt+H+F+D → choose "Numbers only" to remove any hidden spaces.
  3. Use TREND(), not FORECAST.LINEAR(). In E2, type =TREND($C$2:$C$9,$D$2:$D$9,$D$10). That’s your Q1 2025 forecast. Copy that formula down to E10 for all future periods.
  4. Add error handling. Wrap it: =IFERROR(TREND($C$2:$C$9,$D$2:$D$9,$D$10),AVERAGE($C$2:$C$9)). Now broken inputs won’t crash your sheet.
Period Revenue Forecast (TREND)
Q1 2023 $24,800
Q2 2023 $29,100
Q3 2023 $32,500
Q4 2023 $36,400
Q1 2024 $28,200
Q2 2024 $31,500
Q3 2024 $39,700
Q4 2024 $42,100
Q1 2025 — $44,820
Q2 2025 — $47,260

Going Further

TREND() assumes linear behavior. But revenue rarely moves in straight lines. Add curvature with LINEST().

In F2, enter =LINEST(C2:C9,D2:D9^{1,2}). Press Ctrl+Shift+Enter (not Enter). You’ll get two numbers: coefficient for x² and x. Then forecast with =F2*D10^2 + G2*D10 + INTERCEPT(C2:C9,D2:D9).

For seasonal spikes — say, holiday sales in Q4 — use =FORECAST.ETS(). But only if you have at least 2 full cycles (8+ quarters). Feed it D2:D9 and C2:C9, then give it the next date in D10. It auto-detects seasonality. Don’t force it on sparse data — it hallucinates patterns.

One counterintuitive tip: Never forecast beyond 4 periods ahead. After that, confidence drops below 60%. If leadership asks for a 2-year forecast, build it in two 6-month chunks — and show the widening error bands.

When NOT to Use This

  • If your time series has fewer than 6 data points — TREND() gives false precision. Use moving averages instead.
  • If you’ve got structural breaks — e.g., a new product launch in Q3 2024 — exclude earlier data. TREND() treats all points equally. Manually split the range: =TREND(C7:C9,D7:D9,D10).
  • If your data includes outliers (e.g., $120,000 in Q4 2023 due to one huge deal), don’t just delete it. Use TRIMMEAN(C2:C9,0.2) to exclude top/bottom 10% before forecasting.
  • Don’t use any Excel forecast function if your last 3 actuals are trending downward but leadership insists on flat growth. Build the model honestly — then layer assumptions separately in another column.

Keyboard Shortcuts

Action Shortcut Notes
Open Find & Replace Ctrl+H Critical for cleaning "TBD", "—", extra spaces
Format as Short Date Ctrl+Shift+U Converts 2023-04-01 → 4/1/2023
Apply Number Filter (to hide text) Alt+D+F+F Select column → filter → "Number Filters" → "Is Not Blank"
Array-enter LINEST() Ctrl+Shift+Enter Older Excel versions require this — newer ones accept Enter
Rachel Torres

Rachel Torres

Rachel coaches teams on email management and digital communication best practices. She has trained over 5