How to Change Text to UPPERCASE or lowercase in Excel
Three ways to convert text case in Excel: UPPER and LOWER formulas, Flash Fill, and a free macro that converts in place across a whole column.
2026-04-28
The "everything is in the wrong case" problem
You inherited a column of names in ALL CAPS. Or a column of email addresses in mixed case where dedup fails because Alex@Example.com and alex@example.com are technically different strings. Excel has functions for both directions but using them on a column of data is a multi-step shuffle. Here are the three real options.
TL;DR — Key takeaways
=UPPER()and=LOWER()work but require a helper column and paste-as-values cleanup.- Flash Fill (Ctrl+E) learns the pattern and works for visible columns, less reliably for long ones.
- A free VBA macro does the conversion in place with one prompt: pick UPPERCASE or lowercase.
- For Title Case, see the dedicated Convert Text to Proper Case tool.
Method 1: =UPPER and =LOWER formulas
=UPPER(A2)
=LOWER(A2)
Drop in a helper column, fill down, copy, paste-as-values back, delete helper. Same workflow you'd use for =PROPER.
The catch: four steps. Plenty of room for misclick.
Method 2: Flash Fill (Ctrl+E)
Type the converted version of the first cell next to the source. Press Ctrl+E. Excel learns the pattern and fills.
The catch: Flash Fill can guess wrong. For UPPERCASE/lowercase it usually works, but on long lists with subtle variations it sometimes makes a mess.
Method 3: The free VBA macro
Download Change Case to UPPERCASE or lowercase. Free .xlsm with one macro.
- Select the range.
- Alt + F8, pick the macro, click Run.
- Type 1 for UPPERCASE or 2 for lowercase.
- Done.
In place. No helper column. No formulas.
When to use which
| Scenario | Best method |
|---|---|
| One-off small column | UPPER/LOWER formula |
| Long column, simple pattern | Flash Fill |
| Recurring cleanup of imports | VBA macro |
| Mixed case to Title Case (proper) | Use Proper Case macro instead |
A common scenario: pre-dedupe email normalization
Email addresses are case-insensitive per RFC, but Excel treats Alex@Example.com and alex@example.com as different strings. Before deduping a contact list:
- Select the email column.
- Run Change Case to UPPERCASE or lowercase with mode
2(lowercase). - Run Remove Duplicates by Multiple Columns using the email column.
Without step 1, dedupe misses the case variants. With step 1, you get a clean dedupe.
Frequently asked questions
Will it convert numbers and dates?
No. The macro only touches text-string cells. Numbers, dates, and booleans are skipped because case doesn't apply.
What about formula cells?
Skipped. Changing case on a formula doesn't affect the result. To convert formula results, freeze them first with Convert Formulas to Values.
Does it handle international characters correctly?
VBA's UCase and LCase handle Latin-script accents (café to CAFÉ). Cyrillic, Greek, and most other scripts also handle. Edge cases like German ß to SS may not transform exactly per Unicode spec.
Can I undo it?
Yes, Ctrl/Cmd + Z right after running.
What to do next
If your real need is Title Case (capitalize first letter of each word), use Convert Text to Proper Case. For mixed-case inconsistency in a name list, the Proper Case tool is usually what you want, not UPPER or lower.