Sumproduct by Category,每天求和,top time求和

Sumproduct by Category, sum each day and sum top time

如果我在excel中有以下数据,是否可以根据下面table中的数据得到所有数据的总和

所以基本上忽略数据已被较晚日期时间取代的白行(我在示例中拆分了日期时间字段)。

我已经尝试了以下公式,但我只得到了#VALUE!错误

=SUMPRODUCT(LARGE((Table!A:A='Cumulative Baselines'!A27)*(Table!D:D),{1}))

提前致谢

这没有使用您正在讨论的功能,但如果这是时间敏感的,这里有一个可行的解决方案:

E 列,第 1 行:

=COUNTIFS(B1:B11,B1,A1:A11,A1),根据需要向下扩展。

  • 这是按顺序查看您的数据,并向它所在的行添加一个计数器,该行表示 A 列中的值和 B 列中的值与该单元格所在的行匹配的行。由于您的数据按从旧到新的顺序排列,因此该组合的最后一个实例的值始终为 1。

现在我们可以将其扩展为:

=IF(COUNTIFS(B1:B11,B1,A1:A11,A1)=1,1,0)

  • 所有不为 1 的值现在都为 0。这为我们提供了使用 sumifs 语句所需的条件。

创建一个包含要检查的目标值的单元格: 在我的示例中,单元格 G1 中有 ABC,G2 中有 DEF =SUMIFS(D:D,A:A,G1,E:E,1) - 根据需要向下延伸

  • 此条件求和语句将 D 列中的所有内容相加,这些内容在 E 列中的值也为 1,并且在 A 列中的值与您放置在 G1 中的值相同。

这是快速而肮脏的方法,但是 sub-optimal 在资源利用率方面(看起来您已经在使用 table 列引用而不是整个列,这是更有效的方法它,我没有现成的 headers 列。

编辑:这里的关键问题似乎是 max() 不能很好地处理自定义日期时间格式,这就是 Excel 本机读取未拆分时间戳的原因,因为 sumproduct 读取所有non-numeric 值为 0。您可以通过(再次)添加一列并将日期和时间一起作为 =datevalue(日期列单元格)+timevalue(时间列单元格)来按摩它以使用 max。这将存储为可以应用 max() 的浮点数。

问题是我们仍然需要一个列来测试组合值是否代表唯一的一天,然后找到那一天的重组时间戳最大值,所以回到上面的解决方案和额外的工作来启用使用总和产品()。根据我的经验,在这种情况下,挤榨 bootstrap sumproduct() 是不值得的。

可以使用 SUMIFS,但据我所知只能与 sum 或 sumproduct 结合使用:

=SUM(D:D*(A:A=F2)*(COUNTIFS(A:A,A:A,B:B,B:B,C:C,">"&C:C)=0))

(我使用了任意范围,因为如果使用整列范围可能会很慢)