The full workflow from my Reel. Profile the data first, give ChatGPT real business context, make it check its own work, then turn the result into a dashboard you'll actually use.
| order_id | order_date | region | product | qty | revenue |
|---|---|---|---|---|---|
| 1041 | 2026-01-12 | Jakarta | Coffee Beans 1kg | 3 | 675000 |
| 1042 | 12/01/2026 | jakarta | Coffee beans 1kg | 2 | 450000 |
| 1042 | 12/01/2026 | jakarta | Coffee beans 1kg | 2 | 450000 |
| 1043 | 2026-01-13 | Surabaya | Drip Kettle | 389000 | |
| 1044 | 2026-01-13 | Bandung | Hand Grinder | 1 | 9999999 |
| 1045 | 2026-01-14 | Medan | Paper Filters | 5 | Rp 60.000 |
This is what real data looks like, so don't clean it first. A good first prompt should make ChatGPT find every one of these on its own:
In ChatGPT, click + in the message box, choose Add photos & files, and pick your CSV or Excel file. One table per sheet with headers in the first row works best.
Remove names, phone numbers, emails, and anything confidential. If it's company data, check your company's AI policy first.
On a personal plan, you can stop your chats from being used to train OpenAI's models: Settings › Data controls, then turn off Improve the model for everyone.
This is the same messy file I use in my videos: 9,408 rows of made-up coffee sales with every problem above hidden inside.
Download the practice fileExcel, 9,408 rows, about 400 KBOr ask ChatGPT to make you a fresh one:
Fill these in once and every prompt below updates as you type. Anything you leave blank stays as a highlighted placeholder you can edit inside ChatGPT.
Upload the raw file and make ChatGPT understand it before it draws a single chart. Most bad analysis starts with skipping this.
The row count matches what you see in Excel. It tells you what one row represents. Problems come with counts, like “139 duplicate rows”, not vague warnings.
Without context you get “interesting charts”. With your role, the business problem, and the decision on the table, you get answers you can act on.
Every number comes with a calculation you can follow. The cleaning log explains any rows that disappeared. When the data can't answer something, it says so.
The important part
Do the totals match the source? What did it assume? This is what separates a pretty chart from an analysis you can defend in a meeting.
Open your original file, make a quick pivot table, and compare the totals ChatGPT flagged. It takes five minutes, and it's what makes the analysis yours. AI can make mistakes; you own the conclusion.
Not a screenshot of charts in the chat. A file your team can open, update, and trust.
Open the file in Excel and click a KPI: you should see a formula, not a typed number. Then change one value on the Data sheet and watch the dashboard move. If something ChatGPT promised is missing, ask it for the steps to add it yourself.
A sample built with this exact workflow on the practice file above: 9,408 raw rows, profiled, cleaned, reconciled, and then turned into a dashboard. ChatGPT hands it to you as an Excel file with Data, Dashboard, and Notes sheets. Here it is live, so you can try the filters.
Sample Coffee Co. Sample data
Five regions, three channels, twelve products. January 2025 to June 2026, in rupiah.
Volume: selling more or fewer units. Price: charging more or less per unit. Mix: a shift between cheaper and pricier products.
Selected quarter in dark blue, comparison quarter in mid blue.
Share of revenue by sales channel.
All numbers are made up for practice. The company and its sales are not real.
Stay in the same chat so ChatGPT keeps the cleaned data and everything it already checked.