Dan*_*nor 6 excel excel-2007 excel-formula
我有一个有3列的表.我想编写一个公式,给定结构化引用,返回列的索引.这将帮助我使用结构化引用编写VLookup公式.
因此,例如,为表MyTable
的列A
,B
,C
我想能写:
=GetIndex(MyTable[C])
Run Code Online (Sandbox Code Playgroud)
并让它返回3.
现在我只是确保表格范围从工作表的第一列开始,然后我写
=Column(MyTable[C])
Run Code Online (Sandbox Code Playgroud)
但我想要一些更强大的东西.
根据你的例子,一个合适的公式是
=COLUMN(MyTable[C])-COLUMN(MyTable)+1
Run Code Online (Sandbox Code Playgroud)
forumla的第一部分COLUMN(MyTable[C])
将返回引用列的列号.
公式COLUMN(MyTable)的第二部分将始终返回表的第一列的列号.
您提出的问题(或与之相近的问题)的另一个解决方案是使用类似=MATCH("C",MyTable[#Headers],0)
,它将在您发布的示例中返回 3 。
但是,如果您使用 INDEX 而不是 VLOOKUP,则不需要这样做。例如,如果您想在 A 等于 2 的行(假设不超过 1)中找到 C 的值,您可以使用类似 的公式=INDEX(MyTable[C],MATCH(2,MyTable[A],0))
,它很好地自我记录。