What Most People Miss About How to Use UPPER Function in Excel

Yes, UPPER(A1) converts text to uppercase in Excel. But if your result still shows lowercase letters or #VALUE! errors, you’re likely feeding it numbers, dates, or cells with non-breaking spaces — and Excel won’t tell you why.

The Setup

You’re auditing a vendor contact list for Alibaba’s internal procurement team. Marketing sent over a CSV with inconsistent casing — some names are all lowercase, others mixed, and two entries even have trailing spaces. You need clean, standardized uppercase names before importing into the ERP system.

A: First NameB: Last NameC: CompanyD: Email
liamzhangnova tech incliam.zhang@novatech.com
SarahChenAcme Corpsarah.chen@acmecorp.com
jamesO’ReillyQuantum Dynamicsjames.o'reilly@qdynamics.net
MayakumarStellar Labsmaya.kumar@stellarlabs.io
davidLEEVertex Solutionsdavid.lee@vertexsol.co
TinaNguyenOrion Grouptina.nguyen@orion-group.org
robertsmithFusionWave Systemsrobert.smith@fusionwave.ai
ElenaGarciaZenith Innovationselena.garcia@zenithinnovate.com

The Challenge

You need every name in columns A and B converted to ALL CAPS — but not just any caps. The apostrophe in “O’Reilly” must survive. The email in column D? Leave it alone (lowercase domains matter for some systems). And “Vertex Solutions” in C3 has a stray non-breaking space before “Solutions” — invisible to the eye, lethal to UPPER().

Worse: if you type =UPPER(A1) in E1 and copy down, cell E5 returns #VALUE! because A5 contains a number (not text) — but you don’t see that until row 5. And Excel won’t flag it in the status bar. It just fails quietly.

Walking Through It

Start in cell E1. Type =UPPER(A1). Press Enter. You’ll see “LIAM”. Good. Now copy that formula down to E8. Look at E5. It says #VALUE!.

Click on A5. It looks like “david” — but double-click to edit. See the tiny dot before “david”? That’s Alt+0160 — a non-breaking space. Excel treats that as a character, but UPPER() chokes on it when combined with numeric content or certain Unicode points.

Fix it with TRIM first: in E1, change the formula to =UPPER(TRIM(A1)). Then copy down. Still #VALUE! in E5? Check A5 again — now press F2, then Ctrl+A, then Ctrl+C, and paste into Notepad. You’ll see “45200” — not text. So A5 isn’t text. It’s a number formatted as General. UPPER only works on text.

So force it: =UPPER(TEXT(A1,"@")). That wraps any input — number, date, or text — into a string Excel can safely uppercase.

Before (A1:A8)After =UPPER(TRIM(A1))Fixed =UPPER(TEXT(A1,"@"))
liamLIAMLIAM
SarahSARAHSARAH
jamesJAMESJAMES
MayaMAYAMAYA
david#VALUE!DAVID
TinaTINATINA
robertROBERTROBERT
ElenaELENAELENA

Now do the same for last names in column F: =UPPER(TEXT(B1,"@")). For company names in G: same formula. Skip column D — emails stay lowercase unless you *really* need them uppercase (and most mail servers reject uppercase local parts).

Surprising tip: UPPER() doesn’t affect numbers or symbols — so “O’Reilly” becomes “O’REILLY”, not “O'REILLY”. The curly apostrophe survives. Straight quotes? Same thing. But if you pasted from Word, you might get smart quotes — those *do* convert cleanly.

The Result

Here’s your final cleaned dataset — ready for import:

First NameLast NameCompanyEmail
LIAMZHANGNOVA TECH INCliam.zhang@novatech.com
SARAHCHENACME CORPsarah.chen@acmecorp.com
JAMESO’REILLYQUANTUM DYNAMICSjames.o'reilly@qdynamics.net
MAYAKUMARSTELLAR LABSmaya.kumar@stellarlabs.io
DAVIDLEEVERTEX SOLUTIONSdavid.lee@vertexsol.co
TINANGUYENORION GROUPtina.nguyen@orion-group.org
ROBERTSMITHFUSIONWAVE SYSTEMSrobert.smith@fusionwave.ai
ELENAGARCIAZENITH INNOVATIONSelena.garcia@zenithinnovate.com

What Could Go Wrong

Here are the three mistakes I saw in four different teams last week — all leading to rework and delayed imports:

SymptomCauseFix
#VALUE! appears only in some rowsMixed data types — numbers, dates, or TRUE/FALSE values in the source columnWrap with TEXT(...,"@"): =UPPER(TEXT(A1,"@"))
Uppercase output still has lowercase lettersNon-breaking spaces (Alt+0160) or zero-width characters in source cellsPre-clean with SUBSTITUTE: =UPPER(SUBSTITUTE(TRIM(A1),CHAR(160)," "))
Apostrophes turn into question marks or disappearSource data copied from PDF or web — contains Unicode curly quotes or em-dashesUse CLEAN() first: =UPPER(CLEAN(TRIM(A1))). Then manually check 2–3 rows.

Pro move: Before running UPPER(), select your source range (A1:B8), press Alt+H+F+J to open Find & Replace, type Ctrl+J in 'Find what' (line break), leave 'Replace with' blank, and click Replace All — this removes hidden line feeds that UPPER() can’t handle.

Emily Watson

Emily Watson

Emily is an expert in workplace culture and team dynamics. Her articles help professionals navigate interpersonal challenges and build better coworker relationships.