In July 2023, a client approached me with a small but very familiar problem.
An Excel file was updated every month. Every new version had to be reformatted into a specific target format. The client was looking for a VBA or Python specialist who could make that step automatic.
This is the kind of task that is easy to underestimate. It sounds like “format a spreadsheet”, but a working solution first has to answer a more important question:
Which parts are presentation, which parts are data transformation, and which rules must never change?
Start with the two files
The original and target files were the specification.
I compared them and separated the work into three groups:
- Structure — sheets, columns, order and expected output shape.
- Data rules — values that had to be moved, derived, normalized or preserved.
- Presentation — number formats, fonts, widths, borders and other workbook formatting.
That separation matters. A formatting script can produce a file that looks right while quietly changing an identifier, interpreting a date incorrectly or dropping a leading zero.
Make the rules explicit
Before automating a recurring spreadsheet, I want each important step to be expressible as a rule.
For example:
- preserve the source file;
- fail clearly if an expected sheet or column is missing;
- keep identifier columns as text;
- apply the same transformation in the same order;
- save the result to a new file;
- confirm that the output has the expected shape.
The exact implementation can be VBA or Python. The choice depends on where the file runs, who maintains it and how much data transformation is involved. The language is secondary. The repeatability is the actual deliverable.
Design for next month, not only this month
A monthly file will eventually change.
A column may be renamed. A new category may appear. Someone may insert an extra sheet. A reliable tool should not silently produce a plausible but wrong output when that happens.
For recurring files, I prefer a short validation step before formatting:
- are the expected inputs present?
- are required fields populated?
- did the number of records change unexpectedly?
- did the output retain the agreed columns and types?
These checks turn an automation script into something that can be trusted and reviewed.
What was verified
The public Upwork engagement ran from July to August 2023. The client’s review was short:
“thanks for the great job again.”
I will not turn that sentence into an invented percentage or ROI claim. What it does verify is simpler and useful: the delivered solution met the client’s expectation and the work was completed successfully.
The lesson
The most valuable part of spreadsheet automation is not removing a few clicks. It is taking a process that lives in one person’s memory and converting it into rules that can be run again.
That is also why I usually start larger cleanup or reporting projects with a data-quality audit. Before automating the visible step, I want to know what the file is expected to mean and how we will know that the result is correct.