🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel UPPER, LOWER & PROPER — Change Case Without Mangling Your Data

|

Excel UPPER, LOWER & PROPER — Change Case Without Mangling Your Data

TL;DR — Three functions that re-case text and nothing else. UPPER(text)ALL CAPS. LOWER(text)all lowercase. PROPER(text)Title Case Each Word. The thing worth knowing before you use them: Excel's = comparison and its lookups are already case-insensitive, so you almost never need these just to match text. Case matters for display and for exporting to systems that do care (SQL keys, another app). And PROPER has a sharp edge — it capitalizes every word's first letter, so it turns McDonald into Mcdonald.

=UPPER("north-east")     ' -> "NORTH-EAST"
=LOWER("[email protected]")   ' -> "[email protected]"
=PROPER("mcdonald's farm")   ' -> "Mcdonald'S Farm"   (note the mangling!)

These are the simplest text functions in Excel — one argument, obvious output — which is exactly why they get misused. The skill isn't how they work; it's knowing when case is your problem at all, and when reaching for PROPER will quietly corrupt names.

What you'll learn

  • Why you rarely need UPPER/LOWER to compare text — Excel ignores case
  • Where case genuinely matters: display, exports, and EXACT
  • The PROPER trap: it mangles McDonald, iPhone, O'Brien, IBM
  • Why these three don't clean text — pair them with TRIM
  • The judgment call: normalise for machines, don't "beautify" in place

The mental model: case is a lens, not stored meaning

Here's the reframe that prevents most misuse. In Excel, the case of text is a display choice, not part of the value's identity. "Apple", "APPLE", and "apple" are three different strings, but Excel's everyday comparison treats them as equal:

="Apple"="APPLE"                 ' -> TRUE  (case-insensitive)
=VLOOKUP("apple", A:B, 2, FALSE) ' matches "Apple" fine
=COUNTIF(A:A, "north")           ' counts "North", "NORTH", "north" alike

So UPPER/LOWER/PROPER are not matching tools. They're a lens you apply on the way out — to make a report read consistently, or to hand data to a system that is case-sensitive. Keep that framing and you'll stop reaching for them to "fix" comparisons that were never broken.

When case actually matters

There are three real reasons to re-case text, and it's worth being precise about them so you don't cargo-cult UPPER onto everything:

  1. Display consistency. A column of NEW YORK, new york, New York should read one way in a finished report. PROPER or UPPER gives you that.
  2. Export to a case-sensitive target. SQL identifiers, file systems, some APIs, and other apps do distinguish case. Normalise with LOWER (or UPPER) before you send, so [email protected] and [email protected] don't become two keys downstream.
  3. Case-sensitive matching inside Excel — which needs EXACT, not =. =EXACT(A2, "USD") is TRUE only for exactly "USD". When you genuinely need to tell id from ID, EXACT is the tool; UPPER/LOWER are how you remove case as a factor before a normal compare.

If none of those apply, you probably don't need to change case at all.

The rule that bites: PROPER capitalizes every word

PROPER looks perfect for cleaning up name and address columns, and for plain lowercase input it is. But it follows a dumb rule — capitalize the first letter after any non-letter character, lowercase everything else — and that rule wrecks anything with internal capitals or unusual punctuation:

=PROPER("mcdonald")    ' -> "Mcdonald"   (should be McDonald)
=PROPER("iPhone 15")   ' -> "Iphone 15"  (brand ruined)
=PROPER("o'brien")     ' -> "O'Brien"    ... but "d'angelo" -> "D'Angelo" (ok-ish)
=PROPER("IBM")         ' -> "Ibm"        (acronym destroyed)
=PROPER("john mcbride-smith")  ' -> "John Mcbride-Smith"

The failure mode is consistent: any word whose correct capitalization isn't "first letter up, rest down" comes out wrong, and PROPER gives you no way to whitelist exceptions. That's why PROPER is a first pass, not a finisher. On a column of genuinely lowercase free text it saves time; on real-world names, brands, and acronyms it introduces errors you then have to hunt down.

For the common fixes, you layer SUBSTITUTE on top — =SUBSTITUTE(PROPER(A2), "Mcdonald", "McDonald") — or, in Excel 365, a LAMBDA with a small exception list. But the honest judgment is: if capitalization accuracy matters (customer-facing names, legal text), review PROPER's output rather than trusting it.

These don't clean — pair them with TRIM

A subtle point: UPPER/LOWER/PROPER change case and nothing else. They don't strip the trailing spaces or the CHAR(160) gremlins that imported text carries. If your column is dirty and inconsistently cased, do both, cleaning first:

=PROPER(TRIM(A2))
=LOWER(TRIM(CLEAN(A2)))

Case-changing on top of dirty data just gives you consistently-cased dirty data. See TRIM & CLEAN for the cleanup half.

The judgment call

Ask what the re-casing is for. Machine target (a key, an export, a dedup) → UPPER or LOWER to remove case as a variable, applied in a helper column, pasted as values. Human displayPROPER for a quick pass, but review it if names or brands are involved, because it will produce Mcdonald. Comparison → you almost certainly don't need any of these; Excel already ignores case, and if you need case to matter, that's EXACT. The one thing not to do is scatter UPPER through formulas out of superstition that lookups are case-sensitive. They aren't.

How ExcelMaster helps

"Title-case these names but keep McDonald, iPhone, and the acronyms intact" is exactly the request PROPER can't handle alone. ExcelMaster builds the real thing — PROPER as a base with a SUBSTITUTE/LAMBDA exception list for the brands and names in your data — so you get clean display case without the Iphone and Ibm mangling. Describe the casing rule you actually want; it writes the version that survives contact with real names.

Frequently asked questions

Do I need UPPER or LOWER to compare text in Excel?

No. Excel's = operator and functions like VLOOKUP, XLOOKUP, and COUNTIF are case-insensitive, so "Apple"="APPLE" is already TRUE. Use UPPER/ LOWER only to display text consistently or to export to a case-sensitive system. For case-sensitive matching, use EXACT.

Why does PROPER capitalize the wrong letters?

PROPER capitalizes the first letter after every non-letter character and lowercases the rest, so it can't know that McDonald, iPhone, or IBM have internal capitals. It returns Mcdonald, Iphone, and Ibm. Treat PROPER as a first pass and correct the exceptions with SUBSTITUTE.

How do I capitalize just the first letter of a sentence?

PROPER capitalizes every word, which isn't what you want for sentence case. Use =UPPER(LEFT(A2,1)) & LOWER(MID(A2,2,LEN(A2))) to upper-case only the first character and lower-case the rest.

How do I make proper case keep names like McDonald correct?

Layer a correction on top: =SUBSTITUTE(PROPER(A2), "Mcdonald", "McDonald"), one SUBSTITUTE per exception. For many exceptions in Excel 365, wrap the logic in a LAMBDA with a lookup list rather than nesting substitutes by hand.

Does UPPER or LOWER remove spaces or clean text?

No. They only change letter case; trailing spaces, CHAR(160), and control characters survive untouched. Clean first with TRIM/CLEAN, e.g. =LOWER(TRIM(A2)).

Tested in

Tested in: Excel 365 (Windows 11) — last verified 2026-07-06.

Related guides: Excel TRIM & CLEAN · Excel LEN · Excel SUBSTITUTE & REPLACE · Excel TEXT Function