56 free macros indexedAll toolsHow to runBlogGitHub ↗

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.

  1. Select the range.
  2. Alt + F8, pick the macro, click Run.
  3. Type 1 for UPPERCASE or 2 for lowercase.
  4. Done.

In place. No helper column. No formulas.

When to use which

ScenarioBest method
One-off small columnUPPER/LOWER formula
Long column, simple patternFlash Fill
Recurring cleanup of importsVBA 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:

  1. Select the email column.
  2. Run Change Case to UPPERCASE or lowercase with mode 2 (lowercase).
  3. 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.