Skip to content

Excel Sales Dataset Generator

Build a realistic sales dataset in seconds. Pick the size, the seasonality and how messy it should be, then download a three-sheet Excel file to practice on.

1. How messy should it be?

Start here. Each option sets the fourteen fine-tuning controls for you, and you can still change any of them afterwards.

2. How big should it be?

The store, the catalog and the time span.

2,525 rows 3 sheets, plus an About sheet covering 2026 to 2027

3. Where should I send it?

You get the download here as soon as it is built. The link goes to your inbox too, so you can close this page.

Free. No account needed.

What You Get

One .xlsx file with three related sheets, so you can practice joins and lookups instead of working on a single flat table.

Sales Data

One row per transaction, sorted by date. Store locations and payment methods follow a weighted mix rather than being spread evenly, so the totals look like a real till.

  • Order_ID
  • Transaction_Date
  • Transaction_Time
  • Store_Location
  • Payment_Method
  • Product_ID
  • Quantity
  • Unit_Price
  • Discount_Rate
Products

The catalog, across Electronics, Accessories, Office Supplies, Furniture and Apparel. Prices end in .99 or .95, the way retail prices do. Joins to Sales Data on Product_ID.

  • ID
  • Product_Name
  • Category
  • Unit_Price
  • Supplier_ID
Suppliers

Who supplies what, each specializing in a category so the joins make sense. Joins to Products on Supplier_ID, which gives you a two-hop lookup to practice on.

  • ID
  • Supplier_Name
  • Location
  • Specialization

A fourth sheet, About This Dataset, records every setting you chose and lists six analysis ideas, so you can always tell which file is which.

What Makes It Realistic

Random numbers are easy to spot and boring to analyze. This data has patterns in it that are actually there to be found.

Seasons that belong to their category

Electronics climb into November and December, apparel moves with the change of season. Each category peaks when it should, not all in the same month.

Busier weekends, real opening hours

Friday to Sunday carry more sales than midweek, and every transaction gets a timestamp between 9am and 9pm, so time-of-day analysis has something to show.

A payment mix, not a coin flip

Card, debit, cash, mobile and gift card appear in the proportions a physical store actually sees, so a payment breakdown is worth charting.

Discounts with a reason behind them

Expensive items get fewer but deeper discounts, cheap items get smaller ones, and everything is discounted more during its own peak season.

No empty months

Every product gets at least one sale in every month it existed, so a pivot table never has holes in it and year-on-year comparisons line up.

Mess you asked for, on purpose

Turn up the data quality sliders and you get exact duplicate rows, blank cells, store names typed wrong, and the same supplier written three different ways.

What To Practice On It

Three sheets that reference each other give you more to work with than a single table ever does.

Pivot tables and dashboards

Revenue by month, category and store. Add Discount_Rate as a second measure and the seasonal discount pattern shows up immediately.

XLOOKUP across sheets

Sales Data has no product name and no revenue column on purpose. Look the name up on Products, then hop to Suppliers, then work out line totals yourself.

Power Query cleanup

Turn the messiness up and you have real work to do: remove duplicates, fill blanks, and group "Downtown", "Down Town" and "Dowtown" back into one store.

pandas and Python

pd.read_excel with sheet_name=None gives you all three at once. Merge them, resample by month, and plot the seasonality you configured.

Power BI and Tableau models

Products and Suppliers are proper dimension tables. Load all three and you have a star schema to build relationships and measures against.

Teaching and testing

Generate the same shape twice with different messiness for a before and after exercise, or make one big file to see where a workbook starts to slow down.

Every Control, Explained

What each setting changes in the file you open.

ControlRangeWhat it changes
Size
Sales records100 to 10,000Rows on the Sales Data sheet. Every product still gets one sale a month first, so small numbers are raised to that floor.
Different products1 to 40How much of the 40-product catalog the store sells, spread across the five categories.
Suppliers1 to 20Rows on the Suppliers sheet. Each one specializes in a category so its products make sense.
Years covered1 to 4How many calendar years the transactions span.
First year10 years backThe earliest year in the data. Drag it back if you want dates in the past.
Data quality
Duplicate records0 to 30%Rows copied exactly, the way a double import leaves them. Nothing marks them, so you have to find them.
Data entry errors0 to 30%Store names typed wrong, so "Downtown" also appears as "Down Town". Good practice for grouping and fuzzy matching.
Missing values0 to 30%Blank cells, mostly in Store_Location. What a real export from a real till looks like.
Inconsistent product names0 to 100%The same product written more than one way, including in capitals, so a lookup on the name alone stops working.
Inconsistent supplier names0 to 100%Ltd against Limited, Inc against Incorporated, and the occasional company shouting in capitals.
Sales patterns
Seasonal sales strength0 to 100%How far each category climbs in its own peak months. At 0 the year is flat; turn it up and the December spike is unmissable.
Year-to-year consistency0 to 100%How closely each year repeats the one before. Lower means bigger swings between years.
Outlier probability0 to 100%How often a transaction lands far outside the normal range. Something to detect, or to decide to ignore.
Outlier magnitude0 to 100%How extreme those outliers get when they do appear.
Price variation0 to 100%How much the same product's unit price drifts between transactions, rather than being identical every time.
Discounts
Discount probability0 to 100%The base chance any given order carries a discount at all.
Minimum discount0 to 100%The smallest discount that can be applied.
Maximum discount0 to 100%The largest discount that can be applied.
Seasonal discount boost0 to 100%Extra discount chance during a category's peak season, on top of the base probability.

Frequently asked questions

Now Automate The Analysis

You have the data. My Excel automation course shows you how to turn the reporting you do on it into a one-click Python workflow, in 3.5 hours, with nothing to install.

See the course

Desktop apps, Excel add-ins, and free tools for everyday work.

Stay Updated

Get new tool updates and exclusive deals.