A VLOOKUP formula will look for all of the Lookup Value and look for an EXACT match (or approximate, if you use True as the last arguement, but that only works if things are set up a certain way) for the value in the first column of the lookup array. Below I'll explain the VLOOKUP a little more specifically, but first I just wanted to inquire to see if you are looking to match only the first 3 characters from one to the other, or exactly how you're doing the lookup.
A VLOOKUP is as follows:
1st Argument: Lookup Value, the value you are matching to the first column in a table
2nd Argument: Table Array, the table that has the first column of IDs that you want to match the Lookup Value to, and also contains the data that you want to extract, to the right of the column containing the match for the lookup value
3rd Argument: Column Index Number, this is the number of the column within the table array that you want to pull the data from when the value on that row matches the lookup value
4th Argument: Range Lookup, You will use False here to look for an exact match for your Lookup Value in the first column of the table array. You will use True here to look for an approximate match for your Lookup Value in the table array. For this to work, the data in the Table Array needs to be sorted in Ascending Order on the first column.
With the explanation here, I don't think that the VLOOKUP will do what you need without either adding a working column of IDs that will make things match for and rearranging your data. However, if you can explain a little more fully (how many characters you want to match on, what happens if there is no match, etc) I might be able to come up with something that will work for you.