EXCEL:使用INDIRECT动态计算工作表

时间:2015-03-09 03:53:21

标签: excel excel-indirect

我曾经多次讨论过使用INDIRECT和3D引用,但似乎没有人专门解决(或修复)这个问题。

我试图在不使用VBA的情况下计算工作表的位置。每张纸代表一个月,并具有标准化名称(例如JAN-15,FEB-15,MAR-15等)。我的想法是通过计算JAN-15和当前表之间的页数来找到位置。每张纸的A1 = 1,使用3D参考在纸张上求和。

以二月为例,我可以毫不费力地对此进行硬编码:

= SUM(' JAN-15:!FEB-15' A1)

当我这样做时,我得到预期的结果2.但是,我希望每个月的表单动态生成其位置,而不必每次都更改公式。所以我尝试了这个:

单元名为FIRSTMONTH =' JAN-15
名为CURRMONTH = RIGHT的单元格(CELL(" FILENAME",A1),6)
N1 = CONCATENATE("'",FIRSTMONTH,":",CURRMONTH,"'!A1")
(N1正确评估为' JAN-15:FEB-15'!A1)

当我尝试这个公式来生成位置时:

= SUM(INDIRECT(N1))

我得到#REF!错误。我也尝试过这种变化:

= SUM(INDIRECT(" N1&#34))

返回0。

任何人都知道如何才能让它发挥作用?或者有没有更好的方法不使用VBA?

-David

1 个答案:

答案 0 :(得分:0)

假设您没有任何差距,可以尝试计算第一个月和当前月份之间的月份数,例如

=DATEDIF(FIRSTMONTH,CURRMONTH,"m")+1