Exceljet

Quick, clean, and to the point

LAMBDA strip characters

Excel formula: LAMBDA strip characters
Summary 

This is an experimental formula to strip characters from text using a formula created with the LET and LAMBDA functions. In the example shown, the formula in F5, copied down, is:

=LET(text,B5,chars,C5,rep,D5,keep,E5,
textarr,CODE(MID(text,SEQUENCE(LEN(text)),1)),
chararr,CODE(MID(chars,SEQUENCE(LEN(chars)),1)),
TEXTJOIN("",1,IF(ABS(keep-ISNUMBER(MATCH(textarr,chararr,0))),rep&"",CHAR(textarr)))
)

Unlike the formula explained here, this formula is not recursive.

Explanation 

This is an experimental formula to strip characters from text. The experimental part is using character codes instead of regular characters as a way to make the formula case-sensitive, and providing a way to reverse the logic of the formula with the "keep" input parameter. Unlike the formula explained here, this formula is not recursive.

The formula takes four inputs:

text - the incoming text
chars - the characters to strip
rep - the character to replace stripped characters with
keep - strip or preserve chars (FALSE = strip, TRUE = preserve)

The keep parameter is a boolean that "flips" the behavior of the function from stripping characters to preserving characters.

In a nutshell, the SEQUENCE function is used to generate two arrays: one for the text, one for chars. In order to make the function case-sensitive, these arrays are composed not of characters but of the ASCII codes for each character.

textarr,CODE(MID(text,SEQUENCE(LEN(text)),1)),
chararr,CODE(MID(chars,SEQUENCE(LEN(chars)),1))

The MID function extracts one character at a time, and CODE returns the numeric code. Inside the IF function, the logical test is:

ABS(keep-ISNUMBER(MATCH(textarr,chararr,0))) // logical test

The ISNUMBER and MATCH combo checks each code in textarr against codes in chararr. The ABS function is used as a way to reverse the logic of the formula. If keep is set to FALSE or zero, the ISNUMBER+MATCH logic is unchanged and chars are stripped. If keep is TRUE (or 1) the logic is reversed – chars are preserved and other characters are stripped.

LAMBDA version

To convert the formula to the LAMBDA function so that the formula can be named and reused throughout the workbook, the four input arguments are moved to the front, followed by the calculation, wrapped in LET:

=LAMBDA(text,chars,rep,keep,
LET(
textarr,CODE(MID(text,SEQUENCE(LEN(text)),1)),
chararr,CODE(MID(chars,SEQUENCE(LEN(chars)),1)),
TEXTJOIN("",1,IF(ABS(keep-ISNUMBER(MATCH(textarr,chararr,0))),rep&"",CHAR(textarr)))
))

After the LAMBDA function is named "StripCharacters" the function can be called like this:

=StripCharacters(B5,"()-","",FALSE)

Per the example shown, the text is in cell B5, the characters to strip are "()-", the replacement string is "", and preserve mode is set to FALSE.

LAMBDA is a beta function available in Excel 365 only.
Author 
Dave Bruns

Excel Formula Training

Formulas are the key to getting things done in Excel. In this accelerated training, you'll learn how to use formulas to manipulate text, work with dates and times, lookup values with VLOOKUP and INDEX & MATCH, count and sum with criteria, dynamically rank values, and create dynamic ranges. You'll also learn how to troubleshoot, trace errors, and fix problems. Instant access. See details here.

Download 100+ Important Excel Functions

Get over 100 Excel Functions you should know in one handy PDF.