At the core, the formula uses the SUBSTITUTE function to perform the each substitution, with this basic pattern:
"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:
In total, we run four separate substitutions, and each subsequent SUBSTITUTE begins with the result from the previous SUBSTITUTE:
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:
By the way, there is a keyboard shortcut for expanding and collapsing the formula bar.
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.
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.