does vlookup have to be sorted?
If range_lookup is TRUE (the default setting) make sure that lookup values in the first row of the table are sorted in ascending order. Otherwise, VLOOKUP may return an incorrect or unexpected value. If range_lookup is FALSE (require exact match), values in the first column of table do not need to be sorted.