Stripping accents from text in Google Sheets reliably means copying the column, pasting it into a browser-based tool that combines Unicode NFD normalization with an explicit fold table for the letters Unicode cannot decompose, then pasting the cleaned result back into the sheet. The reason a one-click tool beats a chain of formulas is simple: Google Sheets has no built-in function that handles ø, ł, đ, ß, þ and a dozen related letters, because Unicode treats those characters as standalone letters with no decomposition to strip. A cell containing Łódź stays Łódź even after =REGEXREPLACE(A1, "[̀-ͯ]", ""), because the combining-mark class the regex targets is exactly what ł, ø and đ do not have. The Remove Accents from Text tool pairs the standard normalization-and-strip pass with a documented fold table for those letters, isolates true transliterations like æ to ae and ß to ss behind their own toggle, and refuses to touch non-Latin scripts so that Greek, Cyrillic, Chinese and emoji sharing the same rows are preserved byte-for-byte.

remove accents from text google sheets
How to Remove Accents from Text in Google Sheets

Why Built-In Sheet Functions Miss Half the Job

Google Sheets ships with a generous text toolkit, and almost none of it was designed for diacritic cleanup. CLEAN() only removes non-printable control characters. UPPER(), LOWER() and PROPER() preserve accents exactly as written. TRIM() collapses spaces. The closest native match is SUBSTITUTE(), and the common pattern is a long nested chain that swaps é for e, è for e, ê for e, ë for e and so on through every accented letter you happen to remember. That works for French and Spanish in small doses, becomes unreadable after five or six substitutions, and silently leaves every letter that is not accented in the strict Unicode sense untouched.

REGEXREPLACE() with a Unicode property class or a combining-mark range handles the same family more cleanly, which is what most formula-based guides recommend. It catches é, ç, ñ, ü, ö, à and their siblings because each of those is either a precomposed character that NFD normalization can split into a base letter plus a combining mark, or a sequence already containing a combining mark. It does not, and cannot, catch the letters that look accented to English speakers but are not accented in Unicode: ø, Ø, đ, Đ, ł, Ł, ħ, , ŧ, Ŧ, the dotless ı, ð, Ð, and the Nordic and Latin ligatures æ, œ and ß. The Unicode Character Database records no decomposition for any of them, so normalization alone passes them through unchanged and Łódź stays Łódź no matter how clever the formula.

The result is a familiar pattern: the first eighty percent of a contact list, product catalog or geographic dataset cleans up fine, and the remaining twenty percent is a slow, manual rescue mission that no formula can finish.

The Sheets-to-Browser Workflow That Actually Works

The pragmatic pattern for spreadsheet cleanup is to stop fighting inside the grid and move the messy column out to a tool that was built for the job. The full pipeline is short: select the column or range in Google Sheets, copy it, paste it into the tool, click once, copy the cleaned output, and paste it back into a fresh column for comparison before you overwrite the original. Pasting into a fresh column rather than over the source data lets you eyeball the change count the tool reports and roll back with a single undo if anything looks wrong, which is much harder when your only copy is inside a formula chain.

The tool accepts up to one million characters in a single paste and processes them in a single linear pass, so even a contact list with tens of thousands of rows returns immediately. Because the operation is idempotent, you can run the same block through twice and get the identical output, which makes the paste-clean-paste cycle safe to repeat while you iterate on the settings. Precomposed input like café typed as a single code point and decomposed input typed as café produce identical results, because the tool recomposes the output to NFC before returning it. That detail matters when your sheet imports data from a database that stores one form and your paste target expects the other.

Strip Accents from Google Sheets Cells in Three Minutes

  1. Select the range in Google Sheets that contains the accented or special-Latin text, press Ctrl+C (or Cmd+C on macOS), and confirm the selection in the formula bar before you copy so blank trailing cells do not pad the paste.
  2. Paste the copied text into the input area of the Remove Accents from Text tool. The page stays in your browser, so nothing is uploaded to a server or stored against an account.
  3. Decide whether ligatures and special letters like ß, þ, æ and œ should be spelled out as two letters (on by default for most data-cleaning tasks) or left intact, and decide whether non-Latin scripts should be kept untouched (default) or stripped for strict ASCII output.
  4. Click the Remove accents button and watch the change count next to the button. The count tells you exactly how many characters were modified, which is useful when you want to verify that a 5,000-row column really did clean up as expected.
  5. Copy the cleaned result from the output area and paste it into a fresh column in Google Sheets, side by side with the original, so you can spot-check rows before deleting the source.

What the Tool Removes, Folds and Preserves

Three categories of transformation run on your text, and each one has a clear rule. Diacritic stripping removes the mark from accented Latin letters so café becomes cafe, señor becomes senor and Zürich becomes Zurich. Folding rewrites the standalone letters that carry no Unicode decomposition so ø becomes o, ł becomes l, đ becomes d and Łódź becomes Lodz, which is what you need before deduplicating a contact list or building an identifier that downstream software can read as ASCII. Transliteration spells one letter as two, like æ to ae, œ to oe, ß to ss and þ to th, and is kept behind its own toggle precisely because it is a spelling change rather than an accent removal.

CategoryInput exampleOutputRule
Diacritic strippingcafécafeCombining marks removed from Latin base letters
Diacritic strippingZürichZurichCombining marks removed from Latin base letters
Folding (no Unicode decomposition)ŁódźLodzExplicit fold table verified against UnicodeData.txt
Folding (no Unicode decomposition)ø, đo, dExplicit fold table
Transliteration (toggle on)æ, œ, ß, þae, oe, ss, thOne letter rewritten as two; behind a separate toggle
Transliteration (toggle off)æ, ßæ, ßLeft intact when the toggle is switched off
Preserved non-Latinά, ё, 你, 🎉ά, ё, 你, 🎉Marks removed only from Latin base letters
Strict ASCII (toggle on)José 你好JoseOptional non-Latin strip for true ASCII-only output

The strict-ASCII toggle in the last row is off by default, because the more common requirement is to keep non-Latin data intact rather than to delete it. Switch it on only when you genuinely need every byte to land in the printable ASCII range, for example when feeding the result into a legacy database that rejects anything outside 7-bit characters.

Edge Cases That Trip Up Naive Strippers

Greek and Cyrillic letters decompose in Unicode exactly the way accented Latin does, which is the trap that catches a lot of well-meaning scripts. A naive mark-stripper that calls String.prototype.normalize("NFD") and then deletes every combining mark will quietly rewrite ά to α, έ to ε and ё to е, corrupting text in scripts it was never asked to clean. The Remove Accents from Text tool only removes marks attached to Latin base letters, so every Greek and Cyrillic grapheme passes through byte-for-byte, including Devanagari vowel signs that look like combining marks but are grammatically letters in their own script. CJK characters and emoji are preserved the same way, which matters when a single contact list mixes Portuguese names with Greek city labels and a stray birthday cake.

Idempotence is the second property worth understanding. Because the tool recomposes its output to NFC and runs the fold table once, passing the output through the tool again changes nothing. That sounds trivial, but it is the property that makes the workflow safe inside repeated pipelines: you can rerun the same block to recover from an interruption, run it through a second related tool, or pipe it into a slug generator without compounding transformations. Precomposed input like the single code point é and decomposed input like e + combining acute produce the identical output, which removes one class of bug from spreadsheets that import data from multiple sources with mixed encoding conventions.

The third edge case is honesty about what the tool is not. It is a Latin-script diacritic remover with documented transliterations, not a general transliterator: it will not romanize Cyrillic, pinyin Chinese or convert Greek to Latin letters, and specialist letters like ð and ĸ are folded by convention rather than by any Unicode rule, which the page discloses rather than hides. If you need Romanization for a non-Latin script, you are looking for a different tool, and pairing this one with a normalizer-only approach is the wrong shape of pipeline.

What to Do With the Cleaned Text

Once a column is consistent ASCII, several follow-up tasks become much simpler. Deduplication with UNIQUE() now collapses "Zürich" and "Zurich" into a single row instead of two, and VLOOKUP() matches across systems that store the same customer name in two different normalized forms. If the cleaned text is destined for a URL path or a filename, the Text To Slug tool takes the next step and produces a hyphen-separated slug ready for a CMS or a static-site generator, with explicit rules for what to do with the rare character that even this tool passes through. If the source column carried inherited formatting from a copy-pasted web page, the related guide on how to remove text formatting from Google Docs covers the in-document approach for the cells themselves, which is a useful companion step before you paste in the cleaned output so the new column does not inherit bold or coloured text from the source.

Running the cleanup outside the spreadsheet also keeps your work auditable. The tool reports an exact change count, the input and output sit side by side on the page, and nothing in the pipeline requires granting a script permission, installing an add-on, or trusting a third-party server with the contents of your customer list. For teams working under data-residency rules or simple common sense, that combination of reliability and locality is usually the deciding factor.

For a deeper look, see How to Remove Duplicate Lines in Illustrator.