Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 按类别列出的Sumproduct、每天总和和最高时间总和_Excel_Sumproduct - Fatal编程技术网

Excel 按类别列出的Sumproduct、每天总和和最高时间总和

Excel 按类别列出的Sumproduct、每天总和和最高时间总和,excel,sumproduct,Excel,Sumproduct,如果我在excel中有以下数据,是否可以根据下表中的数据获得所有数据的总和 因此,基本上忽略数据已被较晚日期时间取代的白色行(我在示例中拆分了日期时间字段) 我尝试了以下公式,但我只得到了#值!错误 =SUMPRODUCT(LARGE((Table!A:A='Cumulative Baselines'!A27)*(Table!D:D),{1})) 提前感谢这没有使用您正在讨论的功能,但如果这是时间敏感的,这里有一个可行的解决方案: E列第1行: =计数(B1:B11,B1,A1:A11,A

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

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

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

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

提前感谢

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

E列第1行:

=计数(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)-根据需要向下延伸

  • 此条件sum语句将D列中的所有内容相加,这些内容在E列中共享1值,在a列中共享与G1中相同的值
这是一种快速、肮脏但在资源利用率方面次优的方法(看起来您已经在使用表列引用而不是整个列,这是更有效的方法,我没有现成的列标题)

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

问题是,我们仍然需要一个列来测试组合值是否表示唯一的日期,然后找到该日期的重组时间戳最大值,因此回到上面的解决方案和额外的工作来启用sumproduct()。根据我的经验,在这种情况下,用sumproduct()引导sumproduct()是不值得的。

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

=SUM(D$2:D$20*(A$2:A$20=F2)*(COUNTIFS(A$2:A$20,A$2:A$20,B$2:B$20,B$2:B$20,C$2:C$20,">"&C$2:C$20)=0))
(我使用了任意范围,因为如果使用整列范围,速度可能会很慢)


您可以使用SUMIF函数,请查看此链接以供参考谢谢-这很有帮助,我之所以选择sumproduct路线,是因为数据可能并不总是按最后的最大值顺序排列,因此,如果以前的任何数据按顺序添加,我认为这将显示为选中的行,除非它是按日期时间手动排序的,对吗?正确,如果数据是非顺序的,则日期过滤器会崩溃,整个卡片屋都会落下。我假设基于日期戳,这将来自外部系统,有可能在源位置对数据进行排序吗?如果是这样,工作表可以从外部引用到源,并且每次刷新exref时它都会自动更新。