To build a running total that resets each month in Excel, use SUMIFS with an expanding range and the first and last day of the month: =SUMIFS(B$2:B2, A$2:A2, ">="&EOMONTH(A2,-1)+1, A$2:A2, "<"&EOMONTH(A2,0)+1). The B$2:B2 reference grows as it fills down, and the two EOMONTH conditions limit the sum to rows in the same calendar month, so the total restarts automatically on the first of each month with no manual break.
You need a running total that accumulates throughout the month (showing how revenue, expenses, or units build day by day), then resets to zero on the first of the next month and starts over. This is essential for tracking monthly targets, budgets, and quotas. Here’s how to build one that handles the reset automatically.
Sample daily revenue data
| A | B | |
|---|---|---|
| 1 | Date | Revenue |
| 2 | 1/28/2026 | $3,200 |
| 3 | 1/29/2026 | $1,800 |
| 4 | 1/30/2026 | $2,400 |
| 5 | 1/31/2026 | $4,100 |
| 6 | 2/1/2026 | $2,900 |
| 7 | 2/2/2026 | $1,500 |
| 8 | 2/3/2026 | $3,700 |
The running total should accumulate within January, then reset on February 1st and start accumulating again.
The SUMIFS running total formula
=SUMIFS(B$2:B2, A$2:A2, ">="&EOMONTH(A2,-1)+1, A$2:A2, "<"&EOMONTH(A2,0)+1)
Sums the revenue from the first data row down to the current row, counting only rows dated from the first to the last day of the current row’s month. On the first of a new month the earlier rows stop matching, so the total starts over.
How the total resets on the first of the month
| A | B | C | |
|---|---|---|---|
| 1 | Date | Revenue | Running Total |
| 2 | 1/28/2026 | $3,200 | $3,200 |
| 3 | 1/29/2026 | $1,800 | $5,000 |
| 4 | 1/30/2026 | $2,400 | $7,400 |
| 5 | 1/31/2026 | $4,100 | $11,500 |
| 6 | 2/1/2026 | $2,900 | $2,900 |
| 7 | 2/2/2026 | $1,500 | $4,400 |
| 8 | 2/3/2026 | $3,700 | $8,100 |
January accumulates to $11,500. February resets and starts fresh at $2,900.
Simpler Alternative: IF with MONTH Check
For a more readable approach that works in all Excel versions:
=IF(MONTH(A3)=MONTH(A2), C2+B3, B3)
If the current row’s month matches the previous row’s month, add to the running total. Otherwise, start fresh with the current day’s value. Put =B2 in C2 (the first data row), then put this formula in C3 and fill down.
When to use which
The SUMIFS approach is more robust: it works even if data is out of order or has gaps. The IF/MONTH approach is simpler but requires data to be sorted by date with no blank rows. It also compares the month only, so rows a year apart (January straight to the next January) would not start over.
Adding a Target Line
To track progress against a monthly target, add a column showing the daily target pace:
Daily target pace (linear)
=($E$1/DAY(EOMONTH(A2,0)))*DAY(A2)
Divides the monthly target (in E1) by the number of days in the month, then multiplies by the current day number. Shows where you should be if revenue came in evenly.
Running Total by Category
Need separate running totals for each product line or department? Add the category to the SUMIFS criteria:
=SUMIFS(C$2:C2, A$2:A2, ">="&EOMONTH(A2,-1)+1, A$2:A2, "<"&EOMONTH(A2,0)+1, B$2:B2, B2)
Each category gets its own running total that resets monthly. “Sales” accumulates separately from “Returns.”
Common questions
Does my data have to be sorted by date?
The SUMIFS version does not care about order, because it checks each row’s date against the current row’s month. The simpler MONTH-check version compares each row to the one above, so that one does require sorted data.
Does it work across multiple years?
Yes. EOMONTH works on the full date, so the first and last day it compares against include the year, and January 2026 and January 2027 are treated as different months rather than being merged.
What happens on blank rows?
They add nothing to the total. In the SUMIFS version the blank row itself shows 0, and the rows after it carry on with the month’s total. The MONTH-check version compares each row with the one above, so a blank row can restart its count; keep blank rows out of that version.
When Formulas Aren’t Enough
Running total formulas work for basic tracking, but real business dashboards often need more:
- Multiple reset periods: weekly, monthly, quarterly, and yearly running totals simultaneously
- Visual dashboard: running total charts with target lines, variance highlighting, and trend indicators
- Multi-department rollup: individual running totals per team that roll up to a company view
- Automatic data refresh: pulling new daily data from an export and updating the running totals without manual paste
- Historical comparison: this month’s running total overlaid with last month’s and last year’s same period
A custom VBA dashboard builds all of this (running totals, charts, multi-period comparisons, and formatted output), refreshed with one click.
“David’s work is outstanding. He works in very timely fashion, asks pertinent questions, and is extremely flexible and responsive. David always has a solution.”
Access Reports Client · Upwork
Need a Dashboard That Tracks Progress Automatically?
Tell us about your tracking needs and we’ll build a visual dashboard for it.
Small fixes start at $69.
Every project gets a fixed-price quote before any work starts: the price you approve is the price you pay.