I rarely use the Offset worksheet function.
VLookup function uses the first column for it's list to look in and then
there's a column number that is entered as the third argument to return the
value of that particular column of the table.
The lookup function that I often times use the INDIRECT function with is the
MATCH function. Example is the following:
=INDIRECT(ADDRESS(MATCH(A7,Sheet1!$A:$A,0),COLUMN(),,,"Sheet1"))
The only thing you have to watch out for with the MATCH function is it
returns the Nth cell of either that column or row (can only be used with one
column or one row, can't be multiple columns and rows at the same time), so
if you use a range like $A$5:$A$250, if the data is found in A5, the MATCH
function will return the value of 1 cause A5 is the first cell within the
column. The above example is assuming though that both sheets are the same
structure column wise as you can see with the COLUMN() function, though not
necessarily the same rows.