How to automatically split an excel product catalog into category-specific sheets
- Step 1Export the full catalogue to one sheet — Pull the catalogue from your PIM, ecommerce platform, or ERP into a single
.xlsxor.csvwith all products in one flat sheet and a category column. The tool reads the first sheet only, so make sure the product data is the first tab. - Step 2Drop the catalogue onto the splitter — Drag the file onto the upload zone. SheetJS parses it in your browser — no upload, so unreleased SKUs and pricing stay local.
.xlsx,.xls,.ods, and.csvare accepted. - Step 3Type the category column header exactly — Enter the category column's header into the Split column box — for example
Category. It's free text and case-sensitive, so match your header precisely. A mismatch pools every SKU into one__blank__tab. - Step 4Run the split on Pro tier — The tool is Pro-and-up. Pro handles catalogues up to 50 MB / 100,000 SKUs; Pro-media up to 200 MB / 500,000. One run buckets every SKU by category and builds the workbook locally.
- Step 5Verify per-category SKU counts — The summary shows a badge per category with its SKU count. Sum them and confirm the total equals your catalogue's row count. A surprise tab —
Electronicsandelectronics, or a__blank__tab — flags inconsistent or missing category values to fix. - Step 6Download and hand off split-output.xlsx — Download the workbook. Hand the whole thing to merchandising for browsing, or extract a single category's tab (Excel → Move or Copy → new book) to feed one channel or buyer only their category.
Catalogue split behaviour
The tool has one control. Below is the fixed behaviour relevant to a product catalogue — there's no multi-level category support and no de-duplication.
| Aspect | Behaviour | Catalogue implication |
|---|---|---|
| Grouping | One tab per unique category value | Each distinct value of the column becomes a tab — exactly the categories present |
| Sub-categories | Single column only | Splits on one level. For Category > Sub-category, build a combined key column or split twice |
| Category spelling | Exact, case-sensitive match | Electronics and electronics make two tabs — normalise first |
| Multi-category SKUs | Grouped by the cell's literal value | A SKU with Electronics, Audio in one cell lands in a single Electronics, Audio tab, not in both |
| Empty category cell | Grouped under __blank__ | Uncategorised SKUs pool in one tab so you can spot and assign them |
| Header row | Copied to every tab | Each category sheet is feed-ready with column titles |
Tier limits for catalogue files
Pro and above. Limits apply to the input file; category count is unbounded by the tool.
| Tier | Max file size | Max SKUs (rows) | Typical catalogue |
|---|---|---|---|
| Free | 5 MB | 10,000 | Blocked — Pro required |
| Pro | 50 MB | 100,000 | Most single-brand catalogues |
| Pro-media | 200 MB | 500,000 | Large multi-brand marketplaces |
| Developer | 500 MB | Unlimited | Full distributor SKU masters |
Cookbook
A worked catalogue split with the multi-category and spelling gotchas that bite ecommerce data. Sample SKUs anonymised.
Split a catalogue into category tabs
One flat product sheet becomes a tab per category, each with its SKUs and the header row.
Input (Products sheet): SKU | Name | Category A-100 | USB Cable | Electronics B-200 | T-Shirt | Clothing A-101 | HDMI Cable | Electronics C-300 | Plant Pot | Home & Garden Split column: Category Output: split-output.xlsx Tab "Electronics": A-100, A-101 Tab "Clothing": B-200 Tab "Home & Garden": C-300 Results: 3 sheets created — Electronics (2), Clothing (1), Home & Garden (1)
A SKU tagged with multiple categories in one cell
The tool groups by the cell's literal value. A multi-category cell becomes its own tab, not membership in several. Split out the categories first if you need a SKU in each.
Input cell value: "Electronics, Audio" Result: a tab named "Electronics, Audio" with that SKU (NOT one copy in Electronics and one in Audio). To place the SKU in both, first split the multi-value cell into separate rows (one category per row) upstream, then run this splitter on the single-category rows.
Catch inconsistent category casing
Exact matching means casing differences fragment a category. The badge summary reveals it.
Input Category values: Electronics, electronics, ELECTRONICS Results: Electronics (220) electronics (14) ELECTRONICS (3) One category, three tabs. Normalise with the case converter to a single form, then re-split: Electronics = one tab (237).
Verify catalogue coverage before a channel feed
Confirm the per-category SKU counts sum to the full catalogue so no products silently drop from the feed.
Catalogue rows: 5,000
Results: Electronics (1,200), Clothing (2,400),
Home & Garden (1,380), __blank__ (20)
Check: 1200 + 2400 + 1380 + 20 = 5,000 ✓
20 SKUs have no category -> open __blank__, assign a
category to each, re-split before feeding the channel.Hand one category to a buyer or channel
The output is one workbook. Extract a single category's tab into its own file for a one-category feed.
1. Split on Category -> split-output.xlsx (12 tabs) 2. Open in Excel 3. Right-click "Clothing" tab -> Move or Copy... 4. To book: (new book), tick Create a copy -> OK 5. Save as clothing-feed.xlsx for the apparel channel
Edge cases and what actually happens
Category column typed incorrectly
All SKUs pooled in __blank__The split column is matched exactly. Typing category for a Category header, or adding a trailing space, matches no column — every SKU reads as missing and pools into one __blank__ tab. A single all-SKU __blank__ tab means the column name is wrong; fix the header text and re-run.
A SKU belongs to multiple categories
Grouped by literal cell valueThe tool groups on the exact cell value, so Electronics, Audio in one cell produces one Electronics, Audio tab — the SKU is not duplicated into both Electronics and Audio. To place a SKU in every category, expand the multi-value cell into one row per category upstream, then split.
Same category spelled inconsistently
Fragments into multiple tabsElectronics, electronics, and ELECTRONICS are distinct values and each gets a tab, fragmenting one category across sheets and risking an incomplete channel feed. Normalise the category column first (the case converter handles casing), then re-split.
Uncategorised SKUs
Grouped under __blank__SKUs with an empty category cell pool into a __blank__ tab by design, so missing categorisation is visible rather than silently excluded from a feed. Reconcile against the catalogue total, assign categories, and re-split.
Two-level category hierarchy
Single level onlyThe tool splits on one column. For a Category > Sub-category hierarchy, either build a combined Category|Sub-category helper column and split on that, or split on Category first and run each tab through the splitter again on Sub-category.
Long category names
Truncated to 31 charsA category name over 31 characters is truncated in the tab label (row data is unaffected). Two long names sharing their first 31 characters collide and the second gets a _2 suffix. Use the badge labels to map tabs back to full category names before feeding a channel.
Catalogue data on a later sheet
Only the first sheet is splitMany catalogue workbooks lead with a cover, lookup, or instructions tab. The splitter reads only the first sheet, so move the product data sheet to the front (or save it standalone) before uploading, or the split runs against the wrong sheet.
Free-tier account
Pro tier requiredFree accounts are blocked with Conditional Splitter requires Pro tier. Upgrade to Pro (50 MB / 100,000 SKUs) or higher. Most single-brand catalogues fit comfortably within Pro's row limit.
Price stored with a currency symbol
Preserved as displayedPrice and cost columns are copied into each tab as the reader formats them. A price stored as text with a £/$/€ prefix carries through as text; a raw number stays numeric. The split inspects only the category column, leaving every pricing column intact.
Very high category cardinality
Supported but unwieldySplitting on a near-unique field like SKU or model number produces thousands of single-row tabs that are slow to open. For catalogue browsing, split on a coarse merchandising dimension (category or department) — there's no tool-side cap, but Excel and your browser have practical limits.
Frequently asked questions
Can it split a SKU into more than one category at once?
No. The tool groups by the literal value in the category cell, so a SKU tagged Electronics, Audio in one cell goes into a single Electronics, Audio tab — not into both Electronics and Audio. To put a SKU in every category it belongs to, expand the multi-value cell into one row per category upstream first, then split.
Does it handle a Category > Sub-category hierarchy?
It splits on a single column only. For two levels, either build a combined Category|Sub-category helper column and split on that, or split on Category first and then run each category tab through the splitter again on Sub-category.
Why did one category split into several tabs?
Because the category values aren't spelled identically. Electronics, electronics, and ELECTRONICS are three distinct strings, so each becomes a tab — fragmenting one category and risking an incomplete feed. Normalise the category column first (the case converter fixes casing), then re-split.
Which column should I name for a catalogue split?
Type the exact header of the column holding the category — usually Category, Product Type, or Department. The box is free text and case-sensitive, so it must match your header precisely. If every SKU lands in a __blank__ tab, the column name didn't match.
Are headers kept on each category tab?
Yes. The header row is copied to every tab, so each category sheet is feed-ready and self-describing — SKU, Name, Price, Stock titles already in place. No need to re-add them per tab.
What happens to SKUs with no category?
They are grouped into a __blank__ tab. This is intentional so uncategorised products are visible rather than silently excluded from a feed. Reconcile the __blank__ count, assign categories, and re-split before handing off.
Is the output one file per category?
No — it's a single split-output.xlsx workbook with one tab per category. To feed one channel only its category, split here, then right-click that tab in Excel → Move or Copy → (new book) and save it as a standalone file.
Will it preserve my price and stock columns?
Yes. Every column is copied verbatim into each category's tab — only the category column drives the split. Prices stored as text with currency symbols carry through as text; raw numbers stay numeric.
How big a catalogue can I split?
Pro handles 50 MB / 100,000 SKUs, Pro-media 200 MB / 500,000, Developer 500 MB / unlimited. Free is blocked. The number of category tabs has no fixed cap; it's limited by browser memory and Excel.
Does it read every sheet in my catalogue workbook?
No, only the first sheet. If your workbook opens with a cover or lookup tab, move the product data sheet to the front (or save it standalone) before uploading, or the split runs against the wrong sheet.
Is my unreleased product data uploaded?
No. The split runs entirely in your browser via SheetJS. SKUs, pricing, and descriptions are parsed locally and never reach a server. Only an anonymous, content-free usage counter is recorded for dashboard stats, which you can opt out of.
Can I clean the catalogue before splitting?
Yes, in sequence. Normalise category spellings first, then split. To deduplicate repeated SKU rows, run the fuzzy deduplicator first; to reshape a wide attribute table into long form, use the unpivot tool; for per-category counts and totals, use the pivot generator.
Privacy first
Every JAD Excel tool runs entirely in your browser using SheetJS and ExcelJS. Your spreadsheets, formulas, and data never leave your device — verified by zero outbound network requests during processing.