Look up all the zones into separate fields, then use a calculation field with a case statement to select the correct cost from the looked up "zone" fields. That's the easiest method given your table structure here.
Case ( Zone = "Zone 1" ; Zone1Lookup ;
Zone = "Zone 2" ; Zone2Lookup ;
// and so forth.
If you had each combination of zone and weight in a separate record, you could try a different approach that just looks up the one zone based cost for a given weight.