Sign in

Blog · Board and management reporting · Sales teams

Monthly sales analysis report in Excel

Build a recurring monthly sales report from invoice and credit exports. Reconcile net sales, compare regions, products and customers, then turn the measured changes into an action list.

The short answerA monthly sales analysis report in Excel starts with a reconciled sales export, subtracts credits and compares the same sales basis across months. Summarize the result by region, product and customer, calculate dollar and percentage changes, and check every breakdown against the company total. Finish with evidence-based explanations, named actions and owners.

A monthly sales analysis report in Excel should reconcile net sales, compare the same basis across months, and show which regions, products and customers explain the change. Start with transaction rows and credits, then produce a summary that ties back to them. End with actions supported by the measured changes.

Start with the export and a fixed sales definition

For a US distributor, this example reports net billed sales in USD for August and September 2026. Finance approves the posting-date basis and the treatment of credits. Bookings, cash receipts and recognized revenue are separate measures unless finance supplies the reconciliation between them.

Use one row per posted document line with a unique document-and-line key. Keep posting date, region, product, customer, gross amount, credit amount and net amount. Record credits as positive deductions in this workbook; do not subtract them again if the export already supplies signed net amounts.

The compact example below aggregates the underlying document lines to customer, product and posting date. It preserves every amount needed to rebuild the report.

Posting date Region Product Customer Gross sales (USD) Credits (USD) Net sales (USD)
August 5, 2026 East A Cedar 62,000 2,000 60,000
August 12, 2026 East B Cedar 30,000 0 30,000
August 18, 2026 West A Mesa 41,000 1,000 40,000
August 25, 2026 West B Summit 20,000 0 20,000
September 5, 2026 East A Cedar 68,000 2,000 66,000
September 12, 2026 East B Cedar 25,000 1,000 24,000
September 18, 2026 West A Mesa 55,000 1,000 54,000
September 25, 2026 West B Summit 18,000 2,000 16,000

Convert the range to a table named Sales, using concise headers Posting date, Region, Product, Customer, Gross, Credits and Net. Calculate the last column:

=[@Gross]-[@Credits]

Store the report month as a genuine date in B1 on the summary sheet: September 1, 2026. Enter these formulas in B2 and B3, respectively, for the next and previous months' starts:

=EDATE(B1,1)
=EDATE(B1,-1)

Microsoft's EDATE reference describes shifting a start date by a specified number of months. Using the first day of each month makes the report boundaries explicit.

Calculate the company comparison first

Use an inclusive start and exclusive end. That also includes timestamps throughout the final day of the month. Enter these formulas in B5:E5, in order:

=SUMIFS(Sales[Net],Sales[Posting date],">="&B1,Sales[Posting date],"<"&B2)
=SUMIFS(Sales[Net],Sales[Posting date],">="&B3,Sales[Posting date],"<"&B1)
=B5-C5
=IF(C5=0,NA(),D5/C5)

Microsoft documents SUMIFS as summing cells that meet multiple criteria. Here both date conditions must hold for the transaction to enter the month's total.

Period Gross sales (USD) Credits (USD) Net sales (USD)
August 153,000 3,000 150,000
September 166,000 6,000 160,000
Change 13,000 3,000 10,000

September net sales increased by $10,000: 160,000 - 150,000. Growth is 10,000 / 150,000 = 6.7%, rounded to one decimal. The gross-sales increase is partly offset by the increase in credits; that is an arithmetic bridge, not yet a business explanation.

Keep full precision in formulas and round only the displayed percentages. When the prior period is negative, label the dollar movement and explain the base rather than treating the percentage as ordinary growth.

Explain the change through three separate views

Put region names in A9:A10. Enter these formulas in B9:E9, in order, for September, August, dollar change and percentage change:

=SUMIFS(Sales[Net],Sales[Region],$A9,Sales[Posting date],">="&$B$1,Sales[Posting date],"<"&$B$2)
=SUMIFS(Sales[Net],Sales[Region],$A9,Sales[Posting date],">="&$B$3,Sales[Posting date],"<"&$B$1)
=B9-C9
=IF(C9=0,NA(),D9/C9)

Fill down. Repeat the same structure for product and customer, replacing the criteria column. Each view below partitions the same company sales; never add the three views together.

View Segment August net sales (USD) September net sales (USD) Change (USD) Change
Region East 90,000 90,000 0 0.0%
Region West 60,000 70,000 10,000 16.7%
Product A 100,000 120,000 20,000 20.0%
Product B 50,000 40,000 -10,000 -20.0%
Customer Cedar 90,000 90,000 0 0.0%
Customer Mesa 40,000 54,000 14,000 35.0%
Customer Summit 20,000 16,000 -4,000 -20.0%

The region view locates the net increase in West. The customer view shows Mesa's increase offset by Summit's decline. The product view shows growth in A and a decline in B. These are complementary descriptions of the same rows, not independent sources of extra revenue.

For the broader formula catalog, use sales analytics in Excel. Keep this recurring report focused on what changed this month.

Add the checks and the management action

Every region total must sum to company net sales, as must every product and customer total. For the region table, the following difference must equal zero:

=SUM(B9:B10)-B5

Run the same check for August and for each other breakdown. Retain an Unassigned category for missing dimensions so blank region or customer names cannot silently remove sales from the summaries.

Tie monthly gross sales and credits separately to the source export controls. Then tie net billed sales to finance's approved report, listing any timing or revenue-recognition differences. Check duplicate document-line keys before comparing periods.

The action note can now say: investigate Mesa's repeat-order outlook and ask Summit's account owner to explain the decline and credits. It cannot say that price, churn or demand caused the changes without additional evidence. Add units, order history or credit reasons before making that claim.

The monthly sales report template covers the report's wider sections. For a broader narrative example, see the Excel data analysis report sample. Once the definitions and checks are stable, automating the sales report addresses the recurring process.

Where it goes wrong

  • Changing the sales basis. Comparing September invoices with August bookings produces a movement with no consistent meaning.
  • Dropping credits. A sales-only export overstates the net result. Reconcile deductions separately.
  • Partial months. Label a month-to-date report and use a comparable prior-period cutoff instead of a full month.
  • Averaging segment growth. Company growth divides total dollar change by total prior-period sales; it is not the average of the segment percentages.
  • Calling a comparison a cause. Customer and product movements locate the change. They need corroborating evidence to explain why it happened.

Covirage is not affiliated with Microsoft.

Analyze your monthly sales file in Covirage

Bring your invoice-and-credit workbook with dates, regions, products and customer identifiers. Covirage maps the columns; its tools compute and check the comparisons, and the external AI model explains the results with every figure traced to its rows. Create a free Covirage account, which takes about a minute, then set up your business and bring a sample of your own data.

See Covirage for sales teams for the supporting business context.

Questions people ask

What should a monthly sales analysis report include?

Include the reporting period, the agreed sales definition, a reconciled company total, prior-period comparisons and the largest changes by region, product and customer. Add a short explanation of each material movement and an action owner. Keep detailed transaction rows available for checking.

How do I calculate monthly sales growth in Excel?

Subtract prior-month net sales from current-month net sales, then divide the difference by prior-month net sales. Format the result as a percentage. If the prior month is zero, show the dollar change and mark the percentage as unavailable instead of reporting zero growth.

Should a sales report use invoices or CRM opportunities?

Use the export that matches the report's stated purpose. Invoice and credit rows support a billed-sales report; closed opportunities support a bookings report. Keep them separately labeled. Finance should define any adjustments needed to reconcile billed sales to recognized revenue.