首页 > 解决方案 > 按类别求和产品,每天求和并求和最高时间

问题描述

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

在此处输入图像描述

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

在此处输入图像描述

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

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

提前致谢

标签: excelsumproduct

解决方案


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

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 中的值相同。

这是快速而肮脏的,但在资源利用率方面不是最佳的(看起来您已经在使用表列引用而不是整个列,这是更有效的方法,我没有现成的列标题)。

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

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


推荐阅读