Using vlookup you could use
=IF(B3="","",VLOOKUP(B3,{301,1.25;302,1.5;303,1.5;304,1.75;305,1.25;306,1.5;307,0.75;308,0.75},2,0))
and there are no problems expanding that for 20 values, assume you put 301
in E1 and 1.25 in F1
302 in E2 and 1.5 in F2 and so on down to row 20, then you could use
=IF(B3="","",VLOOKUP(B3,E1:F20,2,0))
or hardcoded (I faked some more values using existing ones)
=IF(B3="","",VLOOKUP(B3,{301,1.25;302,1.5;303,1.5;304,1.75;305,1.25;306,1.5;307,0.75;308,0.75;309,1.25;310,1.5;311,1.5;312,1.75;313,1.25;314,1.5;315,0.75;316,0.75;317,1.5;318,1.75;319,1.5;320,1.75},2,0))
getting a tad long but it works, I would recommend using either a cell
reference like E1:F20 or named range
for the table, using concatenated IFs
=IF(OR(B3=301,B3=305),1.5,"")&IF(OR(B3=302,B3=303,B3=306),1.5,"")&IF(B3=304,1.75,"")&IF(OR(B3=307,B3=308),0.75,"")
since some values are the same you can use OR and it might be possible that
you can use a regular if or formula without concatenating them, also you
could probably skip a bit using vlookup since some values are the same
--
Regards,
Peo Sjoblom
(No private emails please)