Hi Jim Trigg,
the JohsSUN's defined function is fine and simple, working with/without a sheet number, allowing reference between different sheets.
But your formula does not work, in the way how it is constructed.
INDIRECT() function it is not an evaluator for formulas, only addresses as text are right.
The formula can be:
=VLOOKUP(INDIRECT("A"&COLUMN()),INDIRECT(MID(CELL("filename"),FIND("#$",CELL("filename"))+2,LEN(CELL("filename")))),2,0)
I have replaced the defined function with a little formula, as another way to get the sheet name.
As this formula to get the sheet name has not range address, there is no problem in give it a name (in the same way as you define a name for a range), for work in any sheet.
Define a range as:
SheetName = MID(CELL("filename"),FIND("#$",CELL("filename"))+2,LEN(CELL("filename")))
The formula:
=VLOOKUP(INDIRECT("A"&COLUMN()),SheetName,2,0)
I think easier is define a name range without the sheet name in it, what can work in any sheet.
Define a range as:
DataRange = $h$1:$w$100 (e.g.)
The formula:
=VLOOKUP(INDIRECT("A"&COLUMN()),DataRange,2,0)
Sample file
I was tired when I posted the question or I would have remembered that indirect only takes an address, not a formula, and given that there's no reason to indirect the local cell reference. The problem with the Sheet() approach is that I want it to be transparent - each sheet references a separate table. The SheetName range is exactly what I'm looking for, though the function actually becomes vlookup(a1,indirect(sheetname),2,0) - note that the SheetName range needs to be indirected to work.