MS Office Forum

Ask Question   UnAnswered
Home » Forum » MS Office       RSS Feeds

Looking for some ideas or guidance

  Asked By: Gin    Date: Aug 29    Category: MS Office    Views: 1660

I was hoping maybe someone could share their knowledge with me on this:

I have two worksheets in one workbook.

Worksheet 1 has information such as:

Name Company Phone Email

(but not data in phone # column)

Worksheet 2 has information such as:

Company Phone

(has the phone # data)

I need to Find & partial-match the company name from worksheet1 in
worksheet2, then copy the phone number for that matching company name
to the correct correlating cell in worksheet 1.

So basically: look at company name in worksheet1 starting at row 2,
find partial match from column A in worksheet2, copy the data from the
cell of column B in worksheet2 (for that particular row) over to the
correlating cell in column C of worksheet1.

Then repeat that process for each row thereafter.

I have only limited experience with VB and it was like 10 years
ago...so any help is greatly appreciated.



6 Answers Found

Answer #1    Answered By: Daniel Jones     Answered On: Aug 29

You can solve your problem using the function VLOOKUP. It’s very easy to

Answer #2    Answered By: Mercedes Andrews     Answered On: Aug 29

The difficult part here is the "partial" match.
What is the criteria for the "partial" match?
the worksheet  function VLookup requires an EXACT match.
I'm a little cautious of the partial part.
I think it's definitely possible by creating a VBA Function
and using it instead of VLookup, but I want to make sure
that's what you want before working on it...
What's the data  look like for each sheet?
Can you provide some examples?

Answer #3    Answered By: Fuzairah Neeman     Answered On: Aug 29

Thank you for your help. An example of "partial match" might be:

In worksheet1, the company  name might be listed as "Microsoft Corp" in
one row, then as "Microsoft Corporation" in another row, and perhaps
"Microsoft (Windows CE)" in another row...while the company name in
worksheet2, would simply be "Microsoft."

But in thinking about it further, maybe it would just be easier to
look for exact matches, and just have a longer list in worksheet2,
that would include all the variations of a particular company
name...even though it's redundant, but otherwise not adverse.??

Any suggestions/examples for a procedure using vLookup would be
greatly appreciated. I've seen some on MSDN of course, but your
thoughts are important & appreciated.

Answer #4    Answered By: Brandi Ramirez     Answered On: Aug 29

Forgot to mention, that worksheet1 changes/is updated frequently,
while worksheet2 is fairly static (company phone  numbers don't change
often, list is typically only updated as new companies are added).

Answer #5    Answered By: Archie Parker     Answered On: Aug 29

If it's fairly simple to have multiple entries and look for exact matches, then
that would probably be the way to go.
Simply because the possible complexity of the VBA is ... dubious...
What I mean is:
In your example, you mentioned "Microsoft (Windows CE)" in one worksheet,
then somehow with this as input, it would find  "Microsoft" as a match...
about "Windows" or "CE"?
Do you look for ALL? in what order? what about 2 of the three?
What if the company  list included "CE Windows and Doors".
THAT company would match  two of the three words, would that then
constitute a better "match"??
Depending on the size of the listings involved, this could be an issue.
but then again...
The most straight-forward approach would be to create an "alias" column  in the
company name sheet and duplicate the records with "aliases"...
then, use the function wizard to insert a vlookup function.
the "help" for this function looks like:
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.
if you'd like more help, send me some sample files directly and I'll take a

Answer #6    Answered By: Hamdan Younis     Answered On: Aug 29

I'll experiment with that, and share  the results here.

Didn't find what you were looking for? Find more on Looking for some ideas or guidance Or get search suggestion and latest updates.