Error Checking in Excel
Thanks Thanks:  0
Likes Likes:  0
Results 1 to 9 of 9

Thread: VLOOKUP - problems with similar spellings

  1. #1
    Board Regular
    Join Date
    Feb 2002
    Location
    United Kingdom
    Posts
    68
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    I am having problems in getting VLOOKUP to select an option where the spelling is similar to another.

    I am using this formula:
    =IF(ISNA(VLOOKUP(H5,$A$25:$B$37,1)),"",VLOOKUP(H5,$A$25:$B$37,1))

    H5 contains the text and I need to select the relevant code.

    The data array is as follows:

    Code Text
    BOD Bodyshop Issue
    COR Cost of Repair
    COW Completion of work
    M.I. Manager Issue
    OTH Other
    PART Parts Issue
    PROD Product Issue
    QOW Quality of Workmanship
    RECI Reception booking in
    RECO Reception at time of collection
    SI Sales Issue
    T.T Time taken

    However, because of the similarities in the codes COR+COW and RECI+RECO, VLOOKUP won't select them.

    Is there a way I can force VLOOKUP to test the whole code?

    Thanks

    Nobby


  2. #2
    MrExcel MVP
    Join Date
    Feb 2002
    Location
    Newcastle, UK
    Posts
    1,174
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    On 2002-04-03 05:10, Nobby wrote:
    I am having problems in getting VLOOKUP to select an option where the spelling is similar to another.

    I am using this formula:
    =IF(ISNA(VLOOKUP(H5,$A$25:$B$37,1)),"",VLOOKUP(H5,$A$25:$B$37,1))

    H5 contains the text and I need to select the relevant code.

    The data array is as follows:

    Code Text
    BOD Bodyshop Issue
    COR Cost of Repair
    COW Completion of work
    M.I. Manager Issue
    OTH Other
    PART Parts Issue
    PROD Product Issue
    QOW Quality of Workmanship
    RECI Reception booking in
    RECO Reception at time of collection
    SI Sales Issue
    T.T Time taken

    However, because of the similarities in the codes COR+COW and RECI+RECO, VLOOKUP won't select them.

    Is there a way I can force VLOOKUP to test the whole code?

    Thanks

    Nobby

    change your formula to:

    =IF(ISNA(VLOOKUP(H5,$A$25:$B$37,1,0)),"",VLOOKUP(H5,$A$25:$B$37,1,0))

    adding the 0 (same as false) at the end tell excel to find an Exact match. using 1 (or true) is the same as Not having that part of the formula and will default to Nearest/Best Match.
    "Have a good time......all the time"
    Ian Mac

  3. #3
    MrExcel MVP
    Join Date
    Feb 2002
    Location
    Newcastle, UK
    Posts
    1,174
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    what I have jst noticed is the the area your looking at is 2 columns wide, but you're only asking for it to return from Column 1???

    therefore you either:

    don't need the reference Col B:

    or

    Change to:

    =IF(ISNA(VLOOKUP(H5,$A$25:$B$37,2,0)),"",VLOOKUP(H5,$A$25:$B$37,2,0))

    "Have a good time......all the time"
    Ian Mac

  4. #4
    Board Regular
    Join Date
    Feb 2002
    Location
    United Kingdom
    Posts
    68
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Thanks for that, but it raises a couple of issues (ie exposing my ignorance again!)

    Firstly, the formula is trying to match the text entry in H5 with the list of text in B25:B37 and then return the code contained in the corresponding cell in column A. I thought that the 1 in the VLOOKUP formula selected the column from which to return data? Have I got this wrong?

    Secondly, using your suggestion of adding a 0 for an exact match now returns a blank. It can't be a typo causing it to fail because the text in H5 is created from a data validation list.

    Any ideas where I'm going wrong?

    Cheers

    Nobby

  5. #5
    MrExcel MVP
    Join Date
    Feb 2002
    Location
    Newcastle, UK
    Posts
    1,174
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    On 2002-04-03 05:35, Nobby wrote:
    Thanks for that, but it raises a couple of issues (ie exposing my ignorance again!)

    Firstly, the formula is trying to match the text entry in H5 with the list of text in B25:B37 and then return the code contained in the corresponding cell in column A. I thought that the 1 in the VLOOKUP formula selected the column from which to return data? Have I got this wrong?

    Secondly, using your suggestion of adding a 0 for an exact match now returns a blank. It can't be a typo causing it to fail because the text in H5 is created from a data validation list.

    Any ideas where I'm going wrong?

    Cheers

    Nobby
    Yes,

    The help file for VLOOKUP is:

    Searches for a value in the leftmost column of a table, and then returns a value in the same row from a column you specify in the table. Use VLOOKUP instead of HLOOKUP when your comparison values are located in a column to the left of the data you want to find.

    Syntax

    VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

    Lookup_value is the value to be found in the first column of the array. Lookup_value can be a value, a reference, or a text string.

    Table_array is the table of information in which data is looked up. Use a reference to a range or a range name, such as Database or List.

    · If range_lookup is TRUE, the values in the first column of table_array must be placed in ascending order: ..., -2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE; otherwise VLOOKUP may not give the correct value. If range_lookup is FALSE, table_array does not need to be sorted.
    · You can put the values in ascending order by choosing the Sort command from the Data menu and selecting Ascending.
    · The values in the first column of table_array can be text, numbers, or logical values.

    · Uppercase and lowercase text are equivalent.

    Col_index_num is the column number in table_array from which the matching value must be returned. A col_index_num of 1 returns the value in the first column in table_array; a col_index_num of 2 returns the value in the second column in table_array, and so on. If col_index_num is less than 1, VLOOKUP returns the #VALUE! error value; if col_index_num is greater than the number of columns in table_array, VLOOKUP returns the #REF! error value.

    Range_lookup is a logical value that specifies whether you want VLOOKUP to find an exact match or an approximate match. If TRUE or omitted, an approximate match is returned. In other words, if an exact match is not found, the next largest value that is less than lookup_value is returned. If FALSE, VLOOKUP will find an exact match. If one is not found, the error value #N/A is returned.

    Remarks

    · If VLOOKUP can't find lookup_value, and range_lookup is TRUE, it uses the largest value that is less than or equal to lookup_value.
    · If lookup_value is smaller than the smallest value in the first column of table_array, VLOOKUP returns the #N/A error value.
    · If VLOOKUP can't find lookup_value, and range_lookup is FALSE, VLOOKUP returns the #N/A value.

    take note of the bold.

    Also you can't use a negative value for the returning Column.

    In this case you should INDEX and MATCH

    so, use:

    =INDEX(A25:B37,MATCH(H5,B25:B37,0),1)

    If you care to look at the help files on these it'll let you know how they work and similarities between this and VLOOKUP. (You've got your homework, so be warned, you may be tested).
    "Have a good time......all the time"
    Ian Mac

  6. #6
    Board Regular
    Join Date
    Feb 2002
    Location
    United Kingdom
    Posts
    68
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    There goes my chance of a quick 9 holes of golf after work tonight!

    Assignment duly accepted.

    Thanks.

    Nobby

  7. #7
    Board Regular
    Join Date
    Apr 2002
    Location
    Cape Town,South Africa
    Posts
    234
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Nobby.

    If you still need help with Vlookup,contact me or you an email me your spreadsheet "if it's not too private"and I will sort it out for you and share it with the board when I am done.I know exactly what you need.

  8. #8
    Board Regular RichardS's Avatar
    Join Date
    Feb 2002
    Location
    Victoria, Australia
    Posts
    761
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Basically you just need to put your text in the first column and code in the next column, then sort the table by Text. Then is the lookup formula previously posted with a 2 instead of a 1.
    Richard

  9. #9
    MrExcel MVP Mark O'Brien's Avatar
    Join Date
    Feb 2002
    Location
    Columbus, OH, USA
    Posts
    3,530
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    I apologise for sending this one back to the top, especially as a solution has been provided. However the VLOOKUP formula here is one that I have used myself and a few days later a good tip was submitted by IML in the "Daily Tips" section, for a more efficient way of getting the same result:

    Vlookup is a powerful tool. Sometimes, if an exact match is not found, a value other than the standard #N/A is desirable. For example, if your look up range (table_array) is A1:C10, the formula


    VLOOKUP("cat",$A$1:$C$10,3,FALSE)


    will return #N/A if cat is not found in A1:A10. If instead you wanted to return the phrase “No Match”, the following formula is often suggested:


    =IF(ISNA(VLOOKUP("cat",$A$1:$C$10,3,FALSE)),"no match",VLOOKUP("cat",$A$1:$C$10,3,FALSE))


    This functions properly, but at the expense of having to lookup your value twice. This can be improved by the following:


    =IF(COUNTIF($A$1:$A$10,"cat")>0,VLOOKUP("cat",$A$1:$C$10,3,FALSE),"no match")


    or with even less carpal tunnel risk by recognizing excel treats zero and “False” identically:


    =IF(COUNTIF($A$1:$A$10,"cat"),VLOOKUP("cat",$A$1:$C$10,3,0),"no match")


    IML
    The daily tips are found at:

    http://www.mrexcel.com/weblog/weblog.shtml




Some videos you may like

User Tag List

Like this thread? Share it with others

Like this thread? Share it with others

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •