Google Sheets中查询汇总不同条目时长并做加减运算的简单方法
Google Sheets 坐席有效工作时长实现方案
不需要复杂的嵌套函数,用系统自带的基础函数即可快速实现需求,以下提供两种适配不同场景的方案:
方案1:分步实现(新手友好,易调试)
先确认你的数据列对应关系,可按需替换成你表格的实际列号/区域:
- 坐席标识列(你已做好的姓名+编码辅助列):A列
- 整班次总时长列:B列
- 休息时长列(单位与午餐、班次时长统一即可,秒/分钟都支持):C列
- 午餐时长列:D列
- 汇总结果区域第一列:F列,F2起依次填写所有不重复的坐席标识
你可以依次在对应列输入以下公式:
- 总休息时长(G2单元格):
=SUMIFS(C:C, A:A, F2) - 总午餐时长(H2单元格):
=SUMIFS(D:D, A:A, F2) - 总班次时长(I2单元格):如果同坐席存在多班次需要汇总填
=SUMIFS(B:B, A:A, F2),如果单班次直接匹配填=XLOOKUP(F2,A:A,B:B,"无匹配班次") - 有效工作时长(J2单元格):
=I2 - (G2 + H2)
如果不需要逐行下拉公式,想一次性生成所有坐席的计算结果,可在J2单元格输入数组公式:=ARRAYFORMULA(IF(F2:F="",,SUMIFS(B:B,A:A,F2:F) - (SUMIFS(C:C,A:A,F2:F) + SUMIFS(D:D,A:A,F2:F))))
方案2:一键生成完整汇总表
如果你需要直接输出结构化的汇总结果,可直接在空白单元格输入QUERY函数,自动生成包含所有统计维度的表格:
=QUERY(A:D, "SELECT A, SUM(C), SUM(D), SUM(B), SUM(B) - (SUM(C)+SUM(D)) WHERE A IS NOT NULL GROUP BY A LABEL A '坐席标识', SUM(C) '总休息时长', SUM(D) '总午餐时长', SUM(B) '总班次时长', SUM(B) - (SUM(C)+SUM(D)) '有效工作时长'", 1)
注意:所有时长列的单位必须统一,若需要把秒级结果转换为分钟显示,可在对应计算项外套
/60,再将单元格格式设置为数字即可。
内容的提问来源于stack exchange,提问作者Pacc_94
相关产品推荐
相关产品推荐

