LOL
OFFSET allows you to specify a starting cell and then create a range by specifying how may rows/columns away from it to start. eg =OFFSET(A1,4,7) means start at A1 and then go down 4 rows and across 7 columns, so you end up at cell H5.
I can then add the last 2 arguments that allow me to specify how high and wide the range is to be from that point, eg
=OFFSET(A1,4,7,60,2)
takes the starting point of A1, uses the first two arguments to get to H5, and then from there expands to a height of 60 rows (including H5) and 2 columns wide (including H5), so your range you just created is H5:I64
So the trick with your data is to find the pattern fo rthe table references and then use other functions to build the numbers to go in the arguments for the OFFSET function.
Your tables are all set 3 cols apart, eg
AB (offset from A1 is 0 rows)
DE (offset from A1 is 3 rows)
GH (offset from A1 is 6 rows) etc
Just need then to get a pattern that increments in 3s. Given that your lookup values don't seem to follow an exact pattern, it seems easiest to use MATCH to return a 1,2,3,4,5 etc depending on which value it matches H11 to, take 1 away from it so that you get the values 0,1,2,3,4,5 etc instead (You need to get a 0 for the first result so you can hit A1), and then just multiply by 3 to get the feed for the OFFSET argument.
Addendum
Thanks fairwinds, much appreciated