In response: #1 - totally agree with ya on that one.
#2 - this seems like the easier way to work with the data, and will probably be the action I take.
#3 - Didn't work. It returned a value of zero even if there was number in the range.
If it returns 0 then that means you have a problem with the underlying data in the lookup table. It means that the numbers in column G are numbers stored as text, so your LOOKUP() formula is also returning a string that represents a number. The SUMIF() formula is looking for number data types, not string data types, which means that they are ignored.
So if you go for option 3 then you will have to convert column G from text to numbers.