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

如何为Google Sheet生成每日变更报告及出货零件跟踪日报表?

Google Sheets 每日变更报告与新增行追踪方案

一、创建Google Sheet每日变更报告

方法1:脚本自动生成每日快照

  1. 打开目标表格,点击「扩展程序」>「Apps Script」进入脚本编辑器。
  2. 替换默认代码为以下脚本(按需修改工作表名称):
    function dailySnapshot() {
      const sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("源数据"); // 替换为你的数据工作表名
      let reportSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("每日报告");
      if (!reportSheet) reportSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet("每日报告");
      
      const today = new Date();
      const formattedDate = Utilities.formatDate(today, Session.getScriptTimeZone(), "yyyy-MM-dd");
      
      // 复制源数据到报告表
      const sourceRange = sourceSheet.getDataRange();
      sourceRange.copyTo(reportSheet.getRange(reportSheet.getLastRow() + 1, 1), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
      
      // 为复制内容添加日期标记
      const startRow = reportSheet.getLastRow() - sourceRange.getNumRows() + 1;
      reportSheet.getRange(startRow, sourceRange.getNumColumns() + 1, sourceRange.getNumRows(), 1).setValue(formattedDate);
    }
    
  3. 保存脚本后,点击左侧「触发器」图标,添加时间驱动触发器:选择dailySnapshot函数,触发类型设为「日计时器」,设置每日执行的具体时间。

方法2:手动生成变更对比报告

  • 打开表格,点击「文件」>「版本历史记录」>「查看版本历史记录」。
  • 选择需要对比的两个日期版本,点击「比较」,系统会高亮显示所有单元格的变更内容,可直接截图或复制到新工作表保存为当日报告。

二、生成每日新增跟踪信息行的报表

场景1:追踪当日新增的零件行

  1. 在源数据工作表(如「出货零件跟踪」)添加一列「创建时间」(例如列A),在A2单元格输入公式:
    =IF(ISBLANK(B2),"",NOW())
    
    (B2为零件编号所在单元格,按需调整),下拉填充公式,自动记录每行的创建时间。
  2. 创建「每日新增报告」工作表,编写以下脚本并设置每日触发器:
    function trackNewRows() {
      const sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("出货零件跟踪");
      let reportSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("每日新增报告");
      if (!reportSheet) reportSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet("每日新增报告");
      
      const today = new Date();
      const startOfDay = new Date(today.getFullYear(), today.getMonth(), today.getDate());
      const data = sourceSheet.getDataRange().getValues();
      
      // 筛选今日创建的行(第1列为创建时间)
      const newRows = data.filter(row => {
        return row[0] instanceof Date && row[0] >= startOfDay;
      });
      
      // 写入报告表
      if (newRows.length > 0) {
        const lastRow = reportSheet.getLastRow();
        reportSheet.getRange(lastRow + 1, 1, newRows.length, newRows[0].length).setValues(newRows);
        // 添加日期标记
        reportSheet.getRange(lastRow + 1, newRows[0].length + 1, newRows.length, 1).setValue(Utilities.formatDate(today, Session.getScriptTimeZone(), "yyyy-MM-dd"));
      }
    }
    

场景2:追踪已有行中新增的跟踪编号

  1. 在源表添加「上次更新时间」列(设为最后一列),添加编辑触发脚本:
    function onEdit(e) {
      const sheet = e.range.getSheet();
      if (sheet.getName() !== "出货零件跟踪") return;
      const updateCol = sheet.getLastColumn();
      sheet.getRange(e.range.getRow(), updateCol).setValue(new Date());
    }
    
  2. 在「每日新增报告」工作表中用QUERY函数实时显示今日更新的行(假设跟踪编号在C列,更新时间在Z列):
    =QUERY('出货零件跟踪'!A:Z, "SELECT * WHERE Z >= DATE'"&TEXT(TODAY(), "yyyy-MM-dd")&"' AND C <> ''", 1)
    
    若需要精准对比跟踪编号的新增,可结合脚本维护历史跟踪编号记录表,每日对比后提取变更行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:01:19