如何在Google Sheets中为每隔N列批量应用工时计算公式?
解决方案
一、数组公式方案(推荐)
在第一个工时列的第一个数据单元格(比如D3)输入以下公式,它会自动计算所有行、所有对应工时列的工时,支持新增起止列时自动扩展计算,同时避免覆盖错误:
=ARRAYFORMULA(IF( (MOD(COLUMN(B3:ZZ), 4) = 0) * (A3:A <> ""), INDEX(B3:ZZ, ROW(B3:ZZ), COLUMN(B3:ZZ)-1) - INDEX(B3:ZZ, ROW(B3:ZZ), COLUMN(B3:ZZ)-2), "" ))
说明:
MOD(COLUMN(B3:ZZ), 4) = 0:匹配你设定的工时列规则(每4列中的第4列),如果你的工时列是每3列一组(开始、结束、工时),可将4改为3,并将=0调整为对应余数(比如工时列是第3列时,用MOD(COLUMN,3)=0)。A3:A <> "":仅在有员工姓名的行计算,避免空行生成无效数据。INDEX(..., COLUMN-1) - INDEX(..., COLUMN-2):取当前工时列的前一列(结束时间)减去前两列(开始时间),得到工时。
注意:使用前请确保所有工时列(如D、H、L...)为空白状态,否则会触发覆盖错误,清空后再输入公式即可。
二、快捷键快速填充方案
如果不想用数组公式,可通过快捷键快速完成公式复制:
- 在第一个工时单元格(比如
D3)输入基础公式:=C3-B3 - 选中
D3,按Ctrl+Shift+Right(Windows)或Cmd+Shift+Right(Mac),选中第一行所有工时列 - 按
Ctrl+D(Windows)或Cmd+D(Mac),将公式向下填充到所有员工行
只需3步就能完成全年工时列的公式填充,无需逐列复制。
内容的提问来源于stack exchange,提问作者Gilad Kustin
相关产品推荐
相关产品推荐

