2014-02-24 188 views
0

我有一个非常大的表格,每个月都会用新的价格添加一列。然后,我必须用这些值进行一些分析。我已经做到了,但是使用了公式中列的名称。我想知道我是否可以将公式指向下拉列表,因此我只是在可用时选择新时段并获得结果。从下拉列表中选择数据

这里是我一直在使用该公式的一些例子:

{=SUM(IF($B17=Matriz[money];Matriz[31-10-2013]*Matriz[country];0))}

我想用类似

{=SUM(IF($B17=Matriz[money];Matriz[*dropdow reference*]*Matriz[country];0))}

PD:在{ }是矩阵计算(当你使用Ctrl + Shift + Enter)

回答

0

我建议你使用INDEX + MATCH代替IDIRECT(因为IDIRECT是挥发性功能,您的公式将每个时间重新计算任意单元格更改):

=SUM(IF($B17=Matriz[money];INDEX(Matriz[#Data];0;MATCH(A1;Matriz[#Headers];0))*Matriz[country];0))

,然后按CTRL + SHIFT + ENTER 评估它。

或者你可以使用SUMPRODUCT - 它不需要数组项:

=SUMPRODUCT(($B17=Matriz[money])*INDEX(Matriz[#Data];0;MATCH(M2;Matriz[#Headers];0))*Matriz[country])

我认为你的下拉值在A1细胞。

  • 这部分MATCH(A1;Matriz[#Headers];0)A1细胞 在你的表头发现价值
  • 这部分INDEX(Matriz[#Data];0;MATCH(A1;Matriz[#Headers];0))获取数据的 相应列
0

你一个重新寻找indirect功能。有了它,你可以构建一个包含单元格公式的动态字符串 - 然后间接函数将把公式字符串解析为其结果。

如果没有具体的例子,有点难以描述。

看一看以下资源:

about.com

http://www.cpearson.com/excel/indirect.htm