Home › Developer Tools › Split Excel File

Split Excel File

Break one Excel sheet into several smaller workbooks: a fixed number of rows per file, a number of equal parts, or one file for every value in a column such as Region or Department. The header row is repeated in every part and numbers and dates stay real Excel values.

Last updated:

Sample workbook loaded

Parts

Sheet preview

Advertisement
Advertisement

How to use the Split Excel File

  1. Open your Excel file by dropping it on the box (a sample workbook is loaded so you can try it first).
  2. Pick the sheet to split if the workbook has more than one.
  3. Choose how to split: by the values in a column, by rows per file, or into a number of equal files.
  4. Choose the output: separate Excel files in a ZIP, one workbook with a sheet per part, or CSV files.
  5. Check the parts list on the left, then click Split and download (or download a single part).

Three ways to split a sheet

Split byExample (1,000 data rows)Good for
Unique values in a columnColumn Region with North, South, East, West → 4 files, each with only its region's rowsSending each manager, branch or client only their own data
Rows per file300 rows per file → 4 files: 300 + 300 + 300 + 100Upload limits in CRMs, email tools and online stores
Number of equal files3 files → 334 + 333 + 333 rowsSharing a call list or review workload evenly between people

Doing the same thing inside Excel

Excel has no single "split by value" button. The manual route is: turn on Data › Filter, filter the column to one value, select the visible cells, copy them into a new workbook, save, and repeat for every value. With a dozen values that is dozens of steps and easy to get wrong (for example, forgetting the header or copying hidden rows). The other routes are a VBA macro or a Power Query per value, which need macro-enabled files or some setup. This tool does the filter-copy-save loop for every value at once and names each file after its value.

Tips

  • Clean the split column first. "North" and "north " become two separate files because the text differs. Trim spaces and fix capitalization with the CSV Cleaner before splitting if your data is messy.
  • Need one workbook for review? Choose One workbook, one sheet per part: everyone gets the same file with a tab per group.
  • Going the other way? Combine parts back into one table with the CSV Merger, or split plain CSV files with the CSV Splitter, which copies text byte for byte and handles very large CSVs.

Frequently asked questions

How do I split an Excel sheet into multiple files by column value?

Open the file, set Split by to Unique values in a column and pick the column, for example Region. Every distinct value becomes its own workbook named after the value (employees_North.xlsx, employees_South.xlsx …), each with the header row and only the rows for that value. Click Split and download to get them all in one ZIP.

Can I put each part on its own sheet in one workbook instead?

Yes. Set Output to One workbook, one sheet per part. Sheet names are taken from the column values, shortened to Excel's 31-character limit, with characters Excel does not allow in sheet names (: \ / ? * [ ]) replaced.

Will dates and numbers still work as numbers after splitting?

Yes. Cells are written back as real numbers, dates (with a yyyy-mm-dd format) and TRUE/FALSE values, not as text, so formulas, sorting and filters keep working in the new files. Formulas themselves are not copied; each cell keeps its last calculated value.

Is formatting such as colors and column widths kept?

No. The tool copies cell values only. Each output file gets a clean layout with sized columns and, if you leave the option on, a bold frozen header with AutoFilter. Cell colors, merged cells, charts, comments and macros from the original are not carried over.

How many rows can I split?

An Excel sheet holds at most 1,048,576 rows, and files of that size can be split here; speed depends on your device's memory. As a rough guide, a 100,000-row sheet usually splits in a few seconds on a modern laptop.

What happens to rows with an empty value in the split column?

They are collected into a part named (blank), listed last. Empty rows are skipped by default; untick Skip empty rows to keep them.

Is my spreadsheet uploaded anywhere?

No. The workbook is read and the new files are created by JavaScript in your browser tab. Nothing is sent to a server, so confidential payroll or customer sheets stay on your computer.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

CSV SplitterSplit a large CSV into smaller files by row count, file count or column value, header kept.Excel Viewer (XLSX / XLS)Open XLSX, XLS and ODS spreadsheets in your browser without Excel.Excel to CSVConvert XLSX spreadsheets to CSV.CSV MergerCombine many CSV files into one, matching columns by name, with dedupe and a source column.JSON to Excel ConverterTurn JSON into a styled .xlsx spreadsheet; nested arrays become their own linked sheets.JSON to CSVConvert JSON data to CSV for spreadsheets.CSV to JSONConvert CSV data to JSON with live preview.CSV ViewerOpen a CSV or TSV file as a sortable, filterable table.Line Ending ConverterConvert text and files between CRLF, LF and CR line endings.Markdown to HTMLConvert Markdown to clean HTML with a live editor.XML to JSONConvert XML to JSON with validation.Text Encoding ConverterDetect and convert text file encodings like UTF-8, UTF-16 and Latin-1.JSON ViewerExplore JSON as a collapsible tree, search keys and values and copy any node's path.TTF to WOFF2 ConverterConvert TTF and OTF fonts to WOFF2 or WOFF and get a ready @font-face CSS snippet.Chmod CalculatorConvert Linux file permissions between checkboxes, octal (755) and symbolic (rwxr-xr-x) notation.JSON to TypeScriptGenerate TypeScript interfaces or types from JSON, with nested types and optional fields.Morse Code TranslatorTranslate text to Morse code and back, then play it as sound or a blinking light, or save a WAV.HTML Table GeneratorBuild HTML tables in an editable grid with styles, header rows, CSV import and live preview.Hex to Text ConverterConvert hex to text and text to hex with UTF-8 support and space, 0x, \x or comma formats.JSON to XML ConverterConvert JSON to well-formed XML with attributes, arrays and pretty print.JSON to YAML ConverterConvert JSON to clean YAML as you type, with indent, quoting and sort options.YAML to JSON ConverterConvert YAML to pretty or minified JSON, with errors pinned to the exact line.HTML to Markdown ConverterTurn HTML or pasted rich text into clean Markdown with tables and live preview.Markdown Table GeneratorBuild Markdown tables in a grid or paste from Excel/CSV, with alignment and preview.JSON ValidatorCheck JSON with the exact line and column of each error, fix tips and one-click auto-fix.Image to Base64Convert images to Base64 data URIs, CSS backgrounds and HTML img tags in your browser.Base64 to ImagePaste a Base64 string or data URI to preview, identify and download the image.JSON CompareCompare two JSON documents and see every added, removed and changed path.Hex to DecimalConvert hex to decimal instantly with steps and signed mode.Decimal to HexConvert decimal to hex instantly with steps and signed mode.Binary to DecimalConvert binary to decimal instantly with steps and signed mode.Decimal to BinaryConvert decimal to binary instantly with steps and signed mode.Two's Complement CalculatorDecimal to two's complement binary and back for 4-64 bits, with invert-and-add-1 steps.XML to CSV ConverterConvert XML to CSV: detects repeating records, flattens nested data, pick your columns.CSV to XML ConverterConvert CSV to well-formed XML with custom root and row names, escaping and pretty print.TOML to JSON ConverterConvert TOML to JSON and JSON to TOML with a full v1.0 parser and clear error lines.JSON to Go StructTurn JSON into Go structs with inferred types, nested structs and json tags.JSON to Python ClassGenerate Python dataclasses, Pydantic models or TypedDicts with type hints from JSON.CSV TransposeSwap rows and columns of CSV, TSV or pasted spreadsheet data, with delimiter auto-detect.Date Format ConverterConvert any date to ISO 8601, RFC 2822, Unix time and custom strftime, moment or Java patterns.ENV to JSON ConverterConvert .env files to JSON or YAML and JSON back to .env, with quotes and multiline values.File to Base64Convert any file to a Base64 string or data URI with MIME detection, line wrap and download.HTML Table to CSVExtract any table from HTML or page source to CSV, TSV or JSON, with colspan and rowspan handled.IEEE 754 Floating Point ConverterConvert decimals to 32/64-bit IEEE 754 floats: toggle bits, see hex, exact value and rounding error.INI to JSON ConverterConvert INI and CFG files to JSON and JSON back to INI, with sections, arrays and types.IP Address ConverterConvert IPv4 to decimal, hex, binary, octal and back, with class and private/public check.ISBN Converter & ValidatorConvert ISBN-10 to ISBN-13 and back, validate check digits and hyphenate, one or in bulk.JSON Flatten / UnflattenFlatten nested JSON to dot or bracket path keys, or unflatten flat keys back to nested JSON.JSON to Dart ClassTurn JSON into Dart model classes with fromJson, toJson, null safety and nested classes.JSON to Java ClassTurn JSON into Java POJOs or records with Lombok, getters/setters and Jackson or Gson annotations.JSON to Kotlin Data ClassTurn JSON into Kotlin data classes for kotlinx.serialization, Gson, Moshi or Jackson.JSON to Markdown TableTurn a JSON array of objects into a GitHub Markdown table with column picker and alignment.JSON to PHP ArrayConvert JSON to PHP array code (short [] or array()) and PHP arrays back to JSON.JSON to Rust StructTurn JSON into Rust structs with serde derives, rename attributes, Option and Vec types.JSON to SQL ConverterConvert a JSON array of objects to CREATE TABLE and INSERT statements for MySQL, Postgres, SQLite.JSON to Swift StructTurn JSON into Swift Codable structs with CodingKeys, optionals and nested types.JSON to TOML ConverterConvert JSON to clean TOML with tables, arrays of tables, inline tables and dates.JSONL to JSON ConverterConvert JSON Lines / NDJSON to a JSON array and back, with line-level error reports.Properties to YAML ConverterConvert Java .properties to nested YAML (application.yml) and YAML back to properties.PX to EM ConverterConvert pixels to em using the parent font size, and em back to px, with conversion tables.Query String to JSONConvert URL query strings to JSON with nested brackets and arrays, and JSON back to a query string.REM to PX ConverterConvert CSS rem values to pixels for any root font size, with a quick 0.25–6rem table.SQL to JSON ConverterConvert SQL INSERT statements and dumps into a JSON array of row objects, with CSV export.TSV to CSV ConverterConvert TSV to CSV and back, or between tab, comma, semicolon and pipe, with correct quoting.TypeScript to JavaScriptConvert TypeScript or TSX to clean JavaScript instantly: strip types, keep or compile JSX.XML to YAML ConverterConvert XML to clean YAML with attributes, text nodes, lists and exact error lines.YAML to XML ConverterConvert YAML to pretty, well-formed XML with custom root, attributes and array item tags.Boolean Algebra SimplifierSimplify boolean expressions or minterm lists to minimal SOP and POS with Quine-McCluskey steps.
See all 129 Data & File Format Converters →