Validate IBANs, emails, phone numbers and IDs in a table
Half the errors in a customer list are not blanks but wrong values: an IBAN with one mistyped digit, an email without the “@”, a ZIP code that lost its leading zero, a phone number with a letter in it. A filter cannot find these — a checksum is not something you can write as a condition — and eyeballing a hundred thousand rows is hopeless.
Free for personal use. “Data” → “Validate values” or the column header menu. Windows version — 3.5 MB, no installation: details. Organizations: license.
How to run a check
- Open the table — CSV, Excel, DBF, XML, JSON or a SQLite database.
- Choose “Data” → “Validate values”. Rules are suggested automatically: columns named IBAN, EMAIL, PHONE, ZIP and the like are recognised by name, and by content when the name tells nothing.
- Press “Validate”. A new first column, “Check”, appears: in rows with problems it lists what is wrong, in the others it is empty. The dialog shows a summary per rule with examples.
- “Show rows with errors” leaves only those rows on the screen.
The “Check” column is live: fix a value and its error disappears. It can be exported along with the table, grouped or filtered like any other column.


What is checked out of the box
| Format | What is checked |
|---|---|
| IBAN | country code, length for that country and the mod-97 check digits; spaces do not matter |
| SWIFT / BIC | 8 or 11 characters: bank, country, location, optional branch |
| Payment card number | 12–19 digits and the Luhn check digit |
| US Social Security Number | 9 digits; area numbers 000, 666 and 9xx, group 00 and serial 0000 are never issued |
| US EIN | 9 digits and a prefix the IRS actually uses |
| EU / UK VAT number | a known country prefix and 2–12 characters — the shape only, there is no checksum check |
| ISBN | 10 or 13 digits and the check digit |
| National personal and tax IDs | Canada SIN, UK NINO, Spain DNI/NIE, Italy Codice Fiscale, France NIR, Poland PESEL and NIP, Germany Steuer-ID, India Aadhaar and PAN, Brazil CPF and CNPJ, Italy Partita IVA, France SIREN/SIRET — see personal IDs and tax IDs |
| exactly one “@”, a domain with a dot and a real top-level part, no spaces | |
| Phone (international, US / Canada) | 7–15 digits with an optional “+”; for the US, 10 digits with an optional leading 1 and valid area and exchange codes |
| US ZIP, UK postcode, Canadian postal code | the shape of each; a US ZIP that lost its leading zero is restored |
| Date, number, integer | a real calendar date; 1,234.56 and 1.234,56 both read as numbers |
Any rule can carry extra conditions: the value is required, its length is within a range, or it must come from a list — for example a status of “open” or “closed”.
If the column in the file is numeric, leading zeros are already gone — a ZIP of 02139 became 2139. The check knows that and does not report it as an error.
Your own formats
Every company has codes of its own: a customer number, an order reference, an employee ID. Describe them yourself in “My formats”, in one of three ways:
- A pattern of parts — no regular expressions: “2 letters, a dash, 6 digits”. An example of a matching value is shown right away, and the “Test a value” box lets you paste a string from your file and see whether it fits.
- A regular expression — for those who know them.
- One of — a compound format: “phone or email”. Built-in formats with checksums and your own both fit in.
Formats allow a little slack: spaces and dashes are ignored and letter case does not matter. Formats are stored in the browser and can be exported as a file — colleagues load it and validate against the same rules. The file holds descriptions only, never data.
Why checksums matter
A format check (“9 digits”) only catches values of the wrong shape. A checksum catches the common human error — one transposed or mistyped digit — which still has the right shape. IBAN and card numbers carry such a digit by design, and so does an ISBN; a US SSN or EIN has no checksum, so only the issuing rules can be checked, and a VAT number is checked for shape only. The tool says exactly this in each format’s hint instead of promising more than it verifies.
FAQ
Does the file go to a server?
No. Validation runs in your browser tab, and the page technically cannot send the file’s contents to any other address.
Will I have to set the rules up every month?
No. Rules are remembered by column name: next month’s export with the same columns opens with the checks already set up.
Is an IBAN that passes the check a real, open account?
No. A passing IBAN is well formed and its check digits match, which rules out typos. Whether the account exists is something only the bank can tell.
Why is a VAT number only checked for its shape?
Each country has its own checksum and several change from time to time. A wrong algorithm would flag genuine numbers as invalid, which is worse than letting a bad one through, so only the country prefix and the shape are checked.
Can I check that an end date is not before the start date?
Yes, with the filter expression language: END_DATE < START_DATE shows exactly those rows.
Free for personal use. Your file is not uploaded to a server. Windows version — 3.5 MB, no installation: details. Organizations: license.