Spreadsheet · Batch · No-upload

Excel Name Conflict Fixer

Copying a sheet keeps asking "A formula or sheet you want to move or copy contains the name '…', which already exists", again and again? The cause is defined names: often hundreds of hidden, broken (#REF!) or other-workbook names that Name Manager doesn't even show. Drop your .xlsx or .xlsm files here. You'll see every name, including the hidden ones, and which names clash between files. Then you can remove the junk and download a clean copy. Nothing is uploaded, and no macros are needed.

1. Add Excel files

Drag .xlsx / .xlsm files here or click to browse
Add both workbooks (the one you copy from and the one you copy into) to see the clashing names · max 100 MB/file, 20 files · .xls must be saved as .xlsx first

2. Choose what to clean

Only the list of defined names inside the file changes. Sheets, formulas, formatting, charts and macros are copied across untouched. Keep your original as a backup anyway.

3. Result

// Cleaned files will appear here

Where all these names come from

A defined name labels a cell, a range or a formula, such as TaxRate for Inputs!$B$2. Excel copies the names a sheet uses along with the sheet. When the destination workbook already has a name with that spelling, it stops and asks, once per name. Workbooks that have been passed around for years carry hundreds of names nobody created on purpose. Some are hidden by the add-in that made them. Some point at sheets that were deleted, so they now read #REF!. Some point at workbooks on a drive that no longer exists. Each copy between such files multiplies them, which is why the prompt turns into a loop. Why Excel keeps saying the name already exists walks through it step by step.

Why not just use Name Manager?

Name Manager doesn't list hidden names. The usual advice, a short VBA macro that unhides or deletes them, needs macros enabled, which many company PCs and Excel for the web don't allow. With tens of thousands of names, Name Manager can also become too slow to open at all. This tool reads the list of names straight from the file instead. It shows every one, hidden or not, and edits only that list.

FAQ

Which option should I pick?

Start with only broken names, which is the default. It's safe because those names already point at nothing, and it usually removes most of the prompts. If prompts remain, look at the hidden names in the report. Names like __123Graph_… (leftovers from Lotus 1-2-3 charts) or long lists from a data add-in you no longer use are safe to remove. Remove other-workbook names only if you don't need those links. Formulas that relied on them will show #NAME?, which tells you where they were used.

What does "clashing between files" mean?

When you add more than one workbook, the report lists the workbook-level names that exist in two or more of them. Each of these triggers one "already exists" question when you copy a sheet that uses it from one file into the other. Names that clash with a different definition are the dangerous ones. If you click Yes, the copied sheet silently starts using the destination's range.

Does this work with .xls, Google Sheets or LibreOffice files?

It reads .xlsx, .xlsm and Excel templates (.xltx, .xltm). Open an old .xls in Excel and save it as .xlsx first. Google Sheets: File → Download → Microsoft Excel (.xlsx). LibreOffice: Save As → Excel 2007-365. Macros in .xlsm files are kept as they are.

Is my file uploaded?

No. The file is unpacked in your browser (an .xlsx is a ZIP of XML files), the name list in xl/workbook.xml is edited, and the file is repacked on your device. You can confirm in your browser's Network tab that nothing is sent.