我曾经多次讨论过使用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
答案 0 :(得分:0)
假设您没有任何差距,可以尝试计算第一个月和当前月份之间的月份数,例如
=DATEDIF(FIRSTMONTH,CURRMONTH,"m")+1