Another solution to the question you asked (or something close to it) is to use something like =MATCH("C",MyTable[#Headers],0) , which will return 3 in the example you provided.
However, if you used INDEX instead of VLOOKUP, you would not need to do this. For example, if you want to find the value of C in a string (presumably no more than one), where A is 2, you can use a formula like =INDEX(MyTable[C],MATCH(2,MyTable[A],0)) , which well self-documenting.
source share