How to make a monthly sales report in Excel (step by step)

A good monthly sales report answers three questions — how much did we sell, how does that compare, and what drove the change. This guide builds one from a raw order export, using formulas and a PivotTable you can reuse every month.

What you’ll build

A one-page report with a summary block (revenue, orders and average order value against last month), a breakdown by region and product, a trend chart, and a short commentary. Once it’s set up, next month’s report is a paste, a refresh and a few sentences.

Step 1: Start with clean, flat data

You need one row per order (or order line) with at least a date, an amount and the categories you want to break down by, such as product, region or channel.

RowABCDE
1Order IDOrder DateRegionProductRevenue
2SO-100012026-09-01WestErgo Office Chair698.00
3SO-100022026-09-01SouthHeadset119.00
4SO-100032026-09-02EastLabel Printer636.00
A flat order table: one header row, one order per row, no subtotals.

Before reporting, fix the things that silently distort totals: duplicate orders, amounts stored as text, dates in mixed formats and region names spelled several ways. The data cleaning checklist covers each one. Then click inside the data, press Ctrl+T and name the table Sales (Table Design → Table Name).

Step 2: Add a month column

Grouping by month is easiest with a column that holds the first day of each order’s month. Add a column called Month to the table:

=EOMONTH([@[Order Date]], -1) + 1

EOMONTH returns the last day of the previous month; adding 1 gives the first day of the order’s month. Format the column as mmm yyyy. Because it’s a real date, it sorts correctly, unlike text such as “September”.

Step 3: Build the summary block

On a new sheet called Report, type the first day of the reporting month in B1, for example 2026-09-01. Then build the headline numbers with SUMIFS and COUNTIFS:

Cell Measure Formula
B3 Revenue this month =SUMIFS(Sales[Revenue], Sales[Order Date], ">="&B1, Sales[Order Date], "<"&EDATE(B1, 1))
C3 Revenue last month =SUMIFS(Sales[Revenue], Sales[Order Date], ">="&EDATE(B1, -1), Sales[Order Date], "<"&B1)
D3 Change =IF(C3=0, "", B3/C3 - 1)
B4 Orders this month =COUNTIFS(Sales[Order Date], ">="&B1, Sales[Order Date], "<"&EDATE(B1, 1))
B5 Average order value =IF(B4=0, "", B3/B4)

Format D3 as a percentage. Change B1 next month and the whole block updates. For a year-on-year comparison, use EDATE(B1, -12) and EDATE(B1, -11) as the date bounds.

Step 4: Break it down with a PivotTable

  1. Click inside the Sales table and choose Insert → PivotTable → New Worksheet.
  2. Drag Region to Rows, Month to Columns and Revenue to Values.
  3. Right-click a revenue value and choose Show Values As → % of Row Total if you want each region’s mix, or keep the sums.
  4. Add a Slicer for Product or Channel (PivotTable Analyze → Insert Slicer) so readers can filter.

For a fixed “top five products this month” list in Excel 365, a single formula does it:

=TAKE(SORTBY(UNIQUE(Sales[Product]), SUMIFS(Sales[Revenue], Sales[Product], UNIQUE(Sales[Product]), Sales[Month], B1), -1), 5)

Step 5: Chart the trend

Select the PivotTable with months as columns, or a small table of month and revenue, and choose Insert → Line Chart (or a column chart for fewer than 12 months). Keep it readable:

  • One measure per chart. Don’t put revenue and order count on two axes.
  • Label the latest value and remove the legend if there’s only one series.
  • Use a bar chart for comparing regions or products, sorted largest first.

Step 6: Write the commentary

Numbers without explanation leave readers guessing. Two or three sentences is enough:

  1. What happened: “Revenue was $107,848 in September, up 2% on August, from 234 orders.”
  2. Why: “Growth came from the East (up 33%) and South (up 18%), which more than offset a 23% drop in the West.”
  3. What next: “Find out what changed in the West and contact customers there who haven’t reordered.”

Check every figure you quote against the summary block. If something looks odd — a huge jump, a month with no orders — look at the underlying rows before publishing; it’s often a duplicate or a typo.

Step 7: Make next month a five-minute job

  • Paste next month’s rows at the bottom of the Sales table; it expands automatically.
  • Change the month in B1.
  • Choose Data → Refresh All to update the PivotTables.
  • If the data arrives as a file, import it with Power Query (Data → Get Data → From File) so the refresh brings it in too.

The fast way

In MindySheets, open the export and choose Report → Monthly trends or Executive summary. Mindy runs the same calculations — totals, month-on-month change, breakdowns, top products — over every row, adds charts, writes the commentary and lets you save it as PDF or Word. Every number links back to the calculation that produced it, so you can check it before it goes to your manager.

Frequently asked questions

What should a monthly sales report include?

Total revenue, number of orders and average order value; a comparison with last month and the same month last year; a breakdown by product, region or channel; the top customers or products; a trend chart; and two or three sentences explaining what changed and what to do next.

Should I use formulas or a PivotTable?

Both. A PivotTable is fastest for exploring breakdowns. SUMIFS formulas are better for a fixed summary block that always shows this month against last month, because the layout doesn't change when the data does.

How do I compare this month with last month in Excel?

Put the first day of the month in a cell, total it with SUMIFS between that date and EDATE(date, 1), do the same for EDATE(date, -1), and divide the difference by last month's total.

How do I make the report update automatically next month?

Keep the data in an Excel table so it expands when you paste new rows, drive the summary from a single month cell, and refresh PivotTables with Data → Refresh All. Power Query can import the new export for you.

Skip the manual steps.

Upload the spreadsheet and Mindy does this for you: finds the problems, fixes what you approve and explains the results.