VLOOKUP() works for both numbers and text.
It is likely that your problem is because either the value being searched for or the values in the lookup table are not the same - both look the same, but one is a real number while the other is text.
To see which is which, format the cells with the 'General' number format. Text then appears left aligned and numbers appear right aligned,
or try applying a decimal number format. Numbers will be displayed as 1.00 whilst text will remain as 1.
If this is the problem, you can change text to numbers in a formula:
or number to text:
where the "0" is a format, in this case whole numbers with no decimal places and no thousands separator.
Alternatively, ensure that the stored data is consistent - preferably text that looks like a number should be stored as numbers.