我有两列,一列是日期,一列是值,我想把所有单元格相加,其中日期的年份是所需的年份。我的问题是,我在表格中有标题,我不想手动定义要考虑的第一行和最后一行,而是取所有行...
失败并出现#VALUE!
错误:
=SUMPRODUCT((YEAR(C:C)=2015)*(E:E))
这有效:
=SUMPRODUCT((YEAR(C2:C1000)=2015)*(E2:E1000))
在C1
和E1
我有标题(文本)。它们被格式化为文本,并且在简单的公式中足以将它们排除在公式之外,但这不适用于SUMPRODUCT
...
有没有更好的解决办法?
答案1
另外一个稍微更易读的建议。
=SUM(IFERROR((YEAR(C:C)=2015)*E:E,0))
将其用作数组函数(按Ctrl++ Shift,Enter而不仅仅是Enter)
答案2
有没有更好的解决办法?
就在这里。
使用表格(选择您的范围然后:插入 - 表格),然后您可以在那里编写如下公式:
=SUMPRODUCT((YEAR(Table1[HeaderC])=2015)*(Table1[HeaderE]))
当然,不是把HeaderC
真正的标题写在 C 列,E 列也一样。
答案3
发布后不久,我就有了一个想法,而且它有效:
解决方案:
=SUMPRODUCT((YEAR(INDIRECT("C2:C"&(MATCH(0;E:E;-1));TRUE))=2015)*(INDIRECT("E2:E"&(MATCH(0;E:E;-1));TRUE)))
match 函数查找最后一个值 >= 0 的单元格,对我来说,这很好用。根据用例,您必须调整 match 函数...