Excel: Data validation to search for particular string

I have a spreadsheets with 16000 product codes in 31 old product groups, which I need to assign to new product groups.

There are 6 new product groups.

The problem is that the old product groups are not contained as a separate value in a column, but is part of the product code. The code contains redundant elements as prefix and suffix, and the identifier is in the middle of those between two periods.

So for instance:

10000.ABCD.0001 belongs to Product group MEDIA
12333.ADDE.0001 belongs to Product group MEDIA also
12333.BCDA.0001 belongs to Product group PACKAGING

i.e. the first 5 digits, the 2 periods and the last 4 digits are irrelevant for this purpose. Only the 4 letter identifier links to the new product groups.

I have a table with all the 31 identifiers mapped to the new groups.

I now need to compile a formula to check the product codes for the identifier value from the table and return the new product groups for each product code in a new cell.

I know how to do lookups for whole cell values but don't know how to compile the correct syntax for the formula to only match a certain part of the contents to an array.

Any help would be appreciated.

LVL 31
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Rob HensonFinance AnalystCommented:
Assuming value in A1, this will strip out the middle 4 characters:


Contained in your lookup would be:

=VLOOKUP(MID(A1,7,4),range, offset, lookup_type)

Rob H
Atdhe NuhiuCommented:
A2 is your existing product code

B2 has the formula =VLOOKUP(MID(A2,7,4),D2:E6,2) and gives the translated new prod code based on A2

Column d is old product code
column e is new product coe

D2:E6 represents a table mapping your product code old to new

Hope that makes sense else just ask

Ignore b4
captainAuthor Commented:
Makes sense, but I am getting odd results maybe my lookup skill is not as good as it used to be...

Values of old/new product groups is in column A and B of a spreadsheet. Array A2:B32

Do I use MATCH or LOOKUP for this? At the moment it only returns values from A2:B4...
OWASP: Forgery and Phishing

Learn the techniques to avoid forgery and phishing attacks and the types of attacks an application or network may face.

Atdhe NuhiuCommented:
Match returns a relative position whereas lookup returns a value
captainAuthor Commented:

This is my formula, the array for the lookup is on a separate spreadsheets called Consolidator


Open in new window

However, it does not return the correct value...baffled
Atdhe NuhiuCommented:
What does it return? It looks ok from here but obviously I can't see your table
captainAuthor Commented:
The item is .HUWL. which is in row 30 and should return PLK
it returns however the value from row 3 (ASDA) which is SET

so it does not return FALSE just simply the wrong value.

MID(A2,7,4) returns HUWL so the error is in the lookup, I have seen this before where it almost behaves like a bug, and the values would only return correctly if I recreated the file.

I will try that..
Atdhe NuhiuCommented:
I think you should sort your lookup table. My guess is the row 4 is past HUWL in the alphabet and it gives up the lookup at that point.

You perhaps want to include an explicit 'FALSE' as the last parameter of the lookup function (exact match)

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
captainAuthor Commented:
Here is a file with some of the products, to show the issue.


I will sort this in the meantime...

EDIT: Sorting worked...now onto the big file...
captainAuthor Commented:
captainAuthor Commented:
Thanks all, split for getting me there.
Atdhe NuhiuCommented:
Sorting fixes it. Using the last parameter has limited results by itself. Not sure why
Atdhe NuhiuCommented:
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Excel

From novice to tech pro — start learning today.