You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Google Apps Script实现考勤表同日期C列合并并计算当日总时长

Google Sheets 考勤自动汇总合并实现方案

实现逻辑

  • 读取A列日期、B列时长的全量数据
  • 按日期维度对行数据分组,统计每组的行范围和B列总时长
  • 清空C列原有内容和合并格式,避免旧数据干扰
  • 对每个日期分组,合并对应行的C列单元格,写入当日总工时

完整实现代码

function calculateAndMergeDailyTotal() {
  // 获取当前工作表,可替换为getSheetByName('表名')指定固定工作表
  const sheet = SpreadsheetApp.getActiveSheet();
  const startRow = 2; // 数据起始行,若表头占N行则设置为N+1
  const lastRow = sheet.getLastRow();

  // 无有效数据直接终止运行
  if (lastRow < startRow) return;

  // 读取A、B列的所有数据
  const dataRange = sheet.getRange(startRow, 1, lastRow - startRow + 1, 2);
  const data = dataRange.getValues();

  // 清空C列原有内容和合并格式
  const colCRange = sheet.getRange(startRow, 3, lastRow - startRow + 1, 1);
  colCRange.breakApart();
  colCRange.clearContent();

  const groups = [];
  let currentDate = data[0][0]?.getTime();
  let currentStartRow = startRow;
  let currentTotal = data[0][1] || 0;

  // 遍历数据按日期分组
  for (let i = 1; i < data.length; i++) {
    const rowDate = data[i][0]?.getTime();
    const rowDuration = data[i][1] || 0;
    if (rowDate === currentDate) {
      currentTotal += rowDuration;
    } else {
      groups.push({
        start: currentStartRow,
        end: startRow + i - 1,
        total: currentTotal
      });
      currentDate = rowDate;
      currentStartRow = startRow + i;
      currentTotal = rowDuration;
    }
  }
  // 存入最后一组数据
  groups.push({
    start: currentStartRow,
    end: lastRow,
    total: currentTotal
  });

  // 执行C列合并和数值写入
  groups.forEach(group => {
    const mergeRange = sheet.getRange(group.start, 3, group.end - group.start + 1, 1);
    mergeRange.mergeVertically();
    mergeRange.setValue(group.total);
    // 可选配置:设置垂直居中对齐
    mergeRange.setVerticalAlignment('middle');
  });
}

使用方法

  • 打开目标Google表格,点击顶部菜单栏「扩展程序」>「Apps 脚本」进入脚本编辑器
  • 清空编辑器内默认代码,粘贴上述代码后保存项目
  • 手动执行:点击编辑器顶部的运行按钮,首次运行需按提示完成账号授权
  • 自动触发:在脚本编辑器左侧点击「触发器」按钮,添加新触发器,选择calculateAndMergeDailyTotal函数,触发条件设置为「当电子表格更改时」,即可实现修改数据后自动更新汇总

内容的提问来源于stack exchange,提问作者Leow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:36:09