UPPER, LOWER, LEN, CONCAT, and TEXTJOIN

Key Takeaways

  • UPPER(text) converts all letters to uppercase; LOWER(text) converts all letters to lowercase—digits and most symbols stay unchanged
  • LEN(text) returns the count of characters in a string, including spaces and punctuation
  • CONCAT joins two or more text values in order with no delimiter of its own; nest characters like " " or "-" between arguments when you need separators
  • TEXTJOIN(delimiter, ignore_empty, text1, …) inserts a delimiter between values and can skip blank cells when ignore_empty is TRUE
  • Prefer CONCAT or TEXTJOIN on modern Microsoft 365 workbooks; CONCATENATE is a legacy compatibility function with the same join idea but older syntax
Last updated: August 2026

Case, length, and joining text on MO-210

The second half of Format and modify text on Exam MO-210 focuses on normalizing case, measuring length, and building combined strings. You will use UPPER, LOWER, LEN, CONCAT, and TEXTJOIN. Projects may ask you to standardize product names, build display labels from first and last names, or assemble addresses from separate city, state, and ZIP columns. As with extraction functions, graders evaluate the formula, so the right function with the right arguments matters more than a one-off typed result.

UPPER and LOWER — standardize letter case

Syntax:

  • UPPER(text) — returns the string with all letters converted to uppercase.
  • LOWER(text) — returns the string with all letters converted to lowercase.

Digits, spaces, and most punctuation are unchanged. Only A–Z / a–z style letters flip case.

Worked example: normalize a status column

A (Status entered)B (Upper)C (Lower)
1StatusUpperLower
2pending=UPPER(A2)PENDING=LOWER(A2)pending
3On Holdfill → ON HOLDfill → on hold
4CLOSEDfill → CLOSEDfill → closed

Use UPPER when a task wants codes or statuses in all caps for matching or display. Use LOWER when you need a consistent lowercase key. MO-210 may also ask you to fill a helper column with =UPPER(A2) so later filters or lookups see uniform values.

Case does not trim spaces

=UPPER(" open ") returns OPEN with the same leading and trailing spaces. Case functions do not remove spaces; they only change letter case. If a prompt mentions cleaning spaces, that is a different skill—do not assume UPPER/LOWER will tidy the string.

LEN — count characters

Syntax: LEN(text)

LEN returns how many characters are in the string, including letters, digits, spaces, and symbols.

Worked example: validate ID length

A (Code)B (Length)
1CodeLength
2NW120845=LEN(A2)8
3SE05fill → 4
4NW 120845fill → 9

Row 4 includes a space, so the length is 9, not 8. On the exam, LEN is useful when a task asks you to show how many characters are in each cell, or when you combine LEN with LEFT/RIGHT (for example =RIGHT(A2,LEN(A2)-3) in more advanced sheets). Associate-level prompts more often ask for a straight =LEN(A2) in a helper column.

Empty cells and LEN

=LEN(A2) when A2 is truly empty returns 0. A cell that looks blank but contains a space returns 1. That distinction matters if you are checking whether a field was filled.

CONCAT — join values in order

Syntax: CONCAT(text1, [text2], …)

CONCAT stitches its arguments together left to right with no delimiter unless you supply one yourself as a text argument.

Worked example: full name from parts

A (First)B (Last)C (Full Name)
1FirstLastFull Name
2AvaChen=CONCAT(A2," ",B2)Ava Chen
3JordanLeefill → Jordan Lee

Notice the explicit " " between first and last. =CONCAT(A2,B2) would return AvaChen with no space—a common mistake when candidates forget the separator.

Worked example: build a product label

A (Category)B (Number)C (Label)
2HW88421=CONCAT(A2,"-",B2)HW-88421

You can concatenate cell references, typed strings, and results of other formulas. For example =CONCAT(UPPER(A2),"-",B2) forces the category to uppercase before joining.

TEXTJOIN — join with a delimiter and optional blanks skip

Syntax: TEXTJOIN(delimiter, ignore_empty, text1, [text2], …)

  • delimiter — the character(s) inserted between values (comma, space, hyphen, and so on).
  • ignore_emptyTRUE skips blank arguments/cells; FALSE still inserts delimiters for blanks (which can create double commas or trailing separators).
  • text1, … — individual cells, ranges, or strings to join.

Worked example: city, state, ZIP

A (City)B (State)C (ZIP)D (Address line)
2AustinTX78701=TEXTJOIN(", ",TRUE,A2,B2,C2)Austin, TX, 78701
3DenverCO=TEXTJOIN(", ",TRUE,A3,B3,C3)Denver, CO

With ignore_empty set to TRUE, the missing ZIP in row 3 does not leave a dangling comma. If you used FALSE instead, row 3 could become Denver, CO, with an extra trailing delimiter pattern depending on how blanks are treated—on MO-210, when the prompt says to ignore empty cells, choose TRUE.

Worked example: join a range with hyphens

Cells A2:C2 hold NW, 12, and 0845. Formula:

=TEXTJOIN("-",TRUE,A2:C2)NW-12-0845

TEXTJOIN accepts a range as one argument, which is often cleaner than listing every cell. CONCAT can also accept ranges in Microsoft 365, but it still will not insert delimiters between range items—you would get NW120845 unless you add separators another way. When the task wants separators between many fields, TEXTJOIN is the direct tool.

CONCAT vs TEXTJOIN vs legacy CONCATENATE

FunctionDelimiterEmpty cellsNotes for MO-210
CONCATNone unless you type one between argumentsIncludes empty text as nothing (no auto-skip logic like TEXTJOIN’s flag)Modern replacement for simple joins
TEXTJOINFirst argument applies between all valuesControlled by ignore_empty TRUE/FALSEBest for lists, addresses, multi-field labels
CONCATENATENone unless typed between argumentsSame join idea as CONCATLegacy compatibility function; still works, but Microsoft 365 materials emphasize CONCAT and TEXTJOIN

Brief contrast for the exam: CONCATENATE(A2," ",B2) and CONCAT(A2," ",B2) produce the same Ava Chen style result. Prefer CONCAT in new formulas unless a legacy workbook already uses CONCATENATE. Choose TEXTJOIN when you need one delimiter repeated between many values or when you must skip blanks with ignore_empty.

Side-by-side on the same data

First Ava, last Chen, middle name cell blank:

  • =CONCAT(A2," ",B2," ",C2)Ava Chen (extra space where the middle name is blank).
  • =TEXTJOIN(" ",TRUE,A2,B2,C2)Ava Chen (blank middle name skipped).

That ignore-empty behavior is the practical reason TEXTJOIN appears in Domain 4 tasks involving incomplete name or address parts.

Putting it together on a project sheet

A typical MO-210 scenario might give columns for first name, last name, and department code, then ask you to:

  1. Create a lowercase email local-part with =LOWER(CONCAT(A2,".",B2)).
  2. Build a badge label with =TEXTJOIN("-",TRUE,UPPER(C2),A2,B2).
  3. Report character counts with =LEN(D2) on the finished label.

Work formula-first: enter the correct function in row 2, confirm the sample result, then fill down. Keep delimiters as quoted text (" ", "-", ", "). Spread answer indices across quizzes in practice so you do not memorize letter positions—focus on what each argument does.

Master UPPER, LOWER, LEN, CONCAT, and TEXTJOIN—and know when TEXTJOIN’s delimiter and ignore_empty beat a manual CONCAT—and you complete the Format and modify text skill area for MO-210.

Test Your Knowledge

Cell A2 contains On Hold. What does =UPPER(A2) return?

A
B
C
D
Test Your Knowledge

A2 is NW120845 and A3 is NW 120845 (with a space). What do =LEN(A2) and =LEN(A3) return?

A
B
C
D
Test Your Knowledge

A2 holds Ava and B2 holds Chen. Which formula produces Ava Chen with a space between the names?

A
B
C
D
Test Your Knowledge

You join city, state, and ZIP with TEXTJOIN. Some ZIP cells are blank, and the prompt says to ignore empty cells. Which formula matches that requirement?

A
B
C
D