Excel:使用动态列引用计算另一个工作表上的值

时间:2018-01-04 20:20:51

标签: excel-formula

我在名为B7的工作表的单元格Summary Stats中有一个简单的公式,它引用了一个名为Rolling Returns Data的工作表:

=COUNT('Rolling Returns Data'!C$11:C$17202)

我希望能够动态引用公式中的列,即我有C in cell B1表单的Summary Stats字母,并且希望能够替换对C列的引用公式引用了单元格B1,这样如果我改变公式即计算结果。那时正在执行的是:

=COUNT('Rolling Returns Data'!D$11:D$17202)

2 个答案:

答案 0 :(得分:0)

Scott Craner所述,请使用INDIRECT。

=COUNT(INDIRECT("'Rolling Returns Data'!"&A1&"$11:"&A1&"$17202"))

现在您只需要输入要引用的列的字母即可。您当然可以将A1引用更改为您想要的任何内容。或者您可以将代码更改为以下

=COUNT(INDIRECT("'Rolling Returns Data'!"&A1))

并使用A1指定列的地址,在本例中为“C $ 11:C $ 17202”。

答案 1 :(得分:0)

如果你可以使用列号而不是列号,那么这个非易失性公式将起作用:

=COUNT(INDEX('Rolling Returns Data'!1:17202,11,$B$1):INDEX('Rolling Returns Data'!1:17202,17202,$B$1))  

如果您确实想使用列字母,则可以使用以下方法将列字母转换为列号:

=COLUMN(INDIRECT($B$1 & 1)) 

但是你失去了非挥发性。

编辑: 如果使用列号并将B1留空,则将返回所有列的计数。