0

第一次海报。我正在尝试对较早日期的工作表中的单元格求和,以保持年初至今的计数以进行比较。我的工作簿现在设置的方式,每个工作表上都有一年的数据,使用的数据是月度报告。月度报告粘贴到我的“模板”工作表中。然后将这些数据组织成单独工作表上的时间序列,每个工作表的名称是数据对应的年份。在一年中添加新数据时,我想从上一年提取年初至今的总数,以便比较相似的时间范围。这就是我的公式目前的样子。

=SUM(INDIRECT("'"&LEFT($A13,4)&"'!C17:OFFSET(C$16,MONTH(RIGHT(Template!C$3,10)))"))

LEFT($A13,4)引用我想要为当前工作表提取的年份,并MONTH(RIGHT(Template!C$3,10))确定当前报告的月份数。因此,对于 2015 年 5 月,Left($A13, 4)将返回"2014"并将MONTH(RIGHT(Template!C$3,10))返回5.

正如(我希望)很明显,我试图在上一年工作表上找到的年度系列的开头开始我的总结,然后OFFSET只使用以今年的当前报告月份结束的月份来提取进行年初至今的更改。#REF!当我尝试这样做时,这将在 Excel 中返​​回。给人的第一印象似乎INDIRECT是没有将其识别OFFSET为功能,而是将其视为文本。有没有办法解决?

我看到之前发布了类似的内容,但无法转化为我的情况。任何帮助将不胜感激。

4

2 回答 2

0

没有数据就很难复制,所以把它当作它的价值......

分解你的公式(每行一个不同的参数),我们有

=SUM(
  INDIRECT(
    "'"
    &
    LEFT($A13,4)
    &
    "'!C17:OFFSET(C$16,MONTH(RIGHT(Template!C$3,10)))"
  )
)

这意味着行开头"'!C17:OFFSET(...很可能被 Excel 视为文本,因为它包含在引号中。你可能想要

=SUM(
  INDIRECT(
    "'"
    &
    LEFT($A13,4)
    &
    "'!"
    &
    C17
    &
    ":"
    &
    OFFSET(C$16,MONTH(RIGHT(Template!C$3,10)))
  )
)

为了将所有语法(', !,:等)INDIRECT作为字符串提供,并将所有单元格值作为公式结果提供。

于 2015-06-19T02:08:16.373 回答
0

感谢您花时间回答我的问题。我想我找到了一个比我之前想象的更可行的解决方案。我没有使用仅包含一年数据的唯一年度工作表,而是将报告添加到新工作表的末尾,其中整个时间序列在标题为“原始数据”的工作表中,列“A”包含月底日期的新工作表。这就是我将新报告添加到“原始数据”表的公式。

=IF(AND(YEAR($A2)=YEAR(Template!$F$4), MONTH('Raw Data'!$A2)=MONTH(Template!$F$4)),Template!C$35," ")

Template!$F$4引用报告中的日期。

然后,我的年度工作表会参考“原始数据”表,以消除使用该INDIRECT功能的需要。为了维护“原始数据”的“C”列中的数据的年初至今总和,这是我的公式。

=SUM(INDEX('Raw Data'!C:C,(MATCH(EOMONTH($A17,-12),'Raw Data'!$A:$A,0))):OFFSET(INDEX('Raw Data'!C:C,(MATCH(EOMONTH($A17,-13),'Raw Data'!$A:$A,0))),MONTH(RIGHT(Template!$F$4,10)),0))

EOMONTH($A17, -12)设置为始终参考上一年的一月。然后,这是OFFSET通过引用MONTH(RIGHT(Template!$F$4,10))并汇总的报告中找到的月份数。

于 2015-06-19T18:10:06.767 回答