ARRAYFORMULA() 生成的值总和不正确 (Google Sheet)

Sum of values generated by ARRAYFORMULA() is incorrect (Google Sheet)

我有一个 sheet 用于计算工作时间。目的是总结时间并将它们分为“常规”时间(每天最多 8 小时)和“加班”时间(每天超过 8 小时)。每个日期必须有两行(第二行默认隐藏),因为我可以在多个地方工作,但计算的时间应该相加。此外,周六和周日的工作时间应始终算作加班。

Screencap here.

我的问题是计算加班时间。 正常营业时间由以下各项生成:

=arrayformula(IFS(
WEEKDAY(A3:A70; 1)=1;0;
WEEKDAY(A3:A70; 1)=7;0;
E3:E70+E4:E70>8;8;
E3:E70+E4:E70<=8; E3:E70+E4:E70))

它们由 =SUM(IFERROR(G3:G71;0)) 求和,效果很好。加班时间产生于:

=arrayformula(IFS(
WEEKDAY(A3:A70; 1)=1;E3:E70+E4:E70;
WEEKDAY(A3:A70; 1)=7;E3:E70+E4:E70;
E3:E70+E4:E70>8;E3:E70+E4:E70-8;
E3:E70+E4:E70<=8; 0))

=SUM(IFERROR(H3:H71;0))H72中进行了类似的总结。但是,它 returns 是一个错误的值 - 在示例 sheet 中,它是 57 而不是 7

如果我 select 求和范围,工具提示会显示正确的总和 (7)。如果我 add/remove 小数位或更改 H72 中的格式,它也会突然更改为正确的。但是,当添加任何新数据时(即小时构成新的一天),它会返回显示不正确的值。

这不是一个简单的显示错误,因为这些值随后被另一个 sheet 通过 =IMPORTRANGE 导入,并且它导入了那些错误的值。

知道如何解决吗?

Sample sheet here

在 H72 中尝试:

=INDEX(SUM(IFERROR(1*H3:H71;0)))


更新:

=INDEX(SUM(IFERROR(FILTER(1*H3:H71; MOD(ROW(H3:H71)-1; 2)=0); 0)))