AI for Excel: Automate monthly reporting with numbers you can verify

Illustrated infographic summarizing: AI for Excel: Automate monthly reporting with numbers you can verify

By Greg Nowak. Last updated 2026-10-30.

The real test of an automated monthly report is what happens when next month's files arrive. Can the person responsible rerun the report, spot errors and explain where the numbers come from? AI for Excel can help here, provided imports, calculations and checks follow predefined rules, and AI is given clearly defined tasks involving categorisation and report commentary.

Start with one report. Agree on the data sources, calculate the key metrics with Python, and require a reconciliation before the report is approved. This allows the business owner and the person responsible for operations to trace the numbers back to the files and rules behind them.

Can the analysis be refreshed next month?

Microsoft describes how Copilot in Excel uses Python-based analysis to answer questions about structured data in a workbook. However, tables and visualisations produced by the direct analysis answers feature may be static and therefore cannot be refreshed. Microsoft also describes an advanced analysis feature that allows the underlying code to be inserted as a Python cell that can be refreshed. The difference is explained in Microsoft's guide to direct analysis answers.

That distinction matters at month-end. Agree on how next month's data will be imported, which calculations will run again and where any errors will appear. The person responsible for releasing the report needs to know exactly what must be in place.

Agree on the report's definitions first

Start with an existing monthly report that has a clear purpose, such as revenue by customer group compared with budget. What decision should it support? The answer determines which key metrics are needed. Keep the definitions consistent when comparing the budget for 2027 with actual results.

Document the small but crucial calculation rules too. Which date assigns an entry to a particular month? Do the amounts include or exclude VAT? How are credit notes handled, and which budget version applies?

The person responsible for the report should approve the rules. Save the reporting period and budget version alongside the results so the report can later be rerun using the same assumptions.

Agree on what the input files must contain

Copilot can import data from another Excel workbook. Microsoft's approach is to describe the data you want and select the correct source file if several results appear. See the guide to importing data between Excel files. Test the import with the employee and the actual files that will be used at month-end.

For a repeatable import, the pandas function read_excel can be used to select sheets, columns and data types, and to specify the date format. For amounts stored as text, you can specify the decimal and thousands separators. Numeric Excel cells, by contrast, are read according to their value, regardless of how the number is displayed in the sheet. This is explained in the read_excel documentation.

Bring the requirements together in a short import specification: which columns are required, which formats are expected, and how will missing values be handled? Customer numbers must be treated as identifiers, and any significant leading zeros must be checked against the source.

Dates and amounts that cannot be parsed must go on an error list. Save the original value alongside the error message. This gives the person responsible something concrete to work from when making corrections.

A customer data join can change the revenue figure

When sales lines are joined to a customer register, each sales line should normally match one customer. If the same customer number appears several times in the register, a sales line may be repeated in the result. This can change the total even though nobody has changed the sales data itself.

In pandas.merge, the setting validate="many_to_one" can check that the keys in the right-hand table are unique. With indicator, the result can show which keys appear in both tables. The documentation also warns that null keys may be matched with each other. Missing customer numbers should therefore be handled before the join. See the merge documentation.

Compare both the row count and the total amount before and after the join. Any change needs an explanation. Unknown customer numbers must appear on the error list, with someone assigned to resolve them. Simply excluding the affected entries hides the problem.

Decide in advance what will block the report

A check is only useful if it leads to action. During the pilot, agree on which errors will block the report and which discrepancies a designated person may approve with a documented explanation.

Suggested checks and actions for a pilot covering one monthly report
Step What to check If the check fails
Import The required columns are present, and dates and amounts can be read. Stop the calculation and output an error list with the original values.
Joining data Customer keys follow the agreed relationship. Row counts and amounts are checked before and after the join. Resolve duplicates, missing matches and changes to totals.
Reconciliation The total and relevant subtotals agree with the source data. Explain differences before release and document any approved rounding discrepancies.
AI draft Numbers and statements can be traced to the calculated key metrics. Correct or remove statements that lack supporting evidence.
Approval A named person responsible has reviewed the results. Keep the report as a draft until the review is complete.

Reconcile the components of the total too

Have each run produce a separate reconciliation. It should show the source files, reporting period, number of entries imported and excluded, and totals before and after processing. If an entry is excluded under an approved rule, its amount must still appear in the reconciliation. A colleague should be able to follow the path from export file to report without reading the program code.

The grand total is not enough. Two errors in opposite directions can cancel each other out, so check relevant subtotals too, for example by month or customer group. Specify concrete rounding tolerances and require a separate explanation for other differences. A general tolerance must not automatically approve unexplained discrepancies.

Then rerun the report using the same files and rules. The calculated key metrics must be identical. Also test a missing customer number and an invalid date in copies of the input files. This lets the pilot demonstrate whether errors are actually detected and reach the person who needs to resolve them.

Give AI a clearly defined task

Known categories should follow predefined, approved rules. AI may suggest a category for a new description, but the suggestion must be saved separately until someone responsible has approved it. The categorisation can then become part of the predefined rules for the next run.

When AI writes the report commentary, give it the calculated key metrics, their definitions and the comparison period. Ask for a short draft that links each number to a specific table or cell. Missing information must be flagged, and the model must avoid explanations of causes that the data does not support.

A change in revenue, for example, does not in itself demonstrate that customer behaviour has changed. The person responsible for the report must therefore review both the references supporting the numbers and the interpretations. Save the approved text alongside the report version so it is clear later what management received.

Start with one report that the operations team can take over

Through nowa.dk, Greg's AI automation service for Danish companies, Greg can build a pilot around one monthly report. The work can include importing export files, standardising customer numbers, dates and amounts, calculations in Python, and AI suggestions for categorisation and report commentary.

Agree on a concrete set of deliverables: the report, an overview of checks, an error list, documented calculation rules and a simple guide to the next run. At the same time, name the people responsible for providing the files, resolving errors and approving the report. It should also be clear who to contact if an export changes format.

Assess the pilot across the entire process, from receiving the files to approving the report. Record the manual time spent, the corrections made and any discrepancies that remain unexplained. Once next month's report can be completed using the agreed workflow, you have a basis for deciding which reports to automate next.

Related on GrN.dk

Need help with this kind of work?

Talk to Greg about a pilot for your monthly report Get in touch with Greg.

Sources

Latest articles

Make monthly reporting easier to repeat with AI for Excel, Python and consistent checks. Get imports, error lists and reconciliation under control so the numbers can be verified.

A supplier PDF can influence more than an AI summary. Follow its path to a CRM update and see where validation, tool permissions and destination controls matter.

Check whether AI shopping channels show the right product, variant, price and availability, then trace discrepancies from your catalog through to checkout.

Add approved hours from Clockify to draft invoices in Dinero. AI writes service descriptions, while fixed rules govern amounts, approvals and reruns.

A blanket AI restriction can limit search discovery. Compare Google and Bing controls, agree content permissions, and check what your CMS actually delivers.

Measure AI automation costs per accepted result, including retries and human review. Check caching, batch processing and spending controls before scaling.

A 502 after maintenance can interrupt enquiries or checkout. Trace the NGINX-to-PHP connection, diagnose the failure, and check the fix survives a restart.

Let AI customer service retrieve order status from Shopify and Shipmondo. Learn how to define the scope, verify the customer's identity and hand over cases when information is uncertain.

Move a useful AI workflow into company-controlled projects, with clear ownership, tested permissions, service accounts and a practical plan for replacing credentials.

Drupal 10 reaches end of life on 9 December 2026. Decide whether to upgrade first or combine it with a relaunch, with clear budgets, compatibility checks and launch criteria.