如何按日期调取谷歌表格旧版本数据以实现招生数据同比对比
从谷歌表格版本历史调取指定日期数据的可行方法
方法一:手动提取(适合偶尔对比需求)
- 打开招生信息表格,点击顶部菜单栏「文件」→「版本历史」→「查看版本历史」。
- 在右侧版本面板中,通过日期筛选找到去年同日的版本(若日期显示模糊,可点击版本条目旁的三个点查看详细时间)。
- 找到目标版本后,点击「恢复此版本」旁的三个点,选择「复制此版本」,生成独立的表格副本。
- 在副本中提取所需招生数据,粘贴到当前表格的对比区域即可。
方法二:用Google Apps Script自动提取(适合定期对比需求)
如果需要频繁做这类对比,可通过脚本自动获取指定日期的版本数据:
- 打开表格,点击「扩展程序」→「Apps Script」进入脚本编辑器。
- 替换默认代码为以下脚本,修改
TARGET_DATE为去年同日的日期(格式如"2023-09-15"),SOURCE_SHEET_NAME为你的招生数据工作表名称:
function getHistoricalData() { const TARGET_DATE = "2023-09-15"; // 替换为去年同日的日期 const SOURCE_SHEET_NAME = "招生数据"; // 替换为你的工作表名称 const currentSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SOURCE_SHEET_NAME); const fileId = SpreadsheetApp.getActiveSpreadsheet().getId(); // 获取所有版本历史 const versions = DriveApp.getFileById(fileId).getVersions(); // 筛选目标日期的版本 let targetVersion; for (let i = 0; i < versions.length; i++) { const versionDate = Utilities.formatDate(versions[i].getLastUpdated(), Session.getScriptTimeZone(), "yyyy-MM-dd"); if (versionDate === TARGET_DATE) { targetVersion = versions[i]; break; } } if (!targetVersion) { SpreadsheetApp.getUi().alert("未找到指定日期的版本记录"); return; } // 打开目标版本并提取数据 const historicalSpreadsheet = SpreadsheetApp.open(targetVersion); const historicalSheet = historicalSpreadsheet.getSheetByName(SOURCE_SHEET_NAME); const dataRange = historicalSheet.getDataRange(); const historicalData = dataRange.getValues(); // 将数据写入当前表格的新工作表 const newSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet("去年同日数据"); newSheet.getRange(1, 1, historicalData.length, historicalData[0].length).setValues(historicalData); }
- 保存脚本并点击运行,首次运行需授权权限。运行完成后,表格会新增「去年同日数据」工作表,包含对应日期的招生数据。
方法三:提前每日备份(更可靠的长期方案)
谷歌表格版本历史保存期限有限(普通版一般30天,付费版时长更长),若需长期对比,建议提前自动备份每日数据:
- 用类似上述的Apps Script,设置每日触发器,自动将当天招生数据复制到专门的「历史备份表」,按日期命名工作表或在同一表中按日期归档。
- 后续对比时,直接从备份表提取去年同日的数据即可,无需依赖版本历史。
内容的提问来源于stack exchange,提问作者Selcuk Capraz
相关产品推荐
相关产品推荐

