Excel - 如何选择带有日期的列进行数组计算?

Excel - 如何选择带有日期的列进行数组计算?

我无法理解这一点。我们的工作表中的数据包含带有日期标题的列(2017 年 6 月、2017 年 7 月、2017 年 8 月),这些是“滚动标题”(它们提供当前日期的信息 - 现在在 3 月,显示的第一个月份是 2017 年 4 月 - 在 4 月,第一个标题将是 2017 年 5 月。我需要能够根据特定时期对这些列中的成本进行求和,例如给出从给定日期开始的两年的全年总额。我尝试了下面的方法,但它给了我一个 #Value 错误

=SUMIFS(Calc1!EZ2:HR10000,Calc1!EZ1:HR1,">"&DATE((YEAR(Calc1!EX2)+2),1,1),Calc1!EZ1:HR1,"<"&DATE((YEAR(Calc1!EX2)+3),1,1))

将其标记为数组公式也会产生相同的结果。

我做错了什么?有没有更好的方法(使用聚合?)。

谢谢,雷内

答案1

您可以使用以下公式:

=sumproduct((--(Calc1!EZ1:HR1>DATE((YEAR(Calc1!EX2)+2),1,1)))*(--(Calc1!EZ1:HR1<DATE((YEAR(Calc1!EX2)+3),1,1)))*(--(Calc1!EZ2:EZ10000<>"")),Calc1!EZ2:HR10000)   

Sumproduct 可以根据标题行和标题列中的条件对数组引用(行和列)求和,这就是您的情况(如果标题符合条件,则对列中的单元格求和),
您所要做的就是为行创建一个条件(这样公式就可以定义行数),我刚刚使用:
Calc1!EZ2:EZ10000<>"" 您可以为行创建另一个条件只是为了让 sumproduct 识别行,因为 Date 的初始条件将识别列,当满足这两个条件时,单元格将被添加,您将得到结果
当每个条件具有与其他条件相同的行数时,Sumifs 有效,事实并非如此您的条件是列的标题(Calc1!EZ1:HR1),它与您的整个数组(Calc1!EZ2:HR10000)不同

你的问题就像超级用户问题 895987这个问题有你需要的答案

答案2

嘿 Rene,我想提出一些与您的查询相关的例子:


=SUMIFS(C2:C9, B2:B9, ">=10/1/2014", B2:B9, "<=10/31/2014")

这将对 10 月 10 日至 10 月 31 日之间的值进行求和。


=SUMIFS(C2:C9, B2:B9, ">="&B2, B2:B9, "<="&B7)

以上是动态公式,其中用单元格地址代替日期。希望这对您有所帮助。

相关内容