// name, relationship, phone, address — untangled
One messy line.
Five clean columns.
Paste lines like "Lisa Deaner -mother. 07956 282210. 11 Gardnor Mansions, Church Row. NW3 6UR" or drop a spreadsheet — whether it's one messy column or already split across separate Name/Phone/Address-ish columns. Delint splits or cleans each row into Name, Relationship, Phone, Address, and Postcode. Nothing leaves your browser.
or drag a .csv / .xlsx file here — or just paste below, one entry per line
What gets split
- Name — everything before the relationship word (or the " -" separator, if no known relationship word is found)
- Relationship — matched against a list of common relationship words (mother, father, husband, baby, carer, etc.), so it doesn't need a dash in a fixed position — "Davies-mother8 Walpole…" and "Husband - Apt 20…" both split correctly; parenthetical notes like "(Doris Hugh's daughter)" stay attached
- Phone — any UK-looking phone number found anywhere in the line — spaces, dots, dashes, or a +44 prefix are all handled, and it works whether the phone comes before or after the address; output is always reformatted to +44; if a row has both a mobile and a landline, the mobile is used
- Address — whatever's left once the name, relationship, phone, and postcode are pulled out; multi-line addresses (line breaks instead of commas) are joined with commas automatically
- Postcode — the UK postcode pattern found in the line, pulled into its own column regardless of where it sits
- Status — flags any row where a phone, postcode, or relationship word wasn't found, or where more than one phone number was spotted, so you can spot-check just those rows
Questions
What if a line doesn't match this pattern exactly?
This tool matches on a few strong signals — a UK postcode, a UK-looking phone number, and a relationship word (or a " -" dash if no relationship word is found) — rather than requiring an exact template or a fixed field order. If one of those signals is genuinely missing from a row, it's still split as best it can be and flagged in the Status column, so you can spot-check and fix just those rows instead of the whole file.
Does the relationship separator have to be a dash?
No — it first checks for a known relationship word (mother, father, husband, wife, daughter, son, baby, carer, and similar), wherever it falls in the line, dash or no dash. That covers most real-world variations: "Name -relationship", "Name relationship" with no dash at all, or even a relationship word glued straight onto the next word with a typo. Only if none of those words are found does it fall back to looking for a " -" dash instead.
What counts as a "UK-looking" phone number, and why +44?
Any run of digits (allowing spaces, dots, dashes, or a +44 prefix) that comes out to 10 or 11 digits starting with 0 once the punctuation is stripped — covering mobiles (07…) and landlines (01…/02…/0800 etc.) written in most common formats. Every matched number is output as +44 (the leading trunk 0 replaced with "+44 ", keeping the rest of the number's existing grouping) so the column is consistent regardless of how each row originally wrote it. If a row has more than one phone number, a mobile is preferred over a landline; if neither is a mobile, the first one found is used — either way the Status column notes any extra numbers so nothing gets lost quietly.
My spreadsheet doesn't have a header row — will it lose the first entry?
It shouldn't: when you upload a file, this tool checks whether row 1 actually looks like a contact entry (has a postcode or phone number in it) rather than a label, and unticks "First row is a header" automatically if so. The checkbox is always visible after upload, so you can override it either way if the guess is wrong.
What if Name, Phone, and Address are already in separate columns?
Upload the file and switch to "Already split across columns" (this is picked automatically if your header row has recognisable names like "Name", "Phone", "Address"). Then map each of the five fields to the matching column, or "— none —" if it doesn't have one. A Phone column that isn't perfectly clean still gets the number pulled out of it, and if there's no separate Postcode column but there is an Address column, the postcode is extracted from the address text automatically. Any columns you don't map (notes, IDs, etc.) are kept as-is in the export.
Does anything get uploaded anywhere?
No. Parsing happens entirely in your browser with JavaScript. Nothing you paste or upload is sent to a server.