Merge two files
Append, inner-join, left-join, or “only in first” to compare lists. Smart column matching helps when headers don’t quite line up.
A quiet menu-bar companion for messy spreadsheets.
No uploads. No servers. No fuss.
Try it — click to apply, click again to undo
| name | signed up |
|---|
Merging two files: pick a mode
To combine two files, Rowmate needs to know which rows belong together. It does that by matching on a shared column.
In these example files, that shared column is email. In your own data it could be anything: a customer ID, a phone number, a company name, a LinkedIn URL.
If the columns are named differently in each file, Rowmate lets you pair them manually.
Dedupe by LinkedIn — seven URLs, three people
| # | name | verdict |
|---|
Alice's four URL variations all collapse into one (uppercase, country prefix, tracking parameters, and trailing slash are all ignored). Jörg's two rows also collapse, because the encoded characters (%C3%B6) decode back to the accented version. Charlie stays separate once the #about part is stripped.
Open the menu bar popover, drop in your files, select the changes to apply, and get the processed file back. No setup, no learning curve.
Append, inner-join, left-join, or “only in first” to compare lists. Smart column matching helps when headers don’t quite line up.
Find exact or fuzzy duplicates by any column. Flag them for review or remove them outright.
Clean emails, tidy LinkedIn URLs, normalize phone numbers, parse mixed date formats, fix title case. The fiddly stuff, done in one pass.
Across one column or every column. Literal text, case-sensitive or not, with whole-cell-only mode for exact matches.
Hash, redact, or partial-mask any column before you share. Email, phone, name. Keep the shape, hide the values.
Strip whitespace, drop empty rows, remove columns you don’t need. The cleanup nobody wants to do by hand.
Keep or remove rows that match a column condition. Equals, contains, starts with, ends with, is empty.
Break a large file into smaller pieces (100 rows or more). Every piece keeps the header row.
Save a whole pipeline as a preset. With one selected, just drop files in and Rowmate processes them automatically, no extra clicks.
Most CSV cleaners want you to upload your data to a website. Rowmate doesn't. It's a small, native macOS app that runs on your machine, so your file never leaves the desk.
/in/ links
Yes. Rowmate runs entirely on your Mac. No file you open in Rowmate is ever uploaded, copied, or sent anywhere. No analytics, no telemetry, no account.
CSV files (comma, tab, or semicolon separated) all work. Rowmate figures out which separator your file uses, handles tricky cases like cells with line breaks inside them, and saves the result so it opens cleanly in Excel and Google Sheets, including accented characters.
Yes. Run Normalize > LinkedIn URL on the column and Rowmate strips tracking junk and country prefixes, leaving clean URLs like https://linkedin.com/in/alice. Deduplicate and Merge also recognise different versions of the same URL as the same person automatically, so duplicates get caught even without running Normalize first.
Rowmate is built for everyday spreadsheets, the kind you'd open in Numbers or Excel without a second thought. Files up to a few hundred megabytes process comfortably; multi-gigabyte CSVs are out of scope for this version.
No. Every operation is deterministic and runs locally on your Mac. Same input, same result, every time. Your CSVs are never sent to a server, never used to train any model, and never seen by anyone but you.
Never. Rowmate always writes the result to a new file next to the original, so your source data is left exactly as it was.
No. Rowmate is a native macOS app and only runs on a Mac.
Yes. One price on the Mac App Store, no subscriptions, no in-app purchases.