HomeGoogle DocsSpreadsheetTrack Current and Longest Streaks from Dates in Google Sheets & Excel

Track Current and Longest Streaks from Dates in Google Sheets & Excel

Learn how to calculate current and longest streaks from dates in Google Sheets and Excel—even with gaps—using a single dynamic formula.

How do you calculate current and longest streaks from dates when your data is just a list with gaps?

Most streak formulas online solve a different problem.

They’re built for win/loss or TRUE/FALSE data—where every row clearly continues or breaks the sequence.

But that’s not what you’re dealing with here.

You’re working with dates.

And dates don’t tell you when a streak is broken—they only show when something happened.

Miss a couple of days, and your streak is already gone—but your data doesn’t say it explicitly—all you see is a list of dates with invisible gaps in between.

That’s exactly why most formulas fail.

Free Streak Tracker Template (Skip the Setup)

If you don’t want to build this from scratch, I’ve created a ready-to-use template:

Copy the Streak Tracker Template

  • Tracks current and longest streaks from dates automatically
  • Handles duplicate dates
  • Works in both Google Sheets and Excel (Microsoft 365)

This file will open in Google Sheets. Once opened, go to File → Download to get an Excel copy.

In Excel, the formula may not work immediately. If that happens, copy the formula and paste it into a new cell. Then delete any existing error results by selecting those cells and pressing the Delete key.

Why Streak Calculations Break with Dates

Calculating current and longest streaks from dates is really about detecting continuity in time.

That means:

  • Each date must be exactly one day after the previous one
  • Any gap (more than one day) breaks the streak

Unlike win/loss data, missing days are not explicitly recorded.

So the real challenge is:

How do you detect breaks in a sequence of dates—and calculate both current and longest streaks—without helper columns?

Example: Streaks from Dates with Missing Days

Consider this dataset:

2026-04-01
2026-04-02
2026-04-03
2026-04-04
2026-04-05
2026-04-06
2026-04-07
2026-04-08
2026-04-09
2026-04-12
2026-04-13
2026-04-14

At first glance, it looks like a continuous sequence.

But there’s a hidden break:

April 10 & 11 are missing

So the correct result is:

  • Longest streak → 9 days (Apr 1–9)
  • Current streak → 3 days (Apr 12–14)
Current and longest streaks calculated from dates with gaps in Google Sheets

This is where most formulas return incorrect results.

Formula to Calculate Current and Longest Streaks from Dates

Use this formula in Google Sheets or Excel (Microsoft 365):

=LET(
  udt, TOCOL(A2:A13, 1),
  streak, SCAN(0, SEQUENCE(COUNT(udt)), LAMBDA(acc, val,
    LET(
      prv, IFERROR(CHOOSEROWS(udt, val-1),0),
      cur, CHOOSEROWS(udt, val),
      IF(cur-prv>1, 0, acc+1)
    )
  )),
  cs, (CHOOSEROWS(streak, -1)+1),
  ls, MAX(streak)+1,
  IFERROR(VSTACK(cs, ls), 0)
)

This formula works without helper columns and updates automatically as you add new dates.

Output: Current and Longest Streaks from Dates

This formula returns:

  • First value → Current streak from dates
  • Second value → Longest streak from dates

No helper columns. No manual steps.

Customize the Streak Formula for Your Data (Sheets & Excel)

The formula returns both the current and longest streaks in one go. You can easily customize the input range and output format.

Use a Larger Range

Replace:

A2:A13

With:

A2:A1000

Or in Google Sheets:

A2:A

Show Results Horizontally

Replace:

VSTACK(cs, ls)

With:

HSTACK(cs, ls)

Return Only One Result

Replace:

VSTACK(cs, ls)

With:

  • Only current streak → cs
  • Only longest streak → ls

How This Streak Formula Works

At a high level, the formula tracks continuity between dates:

  • TOCOL(...) → removes blanks and normalizes the data
  • SEQUENCE(...) → generates row positions
  • SCAN(...) → evaluates each date step-by-step

Inside SCAN, the key logic is:

IF(cur - prv > 1, 0, acc + 1)

  • If the gap between the current and previous date is greater than 1, the streak is broken → reset to 0
  • Otherwise, the dates are consecutive → increment the accumulator

Finally:

  • MAX(streak) + 1 → returns the longest streak
  • last value of streak + 1 → returns the current streak

(+1 is added because the count starts from 0)

This running comparison is what makes the formula both accurate and dynamic.

Real-World Use Cases

This method works anywhere you track activity using dates:

  • Fitness and workout tracking
  • Reading habits
  • Meditation streaks
  • Writing consistency
  • Coding practice

If your dataset contains dates, you can calculate streaks reliably.

For a practical example, check out my “Free Google Sheets Fitness Tracker (Template + Dashboard)“. In that template, the streak is also reset based on an additional condition (e.g., rest days), and UNIQUE is used to remove duplicate dates caused by multiple entries in a single day.

Pro Tips for Accurate Streak Tracking

Here are a few tips to ensure your streak calculations are accurate:

Remove duplicate dates
If your data includes multiple entries per day, use:

TOCOL(UNIQUE(A2:A1000), 1)

Combine multiple columns
You can use:

A2:B1000

TOCOL will merge them into a single list.

Ensure proper date format

  • Use real date values (not text)
  • Avoid inconsistent formats
  • Clean your dataset before applying the formula

FAQ: Streaks from Dates

How do you calculate streaks from dates in Google Sheets?

You compare each date with the previous one and count consecutive days without gaps. The formula above automates this using dynamic array functions.

Can Excel calculate current and longest streaks?

Yes. Excel (Microsoft 365) supports functions like LET, SCAN, and TOCOL, making it possible without helper columns.

Why do streak formulas fail with date-based data?

Most formulas assume continuous data (like TRUE/FALSE). Date-based data contains hidden gaps, which break streak logic unless handled properly.

How do you handle missing dates in streak calculations?

By detecting gaps between consecutive dates. If the difference is greater than 1, the streak resets.

Final Thoughts

Tracking current and longest streaks from dates isn’t just a formula problem.

It’s a pattern recognition problem.

Once you understand that streaks depend on continuity and gaps, you can apply this logic to almost any dataset.

Instead of relying on rigid formulas, think in terms of:

  • sequences
  • gaps
  • continuity

That’s what makes your solution flexible—and powerful.

Prashanth K V
Prashanth K V
Your Trusted Google Sheets and Excel Expert Prashanth K V is a Diamond Product Expert in Google Sheets, officially recognized by Google for his contributions to the Docs Editors Help Community and featured in the Google Product Experts Directory. Explore his blog to learn advanced formulas, automation tips, and problem-solving techniques to elevate your spreadsheet skills.

Top Discussions

More like this

Carpool Cost Splitter & Rotation Tracker in Google Sheets (Free Template)

Managing a carpool can be difficult, especially when you need to track whose vehicle...

How to Build a Road Trip Fuel Cost Splitter Formula in Google Sheets

Need a fair formula to split fuel costs among travelers on a long road...

Road Trip Fuel Cost Splitter in Google Sheets (Free Template)

When you go on a long road trip with friends, splitting fuel expenses fairly...

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.