CSV Merge Tool
v1.1.0Merges multiple CSV files into a single dataset with exact or fuzzy deduplication (configurable similarity threshold 0 to 100, default 85). Columns auto-map by normalized header name across files, with bulk rename updating every matching column at once. Pre-dedupe transforms include row blacklist by substring match, URL or path collapse at named segments, and URL normalization; all processing happens in the browser.
This tool sends nothing over the network. Everything you enter is processed on your device and never reaches our servers.
Documentation
This CSV merge tool combines multiple CSV files into a single deduplicated dataset. Each file is parsed entirely in the browser, listed with its own row and column counts, and never uploaded to a server.
Columns from different files map together by normalized header name, so headers such as first_name, FirstName, and "First Name" can share one output column. Renaming one shared header updates every matching column at once, which matters when the same header repeats across many files: a header shared across 12 files needs to be renamed only in that one place rather than 12.
Deduplication runs in one of three modes. Exact match collapses rows whose key values are identical. Fuzzy match scores similarity with normalized Levenshtein distance against a tunable threshold, defaulting to 85, which tolerates small typos and case differences without merging genuinely different values. No deduplication keeps every row. The key can be one or more chosen output columns, or the entire row when no columns are selected as the key.
Further options trim whitespace, ignore case or punctuation, combine the non-key column values of merged duplicates rather than discarding them, and append a column recording which source file each row came from.
Two transforms run before deduplication and reshape values so that near-duplicate rows collapse correctly. Row Blacklist terms, entered one per line or comma-separated, drop any row whose values contain a listed substring. Path Collapse truncates a URL or file path at a named segment: comma-separated segments such as "blog, author, tag, category" rewrite example.com/blog/article-title/ and example.com/blog/page/2/ down to example.com/blog/. Path Collapse runs before the Blacklist, so blacklisting the same segment name drops the whole collapsed section in one pass.
URL / Path Normalization applies when the key column holds URLs that differ only in protocol, www prefix, domain, query string, or file extension. It strips those parts, trims the path to a configurable depth limit, replaces the final "/" with a custom separator, swaps hyphens and underscores for spaces, and applies Title Case. With the defaults, https://example.com/help/baking-instructions/print-guide.pdf reduces to "Print Guide", or to "Baking Instructions: Print Guide" at a depth limit of 1.
The merge reports total input rows, rows removed by the blacklist, unique output rows, duplicates removed, and column count, each formatted with thousands separators, alongside a preview of the first output rows. Export writes RFC 4180-compliant CSV: quoted fields, escaped double quotes, and CRLF line endings.
A CSV merge tool earns its keep wherever the same kind of record is exported from more than one system with different column names, casing, or unavoidable duplicates. The scenarios below combine column mapping, fuzzy matching, and the pre-dedupe transforms into practical workflows.
- Marketing operations: Combine email lists from webinar, newsletter, and lead magnet exports. Map first_name, FirstName, and "First Name" to one column, then dedupe on email at fuzzy threshold 95 to catch trailing whitespace and case differences.
- Sales and CRM hygiene: Merge contact exports from multiple CRM platforms and partner spreadsheets. Set the dedupe key to email and phone, combine non-key column values, and recover the union of notes and tags from duplicate records.
- E-commerce catalog cleanup: Stitch product feeds from multiple suppliers into one master catalog. Drop supplier-specific columns, merge SKU and "Item Code" under one name, and use exact dedupe on SKU.
- Survey analysis: Append responses across several survey rounds. Apply fuzzy matching at 80 to collapse near-duplicate free-text answers such as "United States" and "USA" before building pivot tables.
- Event registration: Reconcile registrations from ticketing platforms, online forms, and paper sign-in sheets. A source-file column on the merged output shows where each attendee came from.
- SEO and content audits: Merge sitemaps, indexing reports, and analytics exports across many domains. Path Collapse with segments like blog, tag, and category reduces entire sections to a single row, and URL Path Normalization dedupes by page type instead of exact URL.
- Research and data preparation: Build clean inputs for notebooks or BI tools. Normalize column names, drop irrelevant columns, and remove duplicates introduced by joins or repeated exports.
- Migration and onboarding: Consolidate user records from legacy systems before importing into a new platform. Dedupe on email at threshold 90 to catch typos that would otherwise create double accounts on day one.
Inputs, outputs, and what the CSV Merge Tool computes
What the CSV Merge Tool asks for and what it returns, as a plain list. Defaults, units, and ranges are the ones the form loads with.
Inputs
- Exact match (fastest, identical values only) / Fuzzy match (similarity threshold below) / No deduplication (just merge) · default: Exact match (fastest, identical values only)
- Fuzzy similarity threshold (0 to 100) (numeric input) · default: 85 · range: 0 to 100
- Combine non-key column values from duplicates (semicolon separated) · default: on
- Trim whitespace before comparing · default: on
- Case-sensitive matching · default: off
- Ignore punctuation when matching · default: off
- Add source-file column to output · default: off
- Preview row count (numeric input) · default: 25 · range: 1 to 500
- Blacklist values
- Collapse path segments (text input)
- Enable URL / path normalization · default: off
- Strip protocol (http://, https://, ftp://, etc.) · default: on
- Strip leading "www." · default: on
- Strip domain (keep only the path) · default: on
- Strip query string and fragment (?, #) · default: on
- Strip file extension (.pdf, .html, .xml, .php, etc.) · default: on
- Path depth limit (parent directories to keep before the final segment) (numeric input) · default: 0 · minimum: -1
- Replace "-" and "_" with spaces · default: on
- Replace last "/" with (text input) · default: :
- Apply Title Case to the final value · default: on
Controls
Reset · Export CSV