第一次发表海报。我试图将早期日期工作表中的单元格求和,以便保持年初至今的比较计数。现在我的工作簿设置方式,我在每个工作表上有一年的数据,使用的数据是月度报告。月度报告会粘贴到我的“模板”中。工作表。然后将来自这些数据的数据组织成单独工作表上的时间序列,每个工作表的名称是数据对应的年份。在整个一年中添加新数据时,我想要提取上一年的年度总数,以便比较相似的时间范围。这就是我的公式目前的样子。
=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
拉入只有今年当前报告月结束的月份才能进行年初至今的变更。当我尝试执行此操作时,这将在Excel中返回#REF!
。第一印象似乎是INDIRECT
无法将OFFSET
视为一种功能,并将其视为文本。有没有办法解决这个问题?
我看到之前发布的类似内容,但无法转换为我的情况。任何帮助将不胜感激。
答案 0 :(得分: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
,将所有单元格值作为公式结果提供。< / p>
答案 1 :(得分: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)
设置为始终引用上一年的1月。然后,OFFSET
按MONTH(RIGHT(Template!$F$4,10))
引用的报告中找到的月份数加var url = 'http://www.reddit.com/r/nsfw/';
var request = require('request');
request = request.defaults({jar: true });
request.post({
followAllRedirects: true,
url: 'http://www.reddit.com/over18?dest=' + encodeURIComponent(url),
form: {uh: '', over18: 'yes', }
}, function(err, httpResponse, html) {
…
});
。