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
导入,并且它导入了那些错误的值。
知道如何解决吗?
在 H72 中尝试:
=INDEX(SUM(IFERROR(1*H3:H71;0)))
更新:
=INDEX(SUM(IFERROR(FILTER(1*H3:H71; MOD(ROW(H3:H71)-1; 2)=0); 0)))
我有一个 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
导入,并且它导入了那些错误的值。
知道如何解决吗?
在 H72 中尝试:
=INDEX(SUM(IFERROR(1*H3:H71;0)))
更新:
=INDEX(SUM(IFERROR(FILTER(1*H3:H71; MOD(ROW(H3:H71)-1; 2)=0); 0)))