Comments on: INDEX & MATCH in Excel - better alternative to VLOOKUP

This tutorial demonstrates the key strengths of Excel's INDEX / MATCH function that make it superior to VLOOKUP. You will find a number of formula examples that will help you easily cope with many complex tasks when VLOOKUP fails. Continue reading

Comments page 21. Total comments: 614

  1. Hi,

    I have 2 rows
    Type 1 6 6 1 2 3 7 8
    Value 12 21 11 23 41 65 07 80

    Enter 1
    Result 12

    Enter 6
    Result 11

    Enter 4
    Result 12

    Enter 9
    Result 07

    Basically I need to get the minimum value if the value matches or else minimum value of all the denominations that are lesser.

    I would really appreciate f you can help me with this in any way.

    1. Thanks got a way around :)

  2. Hi

    I've got a tricky one for you.

    I've got a table with 5 columns. We've got various engineering disciplines - civil, mechanical, electrical etc. with various grades of engineers - senior, principal, technician etc. Each has a specific charge out rate for 3 different work locations. I want to link another work sheet and populate a row across the top using pull down lists so any of the 3 combinations on discipline, grade and office pops the right rate into the boxes so I can build up an estimate.

    Any ideas?

  3. Thank you for those explanations, you literally saved my life from hours and hours and more.. hours of work :o)

    God bless you for giving us this explanation!

  4. Hi there!

    I have a worksheet with range (which is similar to a tax schedule) - Column A representing Minimum Value and Column B as Maximum values. Column C contains values if an amount is within the range of Column A and B. E.g.

    Worksheet 1

    Column A Column B Column C
    1 100 50
    101 200 75
    201 300 100

    Worksheet 2

    78
    220
    115

    What I would like is a formula/function to get the corresponding value from Column C in worksheet 1 if the value in worksheet 2 is within the Minimum and Maximum range from worksheet 1.

    Thank you!

    1. =INDEX(D2:D4,SUMPRODUCT(--(B7=B2:B4),ROW(A1:A3)))

      A B C D
      1 min max Output
      2 1 100 50
      3 101 200 75
      4 201 300 100

  5. how to find same value or number in excel.

  6. how to find same value or number in excel

  7. Hi,

    For the example you showed on "Look up with multiple criteria using INDEX MATCH", what if my table's results are showed in horizontal instead of vertical? Is there any way I can make it look up and return the correct data without having to transpose the table? For example in the table below, I am trying to match the Lab and the Test and wanted it to return results for Test 1 for my first column and Test 2 for my second column. How do I make it to return the data in row 4 instead of column 3 like the example shown? Is there any way to achieve this? Thanks in advance!

    Lab E Lab E Lab E Lab C Lab C Lab A
    Ash Calcium Free L-CarnitineChlorideCobalt Copper
    % % ppm % ppm ppm
    Test #1 1.63 0.21 147.7 0.21 <0.20 4
    Test #2 1.46 0.23 152.2 0.22 <0.20 4

    1. Hi Angie,

      When you are trying to match the Lab and the Test, do you have several Lab records for one Test? If you can send a sample workbook with your data to support@ablebits.com and include the result you expect to get, our support team will try to help.

  8. Hi,
    I want to compare two sheets sheet 1 and sheet 2,after comparing them both the sheets values inthe sheet should be merged and arranged in the ascending order.
    can you please suggest me .

    Thanks,

  9. Please good you help with my formula.

    I keep getting you've entered too many arguments for this function

    =INDEX('Pivot by breachQH'!$A:$Z,MATCH($A$1,'Pivot by breachQH'!A:A,0),MATCH(B$4,'Pivot by breachQH'!$4:$4,0,MATCH("Majors-Lite",'Pivot by breachQH'!))))

  10. Hi! Thanks for the very informative article!

    I was wondering how you would alter the "Multiple Criteria Using INDEX MATCH" formula if, for instance, Dan Brown bought apples more than one time so there are repeats of names and what they bought, and you are only interested in the first time they bought apples. Thanks!

  11. Hello,

    I have 2 tables:
    table 1
    BH151¦20.53
    BH151¦20.5
    BH152¦20.99
    BH152¦21.99

    Table 2
    BH151 ¦20.01¦21.00¦X1
    BH152 ¦20.01¦22.00¦X2

    I would like a formula that looks for the value in table 1 and report the X value from table 2. The value it needs to check first is in the first column of table 1 and then find the value from the second column. This value must be in between value of column 2 and 3 of table 2 in order to report the X value (column 4 of table 2)

    Many thanks,

    1. i.e. I would like table 1 results to has follow:
      BH151¦20.53¦X1
      BH151¦20.5¦X1
      BH152¦20.99¦X2
      BH152¦21.99¦X2

  12. Hello,

    I want a solution for the following.
    I have 3 columns namely "State" , "City" , "Assessment rate"
    If i select a state , in city column it should load the cities of that particular state
    and then in city list which i got after selecting the , in that list if we search for any particular city , it should display all cities matching to the search key work and it should also display the max assessment value of that city.. for ex
    Output Required
    State city assessment rate CitySearch MatchingCities MaxAssessmentRate
    NY Manhattan 33.32 NEW West New York
    West New York 35.45 East New York 42.16
    East New York 42.16 south(New York)
    south(New York) 28.69

    Please Help me on this .. Thank you

  13. Hello,
    Thank you for your great article.
    I just used the Index Match Max Formula as per your examples, in order to get the person with the highest rank and it worked great when there is a unique person with the highest rank.
    However, in some cases, two or more people have the highest rank, but the formula only returns one name.
    Is it possible for the formula to return all the names of the people ranked one, or alternatively, have an error message if there are more than one result possible?

    Example:

    John 2
    Bob 4
    Will 4
    David 3
    =INDEX($B$2:$B$5, MATCH(MAX(C2:C5), C2:C5, 0))

    The result is Bob, and I would like to have both Bob and Will.

    Your help would be greatly appreciated.
    Kind regards,
    Marine

    1. Hello Marine,

      You can show an error message if there are at least two people with the highest rank:
      =IF(LARGE(C2:C5,1)=LARGE(C2:C5,2),"error text", INDEX($B$2:$B$5, MATCH(MAX(C2:C5), C2:C5, 0)))

      1. Thank you very much Svetlana.
        Is there a way to return both people with the highest rank?
        Kind regards,
        Marine

  14. =INDEX('1'!$A$9:$R$250,MATCH($A1,'1'!$A$9:$A$250,0),3)

    In the above I want to change the sheet reference shown as '1' above to what is in another cell.

    I have 10 sheets named 1 through to 10 in the workbook.

    I have a drop down list from which the user can choose a number from 1 to 10 indicating which sheet to use. If they chose 10 I want the sheet number 10 to appear etc. The formula above is showing sheet name 1.

    1. Hello Harvey,

      You can use the INDIRECTfunction, the formula will be as follows:
      =INDEX(INDIRECT(A1&"!$R$9:$R$250"),MATCH($A1,INDIRECT(A1&"!$A$9:$A$250"),0),3)

      Where A1 is the cell from the drop-down list.

  15. Dear Svetlana,

    This is my first posting, though I used to get some excel guidance here.. Your feedback really helps me a lot!

    I had a "seems to be" simple problem, but after trying for some formula attemps, I still couldn't get it right..

    Here is how it look like:

    Data Source:
    111 112
    D | C D | C
    100 | 50 20 | 30

    Search Engine:
    D C
    111 xxx yyy

    I'm trying to make a simple "search engine", which, example.. when I put 111 on the search engine, it will "automatically" fill up the xxx & yyy with 100 & 50 from data source. So in this case there are 2 criterias that need to be obeyed by the formula. The "111" & the "D or C".

    I've managed to get the "xxx" section right with this formula: =INDEX($D$14:$IU$14,MATCH(C18,$D$11:$IU$11,0),MATCH(A18,$D$10:$IU$10,0))

    But as I used the same formula construction to the "yyy" section (by modifiying it to get the "C" part), it always appear "#Reff".. I don't know what's wrong with my formula's construction..

    Can you please help me with this case Svetlana?

    Thank you very much!

    Sincerely yours,
    Chris

  16. Sno_____Date_____Description_______Cr.__________Dr.________Total Balance
    1. 30/10/14 ________Mike__________3000______________________3000Cr
    2.___= _____________Mike _______________________500_________2500Cr
    3.___=______________Mike________________________3000________-500Dr
    4.___=______________Mike__________5000______________________4500Cr

  17. Hi Svetlana Cheusheva Madam,

    Hope You doing Well, I have Face with a little problems.I am trying To solve it.but I can't .If you could kindly help me.

    Sno_____Date_____Description_______Cr.__________Dr.________Total Balance
    1. 30/10/14 Mike 3000 3000Cr
    2. = Mike 500 2500Cr
    3. = Mike 3000 -500Dr

    If I draw The formula to below.then it must be an empty Cells to Bottom. when I enter the value & Information .Then to work Correctly ....
    Thanks

  18. Hi, Thanks for the great article, just wondering if the Index Match formula could return a second column cell from the same row, e.g. finds search value on row 249 and returns values in column 5 and column 12

  19. Hi,
    . Found the article very helpful and particularly this
    …… "...... When using the VLOOKUP function, remember that the total length of your lookup criteria should not exceed 255 characters, otherwise you will end up having the #VALUE! error. So, if your dataset contains long strings, INDEX MATCH is the only working solution. "
    ……
    Might just be worth noting that MATCH generally still has the 255 limit and the key to it working here in this particular formula:
    =INDEX(D5:D10,MATCH(TRUE,INDEX(B5:B10=A2,0),0))
    is that The value passed to MATCH in those cases is simply TRUE which is matched against an array of booleans and therefore the 255 character limit for MATCH is immaterial. (Thanks to RoryA at MrExcel Forum for pointing that out to me)
    . ( I got a bit confused later thinking that both INDEX and MATCH did not have the 255 limit
    Thanks
    Alan

    1. Thank you for this valuable piece of information, Alan!

  20. Thanks for this highly informative article.
    Which combination of Index, Match and Offset can I use to return rows with their contents?
    Much thanks

    1. Hello Anthony,

      It depends on what exactly you want to get as the result : )

      If you have a lookup table from where you want to return the entire row, then it is better to add a helper column to a master table and get the row number using the Match function. If you want to put data in different columns, then you can use the Index function. If you want to pass the values from the lookup table to some function, e.g. Sum, then you'd better use Offset.

  21. I have a google spreadsheet that is generated from a google form. The form is filled out by admin each time a student is placed in ISS. The form puts information on the spreadsheet like student name, grade, offense, how many days of ISS assigned, and the dates the student is assigned to ISS (each date is a separate column with a max of 5 days/dates the student can be assigned). What I'm needing is for certain data from this spreadsheet to be pushed to another spreadsheet that's laid out by dates with about 15 rows under each date. I need to the students name to be pushed under the correct date(s) they were assigned. Therefore, making this second spreadsheet look like a list of students assigned ISS per day. This list is sent out so teachers can see which students of theirs (if any) are in ISS for that day. Is this possible? I created the first spreadsheet that's generated from the form/forms filled out to push students names into a google calendar under each day they are assigned (which I thought was pretty cool and provided the same effect as the list of students by date). However, admin doesn't "dig" the calendar view and wants the list in a spreadsheet form similar to what they are using. Which is the reason I am inquiring about how to make this work or if it's possible to make it happen.

    1. Hello Amy,

      I am sorry, I have very little experience with Google Spreadsheets and therefore am unable to help. They are very similar to Excel, but not identical.

  22. My goal is to rank from highest to lowest a subset of numbers from a column based on certain values. What is the best way to accomplish this, as I can't seem to get it right using index, match and rank in various ways.

    Example:
    Col A has divisions names A-G
    Column B has the teams within each division 1-6 for each division
    Column C has a total score
    Column D to rank the teams with in each division, so I have a 1-6 ranking for each division

    Any help would be appreciated.
    Thanks!

  23. thanks so much for this absoloutly cool Post!
    Really Useful for me.
    thanks again ;)

  24. Great post! I've been looking for the perfect INDEX MATCH function for hours. Just added an IFERROR to replace the #N/A.

    Thanks!
    Linn

  25. Hi there,

    I had a query regarding some household budgeting I am commencing. My goal is to import bank transaction data and dump the transactions onto a xls sheet. Then I wish to run certain formula's over the data which allocates the expenses as I want them. For example, food bills may come from 5 different groceries, how do I build a formula that will let me allocate all 5 to the one account, being food. And so on with other expense categories?

    With thanks,

  26. Svetlana,

    I am trying to use the formula you set up for "Look up with multiple criteria using INDEX MATCH."

    I'm having trouble with the MATCH part of the formula:
    MATCH(1, (A2='Lookup table'!$A$2:$A$13) * (B2='Lookup table'!$B$2:$B$13))

    The problem I have is that this part of the formula (A2='Lookup table'!$A$2:$A$13) returns the value of the row in the array where the value is found, as does this part of the formula (B2='Lookup table'!$B$2:$B$13). It does not return 1 or 0 for true or false.

    So the comparison of MATCH(1, ...) is returning gibberish, and not the row where both parts of the A2 lookup and B2 lookup are true.

    Let me know if you want to see the files I'm trying to merge.

    Thanks.

  27. Hello Alex,

    The answer is "yes" to all 3 questions, though Excel is not the best way to implement your idea.

    1. You can use the Vlookup function to get the 2nd, 3rd and subsequent occurrences based on your reference cell. The lists can be of any length. For more details, please see this example.

    2. See this topic on the MrExcel forum.

  28. I don't really know under which function this applies, but I had a question about pulling formulas from references. The end goal is to create a sheet in which a process can be chosen from a drop-down menu and the next X rows will be populated with the X steps of the process selected. For example, if I have two input cells of side lengths of a triangle, I could select "Pythagorean Theorem" (all steps of the process would be on another sheet) from the drop-down list, and the next 4 rows will show "A^2", "B^2", "A^2 + B^2", and "SQRT(A^2 + B^2)", with the corresponding values based on my inputs next to them. However, if I pick "Area" from the list, it will calculate the area of that triangle with two steps (A*B and 1/2 A*B).

    So it essentially boils down to two or three questions:
    1) Can Excel display a full list based on a reference cell? If so, can those lists be different sizes?
    2) Can you pull a formula from another cell and have it operate on new input in the sheet it is being pulled into?

    Thanks!

  29. Need Help!

    I have created the below formula

    =LOOKUP("6070-24 · Cleaning SuppliesGarden",Sheet1!$E$1:$E$600,Sheet1!F$1:F$600)

    which basically say - look for "6070-24-Cleaning supplies Garden" on Sheet1 in coluwn E and take corresponding valve in Coluwn f. But I have more than one cleaning supplies account eg
    6070-24-Cleaning supplies Garden
    6070-25-Cleaning supplies MTC
    6070-25-Cleaning supplies Repairs

    I would like a formula which will read - sum all rows from coluwn F which begin with 6070 in coluwn E.

    Hope you understand

    1. Hello Willie,

      Try the following SUMIF formula:
      =sumif(Sheet1!$E$1:$E$600, "6070*", Sheet1!$F$1:$F$600)

  30. Hi, I would really like if some one help me with my problem. The problem is Index/Match function is working fine to find unique MAX/MIN values but m not able to calculate the required data which contains repetitive values.

    Eg: PersonA - 100%, PersonB- 90% & PersonC100%. When m trying to find the Name and the value let say TOP 2, I am not getting Person A and Person B as both has got the max scores. Instead i am getting PersonA and Person A.

    Any solution with Index/Match or like that function to get the name of both the Person who has got similar values.

    1. Hello Niraj,

      We have created an example for you, you can download it here. Hopefully, this is what you are looking for.

      1. Hi,

        The example would be of great assistance, but unfortunately cannot find the page you r refering to. Is it possible to repost it?

        Thank you in advance.

        1. Sorry, Alex, the link got broken during our blog engine's update. It's fixed now and here's a copy, just in case : )

  31. Thanks for a terrific article with a very lucid explanation of the subtleties of Index Match

    I have this formula which produces the answer I am expecting except when the value in B5 is repeated

    {(=Index('July 14'!A1:AQ500,Match(B5,'July 14'!$B$1:$B$500,0),Match(A5,'July 14'!$A$1:$AQ$1,0))}

    Is there an additional element I can add to overcome the problem of always finding the first occurrence in the source data

    Rob

    Rob

    1. I have the same problem, Rob. I need to return a value (quantity) for each occurrence of a part number in the lookup table, the number may occur up to 10 times in the data column, each with a different quantity. I need to total the quantities for every part number.

      Thank you

  32. Hello again Svetlana,

    I'm not sure if this can be done using a Match/Index or Look Up formula, but let me know what you think.

    I have an Expenses sheet in an accounting work book with approx. 35 columns marked for various contracting expenses. Just to keep things brief, I have an "Expense Code" column (say column A) for each expense, e.g. Accounting has code 110, Bank Fees has code 111, Freight has code 112 and so on. The next column (say column B)has the "Expense Total" for each expense. The next column (say column C)has the "Amount to Allocate" totals [amount to allocate is the total expense less G.S.T.(goods & services tax)] and all the following columns are the various expense columns to which the "Amount to Allocate" figures are entered. I would like to formulate all the various expense columns to self-populate with the appropriate "Amount to Allocate" figures on recognising the expense code.

    Can formulas work in this scenario?

    Thanks in advance for any advice.

    Cheers,
    vcoolio.

    1. Dear Sir,

      By using the index and match, we get the vaue. but i want the search and add multiple value from different rows.

      i can share the file, please provide the ur mail id.

    2. Using Match/Index... I understand their functionality, and how to return the location of a 'match' into a specific cell. But... is there a way to return that entire ROW where the match is located?

    3. Below is the some amounts
      2,129
      8,938
      2,198
      12,977
      39,124
      1,219
      24,775
      1,287
      863
      3,723
      9,346

      in above amount if i Add few amount it will come 14535 .
      what is the formula for this in excel to calculated

    4. This is very simple indeed!
      Proceed as follows:-

      In column B3, type 111
      In column C4, type 112
      In column B4, type Account Code
      In column C4, type Amount
      In column D4, type Bank Fees
      In column E4, type Freight
      Similarly, type other account heads F4, G4, H4, etc.
      Now the formula you need to post the expenses from the Amount (C4) column to the appropriate column where the code is located.
      In column C5, type 8,908 under amount column and type 111 in cell cell B5. This is assumed to be for bank fees.
      In order to make Excel post this to column D5, type the following formula in cell D5:
      =IF(B5=$B$3,C5,0).

      In cell C6, type 5,000 and type 112 in cell B6 for freight. Write the following formula in cell E5: =IF(B6=$C$3,C6,0)

      You should copy the above formulas down the columns to wherever your account postings are expected to get to. Please take careful note of the absolute referencing in cells B3 and C3. Joseph Osasebor, FCA, MBA

    5. Hi, please can you assist?
      I have four columns:
      1. Two columns of percentages and exposures and in
      2. Two seperate columns with percentages and exposures
      I want to match whether the percentages and totals in the one set is greater than or equal to the percentages in the other set and if they are; i need to input a message: "OK" or if they arent: "Incorrect".

      Is this possible.

      1. Hello Sai,

        If you want to show the Message window (box), then a special VBA macro is needed. Sorry, I am not able to help with this.

    6. Hi Svetlana Cheusheva

      Can you please help me to know how to choose from different price A & B & C & D and get the best price from these tnx.

    7. Hi Can you please help me to know how to choose from different price A & B & C & D and get the best price from these tnx.

    8. Hi Vcoolio,

      I'm not sure I understand the task correctly. Please see the example we created and let me know if you want something different.

      1. Dear
        From above example of index match to find a value of intersection what formula will be use to find intersection of value means in above index formula finds the population value of the intersection of usa in 2015 what if i need country and year by using population value??
        Hope i have described my point.

      2. I didn't get your example,and one more thing why there is a table in second sheet?

      3. I would liketo have total of repeated expense code
        is it possible ??

        =INDEX(A1:F20,MATCH(H5,$A$1:$A$20,0),MATCH(H6,$A$1:$F$1,0))

        the above formula will solve only the amount but not for the repeated

      4. I would like to have the same but i need total of repeated expense code
        is it possible ??

        1. Sumif can be use for the same

      5. Dear Svetlana,

        That's it! Well done! The only thing is that the "Amount to Allocate" (column C)are the amounts to go into the various expense columns (D, E, F etc.)and not the "Expense Total" but this I can sort out for myself.
        The next thing is, will formulas work in this scenario? I have been toying with SUMIF formulas and they appear to work ok except for a couple of hitches. I'll see what you come up with and then we can put our heads together.

        Thanks a million.

        Cheers,
        vcoolio.

        1. Dear Svetlana,

          Please ignore the following paragraph from my last post:-

          "The next thing is, will formulas work in this scenario? I have been toying with SUMIF formulas and they appear to work ok except for a couple of hitches. I'll see what you come up with and then we can put our heads together".

          The sample you sent to me was 'read only' so I could not access the formulas and for some reason I could not also access the second sheet with the table in it.
          However, I managed to get around this and I can access everything now. I now see what you have done and it is brilliant to say the least! It suits my purposes wonderfully.

          I have a couple of more questions for you:-

          1)As mentioned in my last post, the "Amount to Allocate" are the amounts that need to go into the various expense columns, so, in the formulas, should I just change the "B" into a "C" in the last section of the formulas?

          2)Quite often, I have a number of different expenses on the one invoice or statement. For example, if I have an invoice from a hardware store which totals $1,000.00, $500.00 of this amount may be for materials, $300.00 may be for tools and $200.00 may be for protective clothing. So, when I allocate the different amounts on the expenses spread sheet, they are all on the same row beside the supplier's (hardware store) name. Can the formulas be adjusted to allow for multiple entries on one row or would this just be complicating things somewhat?

          Again, many thanks for all that you have done.

          Cheers,
          vcoolio.

Post a comment



Thank you for your comment!
When posting a question, please be very clear and concise. This will help us provide a quick and relevant solution to
your query. We cannot guarantee that we will answer every question, but we'll do our best :)