This is a guest post by Sohail Anwar.
Let’s not bore you with an intro. You are about to learn a VLOOKUP trick that Lucifer himself would not want you to know. It’s so absurdly powerful that it was developed in a lab and had to be tested on Rocky’s arch nemesis Ivan Drago.

Presenting the Multiple criteria VLOOKUP!
…boring…pass, we’ve seen it.
Oh, have you? Not like this you haven’t. This will change the way you work with Excel.
Let me start with an easy example. Here’s some data and we would love to know what Bb and Dd is.

Easy. Let’s put a helper column in that concatenates the two inputs and do a basic VLOOKUP.

Puh-lease. How boring.
Bye Bye Helper Column, it was nice while it lasted.
With a dash of CHOOSE and sprinkling of Array formulas, we’re about to change the game:
=VLOOKUP($E2,CHOOSE({1,2},$A$2:$A$7&$B$2:$B$7,$C$2:$C$7),2,0) and press Ctrl + Shift + Enter

Without getting into too many details, using the Array creates a makeshift virtual helper column. You don’t have to understand Array formulas to make them work for you. I will lay out the simple structure that you can replicate
VLOOKUP(lookup value, CHOOSE({1,2,...N},Column1 & Column 2 &…& Column N, Result Column),2,0)
Where the lookup value is either something pre-concatenated (like Bb or Dd above) or you are using multiple criteria that you concatenate when entering the lookup value. The CHOOSE structure is easy. Always {1,2} then concatenate (with &) as many columns as you want (that the lookup values will need to look in) and the VLOOKUP’s column number is always 2. Let’s explore another example:

Let’s say we want to look up the Savings Produced for a Director of Grade D who started in 2014. That’s 3 lookup criteria. Let’s follow the structure.
=VLOOKUP(A13&A14&A15,CHOOSE({1,2},A2:A10&B2:B10&C2:C10,D2:D10),2,0) and press Ctrl + Shift + Enter
The two key things to note is that our lookup value is a concatenation of the criteria, in this case I have put the criteria in A13, A14 and A15 (hence A13&A14&A15 is our lookup value). Secondly, in the CHOOSE formula, the ranges in the middle part (A2:A10&B2:B10&C2:C10) have to be concatenated in the same order that the lookup value was concatenated. So we concatenated:
Start Year & Grade & Role
In both the lookup value and lookup columns within the CHOOSE.
I stumbled on this many years ago at work and it is the easiest way to do multiple criteria lookups. Play around and add more criteria…but that’s just the beginning!
When I get that feeling, it’s like Textual Healing
So how can we take this concept and make it even more useful?
First, let me share my story of pain and anguish.
Often when dealing with volumes of text data I make numerous helper columns to deal with the multitude of ways I am presented with names. Anyone who’s reconciled HR data to Finance data for example can appreciate that pain. Finance write their names First Name (column 1) Surname (column 2), then HR provide a spread with Last Name, Surname (column 1), then all of a sudden the Project team join in the fun with First Name, Surname (column 1)! Arrghh!
So I am now left to deal with this chaos via numerous text formulas involving SEARCH, LEFT, RIGHT, MID, LEN and MYSANITY (okay perhaps that last one is my own UDF, my volatile UDF). So, maybe it’s not that bad, but when you’ve been doing it for as long as I have, it gets tedious and you begin to search for efficiency. So, one day like the rebellious closing scene from Dead Poet’s society, I stood on my desk and declared ‘Oh Captain, My Captain’ as I refused to create another ‘helper’ column.

After my colleagues talked me down from the table and reassured me (“There there Sohail, I don’t mind inserting new columns for you occasionally”…”Sure you don’t John, sure you don’t”), I went about finding a less ‘helpful’ way. Would you believe, our new friend the multiple criteria lookup was the answer.
You see, not only can our criteria be cell references but also extra characters! Let’s say we have First Name(Column A), Surname (Column B) and Unique Reference (Column C). Someone gives us a spreadsheet with the names in either a First Name + Surname or Surname, First Name format. We can look this up by including the extra characters in our lookup columns within the CHOOSE.

Look closely at the middle of the CHOOSE since that’s where the magic is. Download the workbook to see the example in action.

We have pretty much instructed the two columns we are looking up to join up in a specific way. First we want them to join up with a space in between. Then the second formula has asked them to join up Surname, comma and space in between, then finally the First Name. So as far as Excel is concerned we have created two virtual helper columns that look like this:

This makes it straightforward for us to look up John Johnson or Johnson, John in them.
There are virtually no bounds to how you can use this Multiple Criteria VLOOKUP. It made my life tremendously easy and I’m sure it makes yours easier too. Do me a favor and let me know in the comments some of the crazy ways you are applying it.
And then if you haven’t already grabbed a copy of Chandoo’s VLOOKUP book I cannot recommend it enough as the ultimate resource in VLOOKUP mastery
Download Example Workbook
Click here to download the example workbook prepared by Sohail. Play with it to learn more.
Added by Chandoo
Thank you Sohail
Thank you Sohail for writing this very useful, incredibly fun tutorial. I am sure our readers will enjoy it as much as I do. Thanks.
If you like this, please say thanks to Sohail.
Related discussion on Multi-conditional lookups
As you can guess, this is not the first time we talked about using multiple conditions in VLOOKUP. Check out below articles for more ideas & tips:
- Multi-condition lookup using Excel
- Using CHOOSE formula to make VLOOKUP go left
- Introduction to SUMIFS & CHOOSE formulas
About the author: Sohail Anwar is a Londoner who has spent over 10,000 hours applying Excel in his professional life and earns well over 6 figures as a result. Now he’s on a mission to teach professionals how to massively increase their earnings by learning and applying Excel like never before. Find out more about Sohail on Earn With Excel or LinkedIn














37 Responses to “Quickly Change Formulas Using Find / Replace”
Chandoo,
this is a really cool stuff what I use quite often. In addtion this method also could be a good choice to switch the reference type of the formulas from relative to absolute or vice versa. (just simply replace the $ in the same way).
Andras
@Andras: you are right, we can use find / replace to change references, reference types etc. Now, only if they had regex in find/ replace, we could so much more 🙂
@Tony Rose: Thank you. This is very useful and powerful feature. I even use it for cleaning up data. While formulas are good, they are not the solution for every problem. Often when I need more powerful cleanup / changing, I copy paste the stuff to text editors like notepad++ and then use their find/replace to do the dirty task.
What if i have to change the formula from ='Analysis'!C1 to 'Analysis 1'!C1?
I tried doing it using Find /Replace but could't. Encountered some errors.
And is there a way to change this using VBA???
Hi,
Did you ever get a reply to this?
Thanks
Ollie
to make your life easier, suggest you to avoid (Space) in worksheet names whenever possible. Consider (underscore) instead.
As the first formula wouldn't have the single apostrophes (since there's no space) need to include that in replace. So, search for:
Analysis
and replace with:
'Analysis 1'
This could be the most useful tips I've seen in a while. I use this all the time and can instantly change 400 formulas with a few clicks. Like so many other functions in Excel, I don't know what I would do without this one.
Keep 'em coming!
[...] on formulas: 5 areas where mouse kicks keyboard’s butt | Edit formulas in bulk using Find / Replace | Excel Formulas Online [...]
THANKS BRO
You, sir, are a god among men...
This is really cool. Your just save me hours of work. Thanks.
Thanks so much for this fix! It saved me tons of work. I'm muddling my way through and this really helped!
Oh... My... God!
This tip just saved me about 2 hours every month! I can't believe how easy it is to use. Now, can somebody tell me who I should call to get a refund for the previous 100 hours I spent manually changing formulas cell by cell?
Thanks so much!
THANK YOU!!!
THANK YOU!!!!
You saved me hours, I had a sheet that has more than 500 formulas, and i needed to replace the year in all of them, you saved me hours
Awesome info on replacing cell addresses in formulas. I have never heard about Ctrl+` before. Thank you!
I have something inside a formula like:
=sum(A1, A2*10) all over I now need to get rid of the *10 {=sume(A1, A2)} I thought to use the find replace trick above but with a blank in the replace but it then outputs just zeros. I thought I could trick it by doing *1 but then it just turns into =*1) with none of my references. Does anyone have an idea how to do this?
The Ctrl+ trick is cool.
@T
Instead of replacing with a blank try replacing
*10)
with
)
Thank you! This literally will save me hours and hours of time, and that's without losing my sanity in the process!
I have Sheet(1), Sheet(2), Sheet(3), etc ... Sheet(100).
Then there's a summary tab where I want to recap information on all those different sheets. Is there anyway to create a formula on the Summary tab to get ='Sheet(1)'!B$29 copied down for all 100 sheets without having to change each sheet # within the formula by hand?
@Brigitte
If you have a list of the sheet names in A2:A100
In B2: =INDIRECT("'"&A2&"'!$B$29")
Copy down
or if you don't have a list of the sheets names you can make it up on the fly
=INDIRECT("'sheet("&ROW()-1&")'!$B$29")
Copy down
Thanks for the suggestion. However, I copied your formula right back to my file and it didn't work. So I did it another way. I put the tab/cell reference in one cell and then did an =INDIRECT() to capture that information.
K2="'Sheet("&L2&")'!B$29" which has a value of 'Sheet(1)'!B$29
B2=INDIRECT(K2) which now has a value of 40 (contents on Sheet(1).
Thank you!!!!
Thank you ..
Hi, Out of all the formulae, I wish to replace the formula which has generated 0 value with blank space? I am unable to do it with find and replace function,
Please suggest.
Thanks.
Chandoo, you literally just saved me about 2 hours of work. I had a document with a daily report in two formats. The second formate just linked to all the appropriate cells in the other format (different sheets). This was 180 references that needed to be changed and I had to make this for a 4 week period (aka 28 different sheets at 180 references to change per sheet).
Thanks so much.
I have tried this way and without using the Ctrl-` formula view
Either way, I am trying to do something simple, but it won't let me.
I have a bunch of cells with a simple math formula like
=-(0.5*20)
various values in each cell, multiplied by 20
I simply want to change the multiplier globally from 20 to 25. But when I tell it to find *20 and replace it with *25, it replaces the entire cell contents with *25, rather than just replacing the *20 portion of the cell contents.
Can anyone assist with this? Seems so simple, but Excel isn't letting me do it.
Search/Replace 20 or 20) with a cell Reference eg A1 or A1)
Then put the value 25 in A1
By using a * in the search it replaces all the text
how to find a specific cell's value in a column & replace replace it with another cell value i actually need a method to replace a data in ca column and replace with the value i have in a specific cell can i give a [ location ] of data to what i need to find and then give row or column range to where i need to find and the given value & then give a [ location ] of data to what i want to be replace with the find and replace by row & column range & than by specific criteria and than by specific location.
please help.
how to find a specific cell’s value in a column & replace replace it with another cell's value.
i actually need a method to find a specific cell's data in a column and replace it with the value i have in a specific cell.
can i give a [ location ] of data to what i need to find and then give row or column range from where i need to find the given value & then give a [ location ] of data to what i want to be replace with.
find and replace by row & column range & than by specific criteria and than by specific location.
please help.
how to find a specific cell’s value in a column & replace it with another cell’s value.
i actually need a method to find a specific cell’s data in a column and replace it with the value i have in a specific cell.
can i give a [ location ] of data to what i need to find and then give row or column range from where i need to find the given value & then give a [ location ] of data to what i want to be replace with.
"find and replace by row & column range & than by specific criteria and than by specific location."
in more than 100 sheets in entire workbook
please help.
This is a great tool, does anyone knows an easiest way??
I'm working with a system that has over 59000 references... so every time the replace all is activated. I lose an entire day.
i actually needs to find cell number "D12" in column "D" and replace with Cell Number "B8" for example
find what = Cell Number "D12" John McNamara
find Where = in Column "D"
Replace with = Cell Number "B8" Bieber D'Souza
Replace Range = Column "D"
In which Sheet = All Sheets in Work Book (more than 100 Sheets)
Note: in every Sheet Cells Number "D12" & "B8" containing Different Employ Name but the find rang and replace rang are same in every sheet and find what cell number and replace with cell number are same also.
please help!
thank you. saved lot of time.
Thank you from the bottom of my heart!
Hi, I am trying to figure out how to use RE to find and replace several values in a column. Using find and replace does not work because of the values I am working with. I have a column with hundreds of rows that have a description of several operating systems and other info, which looks like this: Windows Server 2008 R2 Member Server Security Technical Implementation Guide; Windows 2008 Member Server Security Technical Implementation Guide; Solaris 10 10 SPARC SECURITY TECHNICAL IMPLEMENTATION GUIDE; and Windows Windows 2003 Member Server Security Technical Implementation Guide.
I need to be able to find and replace (or basically curtail the descriptions) to be Windows 2008 R2; Windows 2008; Windows 2003; and Solaris 10. BUT when I run find and replace with just *2008*, it finds every instance, including the ones with R2 at the end. I need it to only change the ones with 2008 to Windows 2008 and the ones that have 2008 R2 to Windows 2008 R2. I know it is possible, but I have no clue on how to write a macro to do this.
Thanks for your help,
Gerard
Wickedly efficient workaround. Excel really is a powerhouse program, all you have to do is dig into it. Ctl ~ exposes the formulas, and Ctl H allows for the multi edit. Brilliant, Chandoo!