An interactive Excel dashboard built from 1,000 coffee order records covering January 2019 to August 2022. The dataset includes customer, product, coffee type, roast type, size, country, quantity, pricing, and sales information. Slicers and a timeline filter every chart at once, and a VBA macro audits the raw data for quality issues.
Pulled customer details and product details from separate sheets into each order row with XLOOKUP, and calculated sales per line (unit price × quantity).
Built pivot tables for sales over time, by country, by coffee type, roast and size, and for the top five customers.
Turned the pivots into charts on one dashboard sheet, then connected slicers and a timeline so every chart filters together.
Wrote a VBA macro that checks every order row for missing, duplicate and invalid values and logs each problem to an Exceptions sheet.
The US generated about $35,639 in sales, well ahead of Ireland ($6,697) and the United Kingdom ($2,799).
The largest bag size brought in more than half of total sales.
Light roast generated the highest sales of the three roast types.
Excelsa led the four coffee types in sales.
The highest monthly sales in the period, at about $1,798.
Before trusting the dashboard, I wrote a macro (CheckDataQuality) that reads every row of the orders sheet, runs five checks, and writes each problem — row number, Order ID and reason — to a new Exceptions sheet. It finds columns by their header names, so it keeps working if the column order changes.
| Check | Issues |
|---|---|
| Missing email addressCustomer email blank after the lookup | 206 |
| Duplicate order lineSame Order ID and same Product ID twice | 1 |
| Quantity not a number, zero or negative | 0 |
| Order date missing or invalid | 0 |
| Order date in the future | 0 |
| Total · 1,000 rows checked | 207 |

The dashboard, pivot tables and formulas. No macros, so it opens anywhere without warnings.
Everything in the dashboard workbook, plus the VBA macro and the Exceptions sheet it produced.