REPLACE replaces part of a text string, based on the number of characters you specify, with a different text string.


REPLACE(<old_text>, <start_num>, <num_chars>, <new_text>)  


Term Definition
old_text The string of text that contains the characters you want to replace, or a reference to a column that contains text.
start_num The position of the character in old_text that you want to replace with new_text.
num_chars The number of characters that you want to replace. Warning: If the argument, num_chars, is a blank or references a column that evaluates to a blank, the string for new_text is inserted at the position, start_num, without replacing any characters. This is the same behavior as in Excel.
new_text The replacement text for the specified characters in old_text.

Return value

A text string.


  • Whereas Microsoft Excel has different functions for use with single-byte and double-byte character languages, DAX uses Unicode and therefore stores all characters as the same length.

  • This function is not supported for use in DirectQuery mode when used in calculated columns or row-level security (RLS) rules.


The following formula creates a new calculated column that replaces the first two characters of the product code in column, [ProductCode], with a new two-letter code, OB.

= REPLACE('New Products'[Product Code],1,2,"OB")  

Text functions