Excel如何通过标题直接显示栏目?

目前我在Excel表中有一个很大的公式:

= SUM(SUMIF(INDIRECT(A9& “!$ F:$ F”), “工作”; INDIRECT(A9& “$ B:$ B!”))+ SUMIF(INDIRECT(A9& “$ F:$ F!”) ; “开放”; INDIRECT(A9& “$ B:$ B!”))+ SUMIF(INDIRECT(A9& “$ F:$ F”);( “!$ B:$ B” A9&) “内部” 的,间接的)+(SUMIF(INDIRECT(A9& “$ F:$ F!”), “已完成”; INDIRECT(A9& “$ AP:$ AP!”))))

A9是公式必须使用的Excel表的名称。 因此,例如在A3中有“20140612”,所以它必须使用名称为“20140612”的Excel表格。 此外,它总结了一些价值取决于一些条件。

我的问题是:我希望把他们的头条列在其他表中,而不是他们的位置。 因此,例如,le列AP并不总是必须位于AP位置,而是总是标题“Points”。

你能想到一个可以通过标题指引栏目的公式的适应吗? 我虽然是MATCH公式 但我不确定我必须把这个放在哪里。

我认为最简单的答案就是在你的工作表中使用命名的范围 。 通过这种方式,您可以将范围(当前在AP栏中)命名为“点数”,将公式更改为使用“点数”而不是“$ AP:$ AP”,如果移动点数据,公式将保持不变。

如果您打算不断更改标题行值,则可以使用HLOOKUP将标题列与MATCH&INDEX结合起来。

要回答你关于MATCH()的用法的问题,值得把它看作是VLOOKUP()或者HLOOKUP()一半,也就是说,它是find包含你正在search的值的行或列的位,那么你可以使用INDEX()从您指定的范围获取该行/列。

所以,如果你知道你的列标题之一是"Points" ,那么你可以通过使用:

 =MATCH("Points", A1:Z1, FALSE) 

例如,如果"Points"是J列的标题,则返回10。 如果您想使用该列进行查找,则可以使用OFFSET()将该列定义为用于查找的范围,因此,假设我想在“点”列中find文本"foo"我可以使用:

 =MATCH("foo", OFFSET(A1:Z1000, 0, MATCH("Points", A1:Z1, FALSE) - 1, 1000, 1), false) 

…使用我之前find的列索引作为OFFSET()的input,以便dynamic引用J1:J1000 ,然后在该列中search"foo"

在你的例子中,而不是A1:Z1000你可以使用一个调用INDIRECT()来返回源表中的整个感兴趣的范围。