I had to do that, and just used an offset to make them all positive. When it comes time to use the data, I then subtract the offset from the stored number if the stored number is MORE than the offset, OR subtract the number from the OFFSET and set a "negative" flag if the stored number is LESS than the offset.

Say the range is -50 to +70. Add 50, shifting the range to 0-120. Use these "revised" values for your lookup.
Now when you do the lookup, you get a value V

If V > 49 then
V=V-50
NEGFLAG=0
else
V=50-V 'calculates the difference to restore the original data
NEGFLAG=1 'sets the negative flag so you can act upon it with calculations if needed
endif