Mastering Text Functions in DAX
Analytics can be numerically driven, but what actually makes data legible is text. DAX text functions are the set of tools for cleaning, formatting, merging, and reshaping string data in Power BI. These functions help take raw data and make it into reports that are sharper, easier to comprehend, and far easier to utilize, be it by fixing mixed-up names, pulling out product codes, or generating dynamic titles, clean labels, or exporting data as text.
1.Understanding DAX Text Functions
When dealing with string values in Power BI, DAX text functions prove useful. For your reports to be readable and user-friendly, you can apply them to clean, format, split, join, and unpivot text. Common uses include removing unnecessary spaces, pulling text, concatenating columns to create sentences, and creating dynamic image labels.
Categories of DAX Text Functions:
| Category | Functions | Purpose |
| Case Conversion | UPPER, LOWER | Convert to upper/lowercase. |
| Trimming & Cleaning | TRIM | Remove extra spaces. |
| Extraction | LEFT, RIGHT, FIND | Extract or find substrings. |
| Concatenation | CONCATENATE, CONCATENATEX, COMBINEVALUES, REPT | Join text; COMBINEVALUES = delimited; REPT = repeat. |
| Length & Comparison | LEN, EXACT | Length or exact (case‑sensitive) match. |
| Formatting & Replacement | FORMAT, FIXED, REPLACE, VALUE | Format/replace text; VALUE = number. |
| Other | UNICHAR, UNICODE | character from code; code point. |
We’ll go over 18 DAX text functions in this guide with:
• Syntax: how it is written
• Example: actual DAX from our sample dataset;
• Outcome: Before and After (from Power BI output)
A sample table named Data from our dataset is used in all examples.
2.Functions and Their Description
COMBINEVALUES
Combines the given set of operands using a specified delimiter.

Example:
Country|City = COMBINEVALUES("|", Data[Country], Data[City])Outcome:

CONCATENATE
Join two text strings into one text string.

Example:
FullName Concat = CONCATENATE(Data[FirstName], Data[LastName])Outcome:

CONCATENATEX
Evaluates expression for each row on the table, then returns the concatenation of those values in a single string result, separated by the specified delimiter.

Example:
Cities List = CONCATENATEX(VALUES(Data[City]), Data[City], ", ")Outcome:

EXACT
Checks whether two text strings are the same and returns TRUE or FALSE. EXACT is case-sensitive.

Example:
Exact City Match = EXACT( TRIM(Data[City]), TRIM(Data[UPPER City]) )Outcome:

FIND
Return the starting position of one text string within another text string. FIND is case-sensitive.

Example:
FIND BI = FIND("BI", Data[Notes], 1, BLANK())Outcome:

FIXED
Rounds a number to the specified number of decimals and returns the result as text with optional commas.

Example:
Formatted to 2 decimals with separators:
Amount Fixed (Text) = FIXED( Data[Amount], 2, FALSE ) → e.g., 1,234.50 (locale-aware).Rounded to nearest thousand, no separators:
Amount K (Text) = FIXED( Data[Amount], -3, TRUE ) → e.g., 123000.Need it back as a number:
Amount Fixed (Number) = VALUE( FIXED( Data[Amount], 2, TRUE ) )Outcome:

FORMAT
Converts a value to text in the specified number format.

Example:
Amount Currency = FORMAT(Data[Amount], "$#,##0.00")Outcome:

LEFT
Returns the specified number of characters from the start of a text string.

Example:
LEFT ProductCode (3) = LEFT(Data[ProductCode], 3)Outcome:

LEN
Returns the number of characters in a text string.

Example:
LEN Email = LEN(Data[Email])Outcome:

LOWER
Converts all letters in a text string to lowercase.

Example:
LOWER LastName = LOWER(Data[LastName])Outcome:

REPLACE
Replaces part of a text string with a different text string.

Example:
Replace Country = REPLACE(Data[ProductCode], LEN(Data[ProductCode])-1, 2, "XX")Outcome:

REPT
Repeats text a given number of times. Use REPT to fill a cell with a number of instances of a text string.

Example:
Star5 = REPT("*", 5)Outcome:

RIGHT
Returns the specified number of characters from the end of a text string.

Example:
RIGHT ProductCode (2) = RIGHT(Data[ProductCode], 2)Outcome:

TRIM
Removes all spaces from a text string except for single space between words.

Example:
Full Name (Trimmed) = TRIM( Data[Full Name &] )Outcome:

UPPER
Converts a text string to all uppercase letters.

Example:
UPPER City = UPPER(Data[City])Outcome:

UNICHAR
Returns the Unicode character that is referenced by the given numeric value.

Example:
Snowman = UNICHAR(9731)Outcome:

UNICODE
Returns the number (code point) corresponding to the first character of the text.

Example:
Snowman Code = UNICODE( Data[Snowman] )Outcome:

VALUE
Converts a text string that represents a number to a number.

Example:
Create a text version of Amount (for the “before” state):
Amount Text = FORMAT( Data[Amount], "0.00" ) // this is TEXTConvert that text to a number (the “after” state):
Amount From Text = VALUE( [Amount Text] ) // now NUMERICOutcome:


Summary
Gaining control over the way your data communicates is possible by mastering DAX’s text functions, which is similar to learning a language’s grammar. You can create reports that are more readable and insightful by learning how to format, reshape, and clean text. These features assist in converting unstructured data into insights that are readable and appear professional, whether that be through the creation of dynamic titles or the design of concise, well-organized labels.
These are some String or Text DAX functions and their descriptions in Power BI. Hope you understand and it will help you. Thanks for reading.