123user wrote...
I am able to use arrays this way to get wat I want. The drawback, as I said,
is that I have to name the full column of each field of the database.
....
No, you don't. Look at the first formula in my previous response.
=INDEX(CRDB,MATCH(1,(INDEX(CRDB,0,MATCH("SQLVAR",I NDEX(CRDB,1,0),0))=$B$1)
*(INDEX(CRDB,0,MATCH("DBYEAR",INDEX(CRDB,1,0),0))= B$2),0),
MATCH($A4,INDEX(CRDB,1,0),0))
As I said, not elegant, but it *only* requires the named range for the
table. That said, I would add one defined name per table returning the
table's top row, which contains the field names. Something like CRDB.FN
referring to =INDEX(CRDB,1,0). That would allow shortening the formula
above to
=INDEX(CRDB,MATCH(1,(INDEX(CRDB,0,MATCH("SQLVAR",C RDB.FN,0))=$B$1)
*(INDEX(CRDB,0,MATCH("DBYEAR",CRDB.FN,0))=B$2),0), MATCH($A4,CRDB.FN,0))
|