PROPER vs UPPER vs LOWER: the three text-case functions
Three one-argument functions that reformat text case: UPPER shouts everything, LOWER quiets everything, and PROPER capitalizes the first letter of each word. The first two are foolproof; PROPER is the one that mangles names like McDonald and acronyms like NASA, so it needs a second look.
The differences at a glance
| PROPER | UPPER | LOWER | |
|---|---|---|---|
| What it does | First letter of every word → capital | Every letter → capital | Every letter → lowercase |
| Example: "aDA loVELACE" | Ada Lovelace | ADA LOVELACE | ada lovelace |
| Typical use | Names, titles, place names | Codes, acronyms, headers | Emails, IDs, normalizing for match |
| Known gotcha | Breaks McDonald→Mcdonald, NASA→Nasa, o'brien→O'Brien wrongly | None | None |
| Digits & symbols | Unchanged (word boundary resets after them) | Unchanged | Unchanged |
| Compatibility | Universal | Universal | Universal — identical in every version we test |
Which should you use?
- UPPER — Standardizing codes, SKUs, state abbreviations, or headings where all-caps is intended. Also handy to force case-insensitive comparisons: UPPER(a)=UPPER(b).
- LOWER — Normalizing emails, usernames or keys before matching/deduping, so 'Bob@X.com' and 'bob@x.com' line up.
- PROPER — Tidying free-typed names and titles into title case — but review the output, since it capitalizes after every non-letter and won't respect McNames, acronyms, or particles like 'van'/'de'.
Compatibility (from executed tests)
All three execute identically across every version of all three apps we test — no dialect differences. The only real pitfall is PROPER's naive word-boundary rule: it capitalizes the letter after any non-letter character, so hyphenated and apostrophe names and embedded acronyms come out wrong and usually need a manual fix or a SUBSTITUTE pass afterward.
Example formulas
| PROPER — title case | =PROPER(A2) |
| UPPER — all caps | =UPPER(A2) |
| LOWER — normalize an email for matching | =LOWER(A2) |
Full per-version details on each function page: PROPER · UPPER · LOWER.
See also: How to change text case · TRIM vs CLEAN.