Skip to content

From Excel Macros to Building with Agentic AI

If I had to name the one thread that runs through my entire journey with technology, it would be automation. Not in the dramatic, robots-replacing-humans sense. More like: I kept finding myself staring at some process that was eating hours of someone’s week and thinking, “there has to be a better way to do this.” Then I’d spend my evenings figuring out how.

I’ve worked in paid media and advertising for over twelve years now. The tools I’ve used to automate things have changed completely in that time. Multiple times. But each wave was driven by the same pattern: I’d get something working, hit a wall, and that wall would push me to learn whatever came next. Looking back, every phase made me better at the one that followed.

Excel Formulas and VBA

Early in my career, I was working at a media agency on paid search accounts for major brands. The reality of agency life is spreadsheets. Campaign performance reports that needed to be pulled from multiple ad platforms, reformatted, and delivered to clients on a weekly basis. There were people on the team spending five hours every week formatting the same reports. Another five hours on a separate set of budget optimization documents. Pacing updates, performance summaries, optimization recommendations. All manual, all repetitive, all week after week.

I realized pretty quickly that I could templatize most of this with Excel formulas. Nothing fancy, just structured templates that pulled numbers into the right places and formatted everything automatically. That five-hour weekly task dropped to about ten minutes. Open the file, paste in the new data, and the template did the rest.

That was my first real lesson in automation: even simple things compound. Saving five hours a week is over 250 hours a year. Across a team, that’s a massive amount of capacity freed up. And the time I saved didn’t just disappear. It gave me more room to learn new things and take on bigger challenges. That feedback loop of “automate the repetitive stuff, free up time to grow” became the lens I tried to approach everything through.

When I moved to a larger agency and started working on a bigger account, the complexity went up significantly. I needed to automate things that were beyond what formulas could handle: complex account builds, large-scale campaign restructures, multi-step processes that involved logic and decision-making, not just math. That’s when I started learning VBA.

VBA let me build macros that could handle sophisticated workflows directly in Excel. I created templates that standardized and accelerated account launches, automated repetitive campaign build processes, and let the team move faster without sacrificing consistency. It wasn’t elegant code, but it worked, and it made a real difference in how quickly we could execute.

Power Query

The problem with VBA and formula-heavy workbooks is that Excel starts to slow down. When you have thousands of cells recalculating with every click, the whole experience becomes painful. I was spending more time waiting for Excel to catch up than actually doing the work.

That’s what brought me to Power Query. What I liked about it immediately was that the processing happened in the background. Once the data refreshed, the results were just there. No more thousands of formulas recalculating live. It was a completely different experience.

But the real power of Power Query went way beyond just being faster. I learned that I could connect to online data sources directly, which opened up a lot of flexibility. And I could package sophisticated transformation logic into the query itself. This was a big deal because it meant I could take the knowledge of an experienced practitioner (how to structure an optimization analysis, what signals to look for, how to flag underperformance) and bake all of it into a template that the most junior team member or intern could run.

The workflow was straightforward: pull data out of platforms like Google Ads or Microsoft Advertising in a set format, drop the export into a SharePoint folder, open the Excel file, click “Refresh,” and Power Query would do the rest. All the views for reporting, analysis, and optimization recommendations were instantly ready. Once it was set up, there was almost no chance of anything going wrong.

I ended up running Power Query trainings across the organization. It wasn’t just about one team. The same approach worked for any team that was spending hours on manual data wrangling. And the templates were durable. Build it once, and it just kept working week after week with minimal maintenance.

Power Automate, RPA, and Dataflows

Power Query solved the data transformation problem, but there was still a manual step in the chain: someone had to get the data out of the ad platforms and into the right folder. I started using Power Automate to solve this. Many platforms supported scheduled email reports, so I set up Power Automate flows that would catch those emailed reports and automatically route them to whatever file storage the team was using (SharePoint, Box, whatever). That meant the Excel template always had up-to-date data, and all someone needed to do was open the file and click Refresh.

But not every platform supported scheduled email exports. Some required logging in, navigating through a UI, and manually exporting the data. That’s what led me to RPA. I started with UiPath to build robotic process automation workflows, then moved to Selenium via Python, and eventually landed on fully scheduled headless browser automation running on a VPS. The browsers would log into platforms with read-only access on a schedule, export the reports, and drop them into folders that Power Query could read from. All running in the background without anyone touching it.

The one thing still bugging me was that someone still needed to open the Excel file and click Refresh for Power Query to run. That’s what brought me to Dataflows, which was essentially Power Query in the cloud. Combined with Power Automate, I could finally build a fully end-to-end automated pipeline: data pulled from wherever it needed to come from, processed through Dataflows, and dropped into the final SharePoint locations where reports and dashboards could pull from.

I even started using Excel Office Scripts within these workflows to write to closed files, apply formatting, and trigger email alerts based on custom logic. The whole pipeline, from data collection to alerting, could run on a schedule without anyone touching it.

At this point I had what felt like a complete system. Data collection, transformation, alerting, reporting, all automated. But there was still one big thing that required a human.

Generative AI

Across everything I’d built, there was one task I’d never been able to automate: the actual thinking part. Specifically, writing ad copy. In enterprise paid search, you’re dealing with many thousands of lines of highly customized ad copy, tailored to specific campaigns, ad groups, and keyword sets. Writing and optimizing all of that is tedious, time-consuming work. I’ve done it myself for hours and days at a time, many times over the course of my career. All my automation could get the data ready, surface the right signals, flag what needed attention, but someone still had to sit down and write the copy.

When large language models became capable enough to actually use, that changed. I started experimenting with the OpenAI API, first through Google Sheets Scripts, then rebuilding in Excel with Office Scripts and VBA when the team needed to stay within the Microsoft ecosystem. The idea was straightforward: take all the data signals I was already extracting (performance metrics, keywords, search terms, high-performing ad variations), combine them with context about the client and their messaging guidelines, and have a language model generate ad copy.

It worked. I built an Excel-based tool that could take a paid search report, extract the most relevant information for optimization, scrape and summarize the landing page the ad was pointing to for additional context, and generate polished ad copy that accounted for platform formatting requirements. The user would review and refine the output as part of a human-in-the-loop process, and the tool would auto-generate a formatted upload file for the ad platform. One click to generate, review, refine, and export.

This ended up being my first real AI product. It wasn’t just a template that saved time on a recurring task. It was a tool that fundamentally changed a workflow. Building something that people actually wanted to use taught me a lot about what makes an AI tool stick: it has to fit naturally into how people already work, not ask them to change everything.

From there, I started building more tools using the same approach. I created custom Excel formulas (think =GPT or =GEMINI as actual spreadsheet functions) that let me treat AI models as building blocks. I could spin up new tools quickly by wiring together prompts, data, and API calls directly in Excel.

Eventually, the original tool got rebuilt as a full web application with a React frontend and Python backend. I was involved in shaping the product and working alongside the development team through that process. That experience was my first real exposure to building production software as part of a proper development team.

The Shift to Pro-Code

My move away from Excel and low-code tools was driven by scale. I was working on a large data project that aggregated performance data across hundreds of advertising accounts. We tried to build it with Power Automate and Dataflows, but the volume of data exceeded what those tools were designed to handle. That’s when I dove into building the solution fully in Python, using BigQuery for data storage, Cloud Run for compute, and Cloud Tasks for orchestration.

Using generative AI as a development accelerator, I got that project launched, and it gave me real confidence working on code-based projects. It was a turning point. I went from someone who could make powerful things happen inside Excel to someone who could build actual software, even if I was leaning heavily on AI to help me get there.

Agentic Development

Then agentic coding tools showed up: Claude Code, Cursor, and others. These changed the game again. Instead of copying code snippets back and forth from a chat interface, I could work across files in an IDE with an AI that understood the full project context. I started getting hands-on with things that would have been way over my head a year earlier. First simple local applications, then web-deployed projects on my own VPS. Static sites with HTML, CSS, and JavaScript. Then Next.js, Astro, and React. Then full web applications with Python FastAPI backends, React frontends, Docker deployments, JWT authentication, PostgreSQL databases. Each project taught me more about how real software gets built.

The biggest accelerator, though, has been working alongside developers building full agentic solutions. I’m not a career developer by any stretch, but working closely with people who are has taught me how to contribute meaningfully on the technical side while keeping the business context front and center. Aligning on architecture and pushing through the challenges of building from concept to production has taught me more about software development than any amount of solo tinkering could have.

Looking Back

Looking back across all of this, from Excel formulas to agentic AI, the instinct never changed. Every phase was about the same thing: removing friction between people and the outcomes they need. The tools evolved dramatically, but the core question was always “where are people spending time on work that a machine could handle, and how do I close that gap?”

What strikes me most is the acceleration. The gap between Excel formulas and VBA was a couple of years. VBA to Power Query was another year or two. Power Query to full Power Automate pipelines took a few more. But the jump from there to generative AI felt like it happened overnight. And agentic tools have moved even faster. Each generation arrives sooner, the learning curve is shorter (partly because every previous phase built intuition that carries forward), and the potential impact gets bigger.

One thing I’ve noticed is that understanding a process well enough to codify it in a spreadsheet is surprisingly similar to designing an AI-powered workflow. The tools keep changing, but the underlying skill is the same: figure out where the friction is and find a way to remove it.

If you’re looking to get started and your path is like mine, where you frequently work in Excel, my honest advice is to begin with Power Query. It’s already built into Excel, it’s visual, and it’s significantly more user-friendly than jumping straight into VBA or Python. From there, use ChatGPT or Claude to help you customize your logic, and start adding VBA where Power Query isn’t enough. The key is applying it to something you actually do every week. The moment automation starts saving you real time, it stops being a side interest and starts being a core part of how you operate. That’s what happened for me, and it’s what kept me pushing into each new wave.

I hope my path is useful to anyone reading this. If you have questions or want guidance on anything I’ve learned along the way, I’m happy to help. And for anyone else exploring the agentic space and building solutions (ideally media-focused, like me), I’d love to connect and maybe collaborate on a learning project. I’ve found that building alongside someone else is one of the best ways to accelerate learning and explore new approaches I might not have considered on my own.

Feel free to use the contact form below or reach out on LinkedIn.

Contact

Get in Touch

Interested in collaborating on a project or just want to connect?
Reach out below.