An end-to-end Excel analytics project built on a messy, synthetic personal-finance transaction dataset. The focus is on demonstrating a realistic data-cleaning pipeline (Power Query), analytical formula work, PivotTable reporting, and light automation (VBA) — the kind of workflow used in audit and financial-analysis settings.
| Dataset | BudgetWise Personal Finance Dataset (synthetic, ~15,000 transaction records) |
| Tools | Microsoft Excel — Power Query, Excel Tables, PivotTables, formulas, VBA |
| Focus | ETL, data-quality auditing, spend analysis, reporting automation |
The dataset was intentionally messy — inconsistent date formats, mixed currency symbols, misspelled/abbreviated categorical values, placeholder strings standing in for missing data, and a handful of invalid transaction amounts. The project's goal was to clean, standardize, and analyze it using an auditable, fully reproducible Excel workflow — no manual one-off edits, everything driven by Power Query steps and live formulas.
All cleaning logic lives in the BudgetTransaction query and re-runs from the original source CSV on every refresh — nothing here is a manual, one-time fix.
Key transformations:
- Date standardization — custom M logic to parse multiple inconsistent date formats (slash-delimited, dash-delimited, 2-digit vs. 4-digit years) into a single clean
datetype column - Currency & numeric cleanup — stripped mixed currency symbols (
Rs.,INR,$,₹) and non-numeric characters from theamountfield, converting it to a clean numeric type - Categorical standardization — mapped inconsistent/misspelled entries in
category,payment_mode, andlocation(e.g., "fod", "foodd" →Food) to a controlled set of values usingList.Containslogic - Placeholder-to-null normalization — values like
"No notes provided","N/A", and"Unmapped"were standardizing text, not real nulls. These were explicitly replaced with truenulls so that completeness metrics and filters treat them consistently with genuinely missing data - Invalid row filtering — removed transactions with negative amounts (142 rows), which don't represent valid spend/income entries in this dataset
- Data Quality Flag — added a
data_quality_flagcolumn (Complete/Missing Data) based on whetherdateoramountis null, enabling a completeness KPI without fabricating any values
A deliberate decision: no financial figures were imputed anywhere in this pipeline. Missing dates and amounts are left null and flagged rather than estimated — mirroring standard audit practice, where guessing a transaction amount or date is a bigger risk than simply flagging it as incomplete.
Built on the Summary_Analysis sheet, using the cleaned Excel Table as the source (SUMIFS, COUNTIF, COUNTA):
- Data Completeness KPI — Total Transactions, Complete Records, Missing Data Records, and % Complete, computed directly off the
data_quality_flagcolumn - User-Level Spend Summary — Total Expense, Total Income, and Net position calculated per unique
user_idusingSUMIFS, spilled across all ~150 users
A Budget_vs_Actual PivotTable breaks down Expense totals by category (rows) and month (columns), giving a category × time view of spend patterns. A separate Budget table holds average monthly actuals against budget targets per category, for a budget-vs-actual comparison.
A RefreshEverything macro, triggered by a button on the Summary_Analysis sheet, refreshes the full workflow in one click:
- Triggers
RefreshAllon the workbook's data connections and PivotTables - Waits for all query connections to fully finish refreshing (avoids a timing issue where formulas could recalculate against partially-refreshed data)
- Forces a full recalculation of every formula in the workbook
- Confirms completion with a message box
This means the entire cleaning-through-reporting pipeline can be re-run end-to-end from a single button, against an updated source CSV, with no manual steps in between.
- Built a fully reproducible ETL pipeline in Power Query — no manual data edits, everything reruns cleanly from the raw source file
- Applied a deliberate, documented approach to missing data: flag, don't fabricate
- Combined formula-based and PivotTable-based reporting to demonstrate both approaches to the same underlying analysis
- Automated the refresh-and-recalculate workflow with VBA for one-click reproducibility
BudgetTransaction_Clean.xlsm— full workbook (Power Query, formulas, PivotTable, and VBA macro)budgetwise_finance_dataset.csv— original raw source data