Exceljet

Quick, clean, and to the point

Find and replace multiple values

Excel formula: Find and replace multiple values
Generic formula 
=SUBSTITUTE(SUBSTITUTE(B5,INDEX(find,1),INDEX(replace,1)),INDEX(find,2),INDEX(replace,2))
Explanation 

To find and replace multiple values with a formula, you can nest multiple SUBSTITUTE functions together, and feed in find/replace pairs from another table using the INDEX function. In the example shown, we are performing 4 separate find and replace operations. The formula in G5 is:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B5,INDEX(find,1),INDEX(replace,1)),INDEX(find,2),INDEX(replace,2)),INDEX(find,3),INDEX(replace,3)),INDEX(find,4),INDEX(replace,4))

where "find" is the named range E5:E8, and "replace" is the named range F5:F8. See below for info on how to make this formula easier to read.

Preface

There is no built-in formula for running a series of find and replace operations in Excel, so this a "concept" formula to show one approach. The text to look for and replace with is stored directly on the worksheet in a table, and retrieved with the INDEX function. This makes the solution "dynamic" – any of these values are changed, results update immediately. Of course, there is no requirement to use INDEX; you can hard-code values into the formula if you prefer.

How this formula works

At the core, the formula uses the SUBSTITUTE function to perform the each substitution, with this basic pattern:

=SUBSTITUTE(text,find,replace)

"Text" is the incoming value, "find" is the text to look for, and "replace" is the text to replace with. The text to look for and replace with is stored in the table to the right, in the range E5:F8, one pair per row. The values on the left are in the named range"find"and the values on the right are in the named range "replace".  The INDEX function is used to retrieve both the "find" text and the "replace" text like this:

INDEX(find,1) // first "find" value
INDEX(replace,1) // first "replace" value

So, to run the first substitution (look for "red", replace with "pink") we use:

=SUBSTITUTE(B5,INDEX(find,1),INDEX(replace,1))

In total, we run four separate substitutions, and each subsequent SUBSTITUTE begins with the result from the previous SUBSTITUTE:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B5,INDEX(find,1),INDEX(replace,1)),INDEX(find,2),INDEX(replace,2)),INDEX(find,3),INDEX(replace,3)),INDEX(find,4),INDEX(replace,4))

Line breaks for readability

You'll notice this kind of nested formula is quite difficult to read. By adding line breaks, we can make the formula much easier to read and maintain:

=
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
B5,
INDEX(find,1),INDEX(replace,1)),
INDEX(find,2),INDEX(replace,2)),
INDEX(find,3),INDEX(replace,3)),
INDEX(find,4),INDEX(replace,4))

The formula bar in Excel ignores extra white space and line breaks, so the above formula can be pasted in directly:

Line breaks added in formula bar for readability and maintenance

By the way, there is a keyboard shortcut for expanding and collapsing the formula bar.

More substitutions

More rows can be added to the table to handle more find/replace pairs. Each time a pair is added, the formula needs to be updated to include the new pair. It's important also to make sure the named ranges (if you are using them) are updated to include new values as needed. Alternately, you could use a proper Excel Table for dynamic ranges, instead of named ranges.

Other uses

The same approach can be used clean up text by "stripping" punctuation and other symbols from text with a series of substitutions. For example, the formula on this page shows how to clean and reformat telephone numbers

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.