[nonimo]
EN
Download

Redact personal data in Excel before AI reads it

· Written and maintained by Nonimo

To redact names in Excel ahead of any upload to an AI tool, delete them from a copy of the file rather than hiding or shading them. First make the hidden columns visible again, then the rows, then any sheet tucked out of sight; delete each column your question can do without, swap any names that have to remain for codes whose key lives in another file, clear notes and comments, and let Microsoft’s Document Inspector have the last look.

The reason for the order is simple. An upload sends the workbook, not the view you have on screen. OpenAI’s help page on data analysis with ChatGPT says that for some tasks it “writes and runs Python code”, with access to the files made available to the session, and code reads the file. A hidden sheet, a hidden row, a cell formatted to look blank and the copy of the rows behind a pivot table all go with it.

In Australia the regulator’s position is plain. The OAIC’s guidance on commercially available AI products says that “as a matter of best practice, the OAIC recommends that organisations do not enter personal information, and particularly sensitive information, into publicly available generative AI tools”. A client list is personal information on almost every row, which is why the work happens before the upload. The broader question of which AI tools fit the Privacy Act has a guide of its own.

How to redact names in Excel without leaving a copy in the file

Most spreadsheets that end up in a chatbot are ordinary working files: a practice’s client list, a payroll export, a debtor ledger, a roster, a tenancy schedule. They have been sorted, filtered, hidden and tidied by several people, and each of those actions left something behind. The sequence below is built so that nothing you cannot see survives the clean.

StepWhere it is in ExcelWhy
Work on a copyFile, Save Asthe Inspector’s removals cannot always be undone
Show hidden sheetsa sheet tab, right click, Unhidea hidden sheet is saved with the rest
Show hidden rows and columnsselect either side, right click, Unhidehiding changes the view only
Drop unused columnsright click the column heading, Deletea missing column cannot leak
Find names in text and notesCtrl+F, Options, Within: Workbooknames hide inside sentences too
Clear notes and commentsReview, Comments, Deleteeach one is stored in the file
Inspect the copyFile, Info, Check for Issues, Inspect Documentcatches headers, footers and leftovers

Windows menus, worded as on Microsoft Support (Australia).

Each step is explained further down, with what Microsoft says about it. If you use Excel on a Mac, the menus are arranged differently and some names change, so follow Microsoft’s page for your version. The logic of the order does not change: reveal, then remove, then inspect.

Two shortcuts people often reach for do not belong in the table. Shading a cell black changes its colour only. Printing the sheet to PDF and drawing boxes over it moves the problem into a new format, which our guide to redacting a PDF shows can keep every covered word underneath.

What a workbook carries beyond the visible grid

Behind the .xlsx extension sits a compressed package of small XML parts. Every worksheet gets a part of its own, whether or not Excel displays it, and one more part, the workbook part, records which sheets exist and whether each is visible, hidden or very hidden. Our test workbook, described in the next section, unzipped into eleven parts, and three of them were worksheets even though Excel showed a single tab.

Microsoft’s Document Inspector page for Excel lists what a workbook can carry out of sight. Most of it is harmless in an ordinary file and awkward in a file that is about to leave the office:

Where it sitsWhat you see in ExcelWhat the file keeps
Hidden sheetno tabevery cell on it
Very hidden sheetno tab and no Unhide entryevery cell on it
Hidden row or columna double lineevery value in it
Cell with the ;;; formatan empty cellthe value, shown in the formula bar
Notes and commentsa small markerthe text and who wrote it
Header and footernothing in Normal viewwhatever was typed there
Pivot tablethe summarya cached copy of the source rows

Source: Microsoft Support (Australia), Document Inspector, Hide or Unhide worksheets and Display or hide cell values; Microsoft Learn, XlSheetVisibility.

Workbook properties, such as the author and the last person to save, belong to a different job, and the guide to removing metadata covers them for Word, PDF and the Office files around them.

Sheets Excel will not list

A hidden sheet is the easy case. Microsoft’s page on hiding worksheets notes that the data on one is out of sight, yet formulas in other sheets and other workbooks can still refer to it. It comes back through right click on any tab, then Unhide. The dialog lists every hidden sheet by name.

That list has a blind spot: a very hidden sheet is never offered in it. Microsoft’s reference for sheet visibility describes the setting as one that “hides the object so that the only way for you to make it visible again is by setting this property to True (the user cannot make the object visible)”. A macro or a template can set it, and anyone who did not build the workbook has no reason to suspect it.

A cell that looks empty

Excel lets you hide a value without deleting it. Microsoft’s page on the custom number format made of three semicolons explains the effect: “When you hide a value in a cell, the cell appears to be empty. However, the formula bar still contains the value.” White text on a white cell and a black fill behind black text do the same job by colour.

None of these is redaction. They are presentation settings, and the value sits in the file exactly as it was typed. In our test the hidden value was a mobile number, and it came out of the file with nothing to show that anyone had tried to hide it.

Excel, cell E1

Looks empty. The number shows only in the formula bar.

The file, cell E1

The whole mobile number, read out by pandas.

One cell of our invented test workbook, formatted with three semicolons, 28 September 2026

A pivot table shows a summary and can keep the detail. Microsoft’s Document Inspector page lists “cached data for PivotTables, PivotCharts, slicers, timelines, and Cube formulas that might not be visible” among the things it finds but cannot remove.

Its page on PivotTable options adds a note under Save source data with file: “This setting should not be used to manage data privacy.” The same page describes Enable show details, which lets anyone drill down to the detail data on a new worksheet.

Links to other workbooks work the other way round. The inspector notes that when a workbook draws data from another file, “the names of the worksheets containing that data are then saved with the workbooks but may not be visible”. A sheet named after a client, in a file you never meant to send, can travel inside the one you did.

Hiding is not removing: one test file, two readers

We built a small workbook to test the claim instead of repeating it. Its only visible tab, called Summary, counts jobs for three services: 12 tax returns, 9 BAS lodgements and 20 bookkeeping jobs.

On that sheet, column C holds the name of the client behind each service and is hidden. Row 4 is hidden. Cell E1 holds a mobile number formatted with three semicolons. A second sheet, Staff, is hidden and holds an employee’s name, tax file number and mobile. A third, Export, is very hidden and holds a client’s name and email address. Every name and number is invented.

In Excel the file opens as one tab with two columns and two rows of figures. We then read the same file with pandas, a widely used Python library for opening spreadsheets, asking it for every sheet. It returned all three sheets, the hidden column, the hidden row and the blank looking cell, in full.

How to redact names in Excel, seen twice: the view in Excel against what a file reader returns On the left, what Excel displays for the invented test workbook: one tab called Summary with the columns Service and Jobs and two rows, Tax return 12 and BAS lodgement 9. On the right, what pandas returned from the same file: the Summary sheet with the hidden Owner column holding three client names, the hidden Bookkeeping row and the mobile number from the blank looking cell; the hidden Staff sheet with an employee name, a tax file number and a mobile; and the very hidden Export sheet with a client name and email address. What Excel shows What pandas returned Tab: Summary ServiceJobs Tax return12 BAS lodgement9 Column C, row 4, cell E1: nothing to see Summary: the hidden Owner column, three client names Summary: the hidden Bookkeeping row Summary, cell E1: a mobile number Staff (hidden): name, TFN, mobile Export (very hidden): client name and email address 3 sheets, 0 details left out
Invented test workbook built with openpyxl and read with pandas, 28 September 2026

pandas did nothing clever. It opened the file, found three worksheets in the part that lists them, and read each one. Hidden and very hidden are labels in that list, and a reader that is not Excel has no reason to act on them. That is the gap between the spreadsheet you look at and the one you send.

What ChatGPT’s own help pages say about spreadsheets

OpenAI’s page on data analysis lists “Spreadsheets, such as .xls, .xlsx, and .csv files” among the supported types, and says that the environment “can display pandas DataFrames as interactive tables when that format is useful”. Which sheets the code opens for a given question depends on the code it writes, and we have not tested what any chatbot does with our file. What we can say is that the whole file is available to it.

Copilot in Excel is a different arrangement with its own terms, and our guide to Copilot and confidential information sets out what Microsoft says it can reach. For what OpenAI keeps from an upload, and for how long, read the guide to what ChatGPT saves.

The detention report that carried 9,250 people

Australia has already had its lesson on data that travels with a spreadsheet. On 10 February 2014 the then Department of Immigration and Border Protection published the Word version of a monthly detention statistics report on its website. The OAIC’s own motion investigation report records that staff had “copied charts and tables directly from the Microsoft Excel spreadsheet”, embedding the workbook behind them. That spreadsheet held the personal information of approximately 9,250 asylum seekers.

9,250
asylum seekers whose details sat in a spreadsheet embedded behind charts in a published report. OAIC investigation into DIBP, 2014

The Guardian Australia told the department at 9.15am on 19 February, and the report was down by 10.00am. The Commissioner found breaches of IPP 4 and IPP 11, and noted that departmental policy already said to paste graphs into Word as pictures. A report drafted in Word gathers a layer of its own while colleagues review it, and tracked edits and reviewer comments stay in a Word file until someone settles them.

Nobody meant to publish those rows. The chart carried them, which is exactly how a pivot table or a hidden sheet carries rows into an upload. Word files have their own hiding places once a report is drafted, and the guide to redacting in Word goes through them.

Redact an Excel spreadsheet on a copy, in this order

Start with Save As and give the copy a name that says what it is for. Microsoft’s own instructions for the Document Inspector begin the same way, because some of what it removes cannot be brought back with Undo. The original stays in your records system, untouched.

Order matters more than any single step. Delete what you can see before revealing what is hidden, and the hidden material survives the clean without anyone judging it. So the first pass shows everything, the second removes, and the inspector checks both.

Unhide everything, then decide

For sheets, right click any tab, pick Unhide and select as many as you need in the list. For columns and rows, select the ones on either side, right click, then Unhide; or, in Microsoft’s words, “double-click the double line between the two columns where hidden columns exist”.

Filters need clearing too: the inspector page warns that “Workbooks can have active Autofilters or table filters that might cause cached or hidden data to be saved with the workbook.”

Once everything is on screen, read it as the person receiving the file would. A sheet called Old, a column headed Notes, a row of totals with a surname in it: each one is now a decision instead of a surprise. What the task needs stays; everything else goes in the next step.

Delete columns your question never touches

This step carries most of the load. If you want an AI tool to total fees by service, find slow payers or draft a roster, it rarely needs the name, mobile, email, tax file number or date of birth of anyone on the list. Right click the column heading and choose Delete, which removes the column from the sheet rather than emptying the cells.

Payroll and accounting exports are the files where this matters most, because they arrive with every field the system holds. An accountant’s practice meets them weekly, and Nonimo for accountants starts from the identifiers those schedules carry. A whole sheet with nothing the question relies on goes the same way: right click the tab and choose Delete.

Names inside text, notes and comments

Names do not only live in a Name column. They turn up in a free text column (called Joe back, Maree to sign), in notes, in comments and in sheet tabs.

Microsoft’s page on Find and Replace sets out the options that matter here, and it adds that “only Formulas are available on the Replace tab”. That makes Find the tool for this job: search for each surname in turn and correct what turns up by hand.

Find optionSet it toWhy
WithinWorkbookone pass over every sheet you have unhidden
Look inValues, then Notes, then Commentseach is a separate search
Match entire cell contentsoffa surname inside a sentence still matches

Source: Microsoft Support (Australia), Find or replace text and numbers on a worksheet.

Notes and comments are deleted with a right click on the cell and Delete Note or Delete Comment, or from the Review tab under Comments. A sheet tab named after a person is renamed with a right click and Rename. Headers and footers need a separate look, because Microsoft says they “are displayed only in Page Layout view, Print Preview, and on printed pages”.

Run the Document Inspector last

The path is File, Info, Check for Issues, Inspect Document. Microsoft splits what it looks at in a workbook into two groups:

The inspectorIn an Excel workbook
detects and can clearcomments, hidden rows and columns, hidden worksheets, headers and footers, document properties, invisible content, custom XML data
finds but leaves to youexternal links, embedded files, macros, cached PivotTable data, scenarios, filters, hidden names

From Microsoft Support (Australia): Remove hidden data and personal information by inspecting documents, presentations, or workbooks.

Two of Microsoft’s warnings deserve reading before you press Remove All. The first reads: “If you remove hidden rows, columns, or worksheets that contain data, you might change the results of the calculations or formulas in your workbook.” The second is that hidden rows or columns that are part of a table header or a PivotTable are not removed but unhidden.

That is why the inspector goes last: by then you have already decided what should stay, and it confirms that nothing else is left.

Swap names for codes and keep the key in another file

Sometimes the AI needs to tell rows apart. A question about which clients paid late, or which staff worked the most weekends, is useless without some way to know that rows 4 and 19 are the same person. The answer is a code in place of the name, with the list that links the two kept somewhere the upload never goes.

Redact an Excel spreadsheet with codes: the working copy and the key file On the left, the key file that stays on your computer, a two column table in which every client name sits next to its code, C001, C002 or C003. On the right, the working copy that goes to the AI tool, where the name column has been replaced by the code column and holds only values, with the service and fee columns unchanged. An arrow from the key to the copy is labelled XLOOKUP, then Paste Values, and a line between them is marked never uploaded together. Key file: stays with you Working copy: may go to AI Client nameCode (first client)C001 (second client)C002 (third client)C003 Saved in a different folder XLOOKUP, then Paste Values CodeServiceFee C001Tax return440 C002BAS lodgement275 C003Bookkeeping165 No names, no formulas
Codes in the working copy, names only in the key file. The two files are never uploaded together

In practice: build the key in a new workbook, one row per person, with a code that says nothing about them. C001 works; the client’s initials do not, because initials and a suburb can be enough to point to someone. In the working copy, add a column that looks each name up in the key with XLOOKUP, which Microsoft describes as searching “a range or an array” and returning “the item corresponding to the first match it finds”.

Next, freeze the lookups: copy the column, then paste over it with the Values option. Microsoft’s paste options define Values as “Formula results, without formatting or comments”, which leaves plain codes with no formula pointing at the key. Delete the name column, save, and store the key file somewhere the working copy never goes. A pivot table pasted as values into a fresh workbook becomes a plain summary with no cache of source rows behind it.

Codes you can reverse are pseudonymisation, not de-identification, and while you hold the key the rows are still about identifiable people. The guide de-identified vs pseudonymised explains the difference and how the Privacy Act treats each. What the codes change is what the AI provider receives.

One of a kind: when a row points to a person without a name

A spreadsheet is unusually good at identifying people by combination. Each column narrows the field. In a list of a few hundred clients, the only one born in a particular year, living in a particular postcode and working as, say, a harbour pilot is a person, name or no name. The OAIC’s de-identification guide asks whether data “contains unique or uncommon characteristics (quasi-identifiers) that could enable re-identification”.

Excel can tell you which rows stand alone. Add a helper column with COUNTIFS, which Microsoft says “applies criteria to cells across multiple ranges and counts the number of times all criteria are met”, counting how many rows share the same birth year, postcode and occupation. Any row with a count of 1 is unique in your own file, before anyone compares it with anything else.

ColumnAs exportedBefore an upload
Date of birtha full dateage band, 60 to 69
Postcodefour digitsstate or region
Occupationthe exact titlea broad group
Salaryto the dollarrounded to a band
Start datea full dateyear only

Techniques from the OAIC’s De-identification and the Privacy Act, which lists choice of variables and rounding among them. Rows are illustrative.

Then generalise the columns that make rows unique, run the count again and stop when no row stands alone, or when the only remaining unique rows are ones you can delete. Delete the helper column before you save. The list of Australian identifiers to take out goes through the direct ones column by column, from the TFN to the CRN.

Payroll exports, debtor lists and the Privacy Act

The OAIC’s de-identification guide describes two steps: “The first is the removal of direct identifiers”, and the second alters other information or adds controls, or both. Here the first is the column deletions and the second is the combination check. A sheet that has had only the first is not de-identified, and most offices do not need it to be: the aim is to give the AI tool less, not to publish the file.

Some columns carry their own rules on top of the Privacy Act. A payroll export with a TFN column is TFN information for as long as the column exists, and the rules for TFN recipients are strict about disclosure; the Word guide’s section on the TFN Rule sets out what the OAIC says.

A question about payroll rarely needs that column, so it is the first to go. A debtor ledger of sole traders and households is personal information on every row, and the same deletions apply to it.

Health and disability records are the other sensitive case. An NDIS provider’s roster or a participant spreadsheet can carry health information in a column headed Notes, and our guide for NDIS progress notes lists what comes out of that kind of record first.

Check the finished copy from outside Excel

Excel is the wrong tool for checking what Excel hides, so the final check happens outside it. Make a second copy of the cleaned workbook and change its extension from .xlsx to .zip. Open the zip and look in the folder xl, then worksheets: there is one file for each sheet in the workbook, whatever its state. In our test file they were sheet1.xml, sheet2.xml and sheet3.xml, against a single tab in Excel.

Redact an Excel spreadsheet: checking the sheets inside the .xlsx file The test workbook renamed to .zip and opened. The folder xl, worksheets holds three files, sheet1, sheet2 and sheet3. The file xl, workbook.xml lists them as Summary with state visible, Staff with state hidden and Export with state veryHidden. Excel showed one tab. xl/worksheets/ xl/workbook.xml sheet1.xml sheet2.xml sheet3.xml 3 sheet files, 1 tab in Excel name="Summary"state="visible" name="Staff"state="hidden" name="Export"state="veryHidden"
Our invented test workbook opened as a zip: the part list and the state of each sheet, 28 September 2026

The file xl/workbook.xml opens in any text editor and gives each sheet’s name alongside a state attribute. After a clean, each sheet should read visible and there should be no more sheet files than tabs. If a very hidden sheet turns up here, open the original in Excel, find out what it holds and delete it properly before you build the copy again. Delete the zip once you have looked.

Then go back to the cleaned copy in Excel for one last search. Use Find with Within set to Workbook, and look for the surnames of two or three people you know were on the original list, in values, then notes, then comments. A result means a missed cell. No result, together with a clean workbook.xml, is a sound check for an office without specialist software.

If the file has already gone

Stop, and work out what the uploaded copy contained, not what the original contains now. Open the file you actually sent, reveal everything and compare it with the tables above.

Clearing the chat takes it off your own list of conversations; what the provider retains afterwards turns on its terms and on your plan. Write down the file, the time and the tool straight away, since that record is where any breach assessment begins. Whether the upload counts as a notifiable data breach needs an assessment of its own, and the breach guide on our main site sets out the test.

Nonimo and the same client list

In Nonimo you select the Excel file in Finder on a Mac or File Explorer on Windows and press the Nonimo key. The clipboard then holds the sheet’s text with names and numbers swapped for labels, which is what the chatbot gets; paste its answer back and the names return on your side.

Drop the workbook on the Nonimo window and you can also download the same Excel file with those details covered; the test below shows the text, as Nonimo returned it. Hidden rows are read, and formulas come through as their stored results.

A one sheet test client list, with row 3 hidden and the fee worked out by a formula:

BEFORE (the sheet as read from the file; row 3 is hidden in Excel)
Client	Mobile	Email	TFN	Service	Hours	Fee
Maree Quintrell			000 000 000	Tax return	4	440
Tamsin Achterberg	0491 570 156			BAS lodgement	2.5	275
Mirela Quennell		mirela.quennell@example.com		Bookkeeping	1.5	165

AFTER (Nonimo, what goes on the clipboard)
Client	Mobile	Email	TFN	Service	Hours	Fee
[PERSON_1]			[TFN_1]	Tax return	4	440
[PERSON_2]	[PHONE_1]			BAS lodgement	2.5	275
[PERSON_3]		[EMAIL_1]		Bookkeeping	1.5	165

The hidden row was covered too, and the fee column came through as 440, then 275, then 165: the figures Excel saved. Services and hours stayed for the model to work with. The link back to each client stays on your computer, so this is pseudonymisation. Our security page covers what Nonimo stores on your computer, plus the usage count, with no text in it, that it reports to us once a day.

Sources

Nonimo is the software that does this on your own computer: it masks client names and IDs before your text reaches ChatGPT. No account needed, and the app does it without your files leaving your machine.

Common questions

How do you redact names in Excel?

Delete them from a copy rather than hiding or shading them. Reveal hidden columns, rows and sheets first, take out any column the AI will not use, change names that must stay into codes listed in a separate file, clear notes and comments, then run File, Info, Check for Issues, Inspect Document. Nonimo can cover what is left in the sheet's text before it goes into the chatbot.

Does hiding a column in Excel remove the data?

It does not. Excel keeps a hidden column in the saved workbook, and Microsoft points out that whoever gets the file might unhide rows, columns or sheets and read what is in them. When we opened our test workbook with pandas, a common Python library for spreadsheets, the hidden column of client names came out in full. Unhide the column and delete it if you want it gone.

Can an AI tool read a hidden sheet in an uploaded workbook?

It can if the code that opens the file reads every sheet, and nothing in the file stops it. OpenAI's help centre explains that for some analysis jobs ChatGPT generates Python and executes it against the files you upload. Reading our test workbook, pandas handed back the hidden sheet and the very hidden one along with the visible tab. Treat anything saved in the workbook as sent, whatever Excel shows on screen.

What makes an Excel sheet very hidden?

Its visibility property has been set to xlSheetVeryHidden. Microsoft's reference for that setting says the only way to show the sheet again is to change the property back, so Excel's Unhide dialog never offers it. It is usually put there by a macro or a template, and the person who receives the workbook has no cause to go looking. Software that opens the file directly still finds it, which is why you check the workbook part of a copy before you upload anything.

Does a black cell fill redact a spreadsheet?

No. Fill colour, white font and the three semicolon number format change how a cell looks, not what it holds. Microsoft says a value hidden by that format leaves the cell looking empty while the formula bar still contains it. Anything reading the file gets the value. Delete the contents, or replace them with a code, before the workbook leaves your desk.

Do pivot tables keep a copy of the source rows?

They can. Microsoft's Document Inspector page puts cached PivotTable, PivotChart, slicer and timeline data on its list of items it can detect but not delete, and Microsoft's note on the option that keeps source data with the file says it is not a privacy tool. When the AI only needs the totals, copy the pivot table, paste it with Paste Values into a fresh workbook and upload that file instead.

Does swapping names for codes take a sheet outside the Privacy Act?

Usually not while you keep the key. The OAIC's guide on de-identification describes removing direct identifiers as only the first of two steps, and codes you can reverse leave the rows about identifiable people in your hands. Codes still reduce what the AI provider receives, which is the point before an upload. Keep the lookup table in a different file and never upload it.

What does Nonimo hand back from a spreadsheet?

Text to paste, and a covered copy of the workbook. Drop the .xlsx on the Nonimo window and you get the sheet's text with names, phone numbers and similar details replaced by labels, which is what the chatbot gets, and you can download the same Excel file with those details covered. Hidden rows are included, and each formula comes through as the value Excel saved for it. Working from an older .xls? A quick Save As to .xlsx and it's ready.