The Scenario
The agency has been collecting UK phone numbers for a client across three separate campaigns over the past two years — trade show captures, web form submissions, and a purchased list from a third-party provider. The data landed in Excel at various points, got merged badly, and now lives in a single workbook with 10,000 rows in column A. Some numbers are duplicated. Some are invalid. An unknown percentage are TPS-registered.
The client presentation is next week. They've asked for a "clean, compliant, ready-to-dial" list as a deliverable. You've never actually looked at this workbook closely enough to know what's in it.
The bad version:
- Download the workbook, run a deduplication tool, realize the deduplication merged rows by phone number format rather than actual number identity (so
07700 900123and447700900123appear twice in the output as different entries) - Look for a bulk TPS checker, find one that processes 100 numbers per upload, do the math on 10,000 rows, close the tab
- Ask the client if they can push the delivery date back while you figure out an automated approach, get a polite reply that the calling campaign launches Monday regardless
There's no version of this that involves doing it one row at a time. The only question is what tool actually handles the scale.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Excel workbook. It reads the full dataset, understands the structure, and uses its built-in TPSCheck integration to validate, deduplicate, and classify the entire list in one pass. No separate tools, no upload limits, no manual steps.
For every number in column A of my sheet, run a TPSCheck lookup and write 'remove' into column B if the number is TPS-registered or invalid, and 'keep' if it is a valid non-TPS number with the network provider in column C
What You Get
- Column B: "remove" for any TPS-registered or invalid number, "keep" for clean entries
- Column C: network provider name for every "keep" entry (e.g., EE, O2, Vodafone, BT)
- Numbers that return an API error get "lookup error" in column B so you can identify and re-run them without losing your place in the list
What If the Data Is Not Quite Ready
The list has duplicate numbers stored in different formats
07700900123 and +447700900123 are the same number, but a naive deduplicate treats them as different. Normalize first:
Normalize all numbers in column A to E.164 format (overwrite column A), then remove any duplicate rows where column A matches exactly, then run a TPSCheck screen on each remaining number and write 'remove' into column B if TPS-registered or invalid, 'keep' if clear and valid, with the network provider in column C — put the final unique row count in cell F1
Some entries are clearly invalid and should be skipped before the API call
Running API lookups on obviously invalid entries (fewer than 10 digits, containing letters) wastes calls. Skip them first:
For each number in column A, write "skip" in column B if the entry is clearly not a phone number (fewer than 10 digits, contains letters). For all remaining entries, run a TPSCheck lookup and write 'remove' into column B if TPS-registered or invalid, and 'keep' if clear and valid, with the network provider in column C
The numbers came from multiple source worksheets that need to be merged first
Combine all phone numbers from column A of the "Source A," "Source B," and "Source C" worksheets into a new "Master" worksheet in column A, normalize each to E.164 format, deduplicate, then run a TPSCheck check on every unique number and write 'remove' into column B if TPS-registered or invalid, 'keep' if clear and valid, with the line type in column C and network in column D — add a count of removals in cell F1
Full audit-ready cleanup in one prompt
In the "Raw Contact List" worksheet: normalize all numbers in column A to E.164, flag duplicates with "duplicate" in column E (keep the first occurrence), run TPSCheck on all non-duplicate entries and write 'remove' in column B if TPS-registered or invalid, 'keep' if clear and valid, the line type in column C, and the network in column D — then write a three-line summary in cells H1:H3 showing total rows checked, total kept, and total removed
Give the client a single file with a built-in audit trail — ask for the cleanup, the classification, and the summary in one prompt rather than three separate operations.
Try It
Open the raw contact list in Excel and Get the 7-day free trial of SheetXAI, then ask it to normalize, deduplicate, and screen the numbers against TPSCheck before client delivery. For related workflows, see bulk TPS screening for a campaign or enriching numbers with full carrier metadata.
