Excel UPPER Function
UPPER converts text to all uppercase letters in Excel. See syntax, examples, and what happens when you feed it numbers or dates.
UPPER converts every letter in a text string to its uppercase form. It returns a new text value with lowercase letters capitalized, while numbers, punctuation, and spaces pass through unchanged. The part beginners miss: feed UPPER a date or a formatted number, and you get a plain text serial number back, not the formatted value you expected.
Available in: Excel 365, Excel 2021, Excel 2019, Excel 2016, and earlier versions. UPPER has been part of Excel since its earliest releases, so compatibility is never a concern.
Syntax
=UPPER(text)
| Parameter | Required | Description |
|---|---|---|
text | Yes | The text you want converted. Can be a text string in quotes, a cell reference, or a formula that returns text. |
Basic Example
An order log has product codes typed inconsistently, some in lowercase, some mixed case. Before matching them against a master inventory list, you standardize the case.
=UPPER(B2)
// B2 = the product code as entered, e.g. "wd-2201"
UPPER reads whatever is in B2 and returns it with every letter capitalized. "wd-2201" becomes "WD-2201". The hyphen and digits don't change because UPPER only touches letters.
How UPPER Works
Only letters change
Numbers, spaces, and punctuation pass through untouched. =UPPER("order #4521-b") returns "ORDER #4521-B". Notice the digits and the hash symbol stay exactly as typed; only the letter "b" gets capitalized.
Numbers and dates convert to text
If the input is a number or a date, UPPER converts it to text first, and that strips any formatting. A date cell showing 3/15/2026 is stored internally as the serial number 46096. Run UPPER on that cell and you get "46096" back as plain text, not the date you were expecting.
UPPER will silently discard date and number formatting. If you need to force uppercase on a formatted value like a date or a currency figure, wrap it in TEXT first: =UPPER(TEXT(A2,"mmm dd, yyyy")). Feeding the raw cell directly into UPPER returns the serial number as text instead.
UPPER doesn't touch the original cell
The formula returns a new value in whatever cell holds it. It never overwrites the source. If you need the uppercase version to replace the original data permanently, copy the UPPER results and use Paste Special > Values Only over the source column.
Common Use Cases
Standardizing product codes for exact-match lookups
Inventory codes come in from different systems with inconsistent case and stray spaces. Clean both before comparing them.
=UPPER(TRIM(B2))
// TRIM removes leading and trailing spaces
// UPPER forces consistent case so XLOOKUP or VLOOKUP matches reliably
Building all-caps labels for a printed report
A regional sales summary pulls city names from a data entry sheet where staff typed them in mixed case. The printed header needs consistent capitals.
=UPPER(C2) // returns "CHICAGO" from a source cell containing "Chicago"
Capitalizing just the first letter of a sentence
Customer feedback comments get typed in all lowercase. You want a clean first letter without capitalizing every word the way PROPER would.
=REPLACE(C2,1,1,UPPER(LEFT(C2,1)))
// LEFT(C2,1) grabs the first character
// UPPER capitalizes that single character
// REPLACE swaps the capitalized letter back into position 1 of the original string
Comparing text values regardless of case
Two columns list city names entered by different people, one typed "Chicago", the other "CHICAGO". You need to flag whether they actually match.
=IF(UPPER(A2)=UPPER(B2),"Match","No match")
// Converts both sides to the same case before comparing
// Avoids a false "No match" caused only by capitalization differences
Handling Errors
UPPER rarely generates its own error. It accepts text, numbers, and logical values, and converts all of them to text without complaint. Errors you see are almost always inherited from whatever the argument points to.
Common causes of a propagated error:
- The referenced cell already contains an error, like
#N/Aor#REF!, and UPPER just passes it through. - A lookup formula feeding UPPER (VLOOKUP, XLOOKUP, INDEX/MATCH) failed to find a match upstream.
- The cell reference itself is broken, often after rows or columns were deleted.
=IFERROR(UPPER(A2), "Check source data")
Only wrap UPPER in IFERROR when the source cell might genuinely error out, such as a lookup result feeding into it. Wrapping a plain text or number reference in IFERROR adds nothing since there's no error to catch.
Notes & Gotchas
What does the UPPER function do in Excel?
UPPER converts every lowercase letter in a text string to its uppercase equivalent. It ignores numbers, punctuation, and spaces, and it returns the result as a new value without altering the original cell.
How do you use the UPPER function in Excel?
Type =UPPER( followed by a cell reference or a text string in quotes, then close the parenthesis. For example, =UPPER(A2) returns the contents of A2 in all capitals, or =UPPER("chicago") returns "CHICAGO" directly from typed text.
What is the shortcut to convert text to uppercase in Excel?
There's no built-in keyboard shortcut for changing text case in Excel, unlike Word's Shift+F3. The closest options are a UPPER formula in a helper column, or Flash Fill after typing one uppercase example manually.
How do I convert lowercase to uppercase in Excel without using a formula?
Flash Fill is the fastest formula-free method. Type the uppercase version of your first entry in the column next to your data, press Ctrl+E, and Excel detects the pattern and fills the rest automatically.
What is the difference between UPPER, LOWER, and PROPER functions in Excel?
UPPER capitalizes every letter. LOWER converts every letter to lowercase. PROPER capitalizes only the first letter of each word. PROPER is the riskiest of the three: it capitalizes every word without exception, including short words like "of" or "the" that most style guides keep lowercase, and it treats apostrophes as word boundaries the same way it treats spaces. That mangles possessives like "mike's" into "Mike'S", and it flattens prefixes like "mcdonald" into "Mcdonald" instead of "McDonald". It happens to get a name like "o'brien" right, returning "O'Brien," but that's a coincidence of the same mechanism, not PROPER understanding surnames.
Why does UPPER return a serial number instead of a formatted date?
Because UPPER converts its input to text before doing anything else, and a date is stored internally as a number. Run UPPER on a date cell and you'll get something like "46096" as text, not "3/15/2026". Wrap the date in TEXT before UPPER touches it: =UPPER(TEXT(A2,"mmm dd, yyyy")).
Does UPPER change the original cell data?
No. UPPER only returns a value in the cell holding the formula. The source cell stays exactly as typed. To make the change permanent, copy the UPPER results and use Paste Special > Values Only over the original column.
Related Functions
| Function | Use this when... |
|---|---|
LOWER | You need every letter converted to lowercase instead of uppercase. |
PROPER | You need only the first letter of each word capitalized, not the whole string. |
TEXT | You need to preserve number or date formatting before running it through UPPER. |
Related Functions
Excel CONCATENATE Function
CONCATENATE combines text from multiple cells into a single cell. It still works, but Microsoft recommends TEXTJOIN or CONCAT for anything new.
Excel FIND Function
FIND locates the position of one text string inside another, character by character. It's case-sensitive and doesn't support wildcards, which trips up a lot of people who reach for it expecting SEARCH-like flexibility.
Excel LEFT Function
LEFT pulls a specific number of characters from the beginning of a cell's text. It's the go-to function for splitting codes, IDs, and names apart without a formula that breaks the moment your data shifts.
Excel LEN Function
LEN measures the length of whatever is in a cell, character by character. It's the fastest way to catch stray spaces, mismatched codes, and bad data imports before they break something downstream.