如何在每天结束时记录 Google 表格单元格的内容?

use*_*ica 2 google-sheets google-apps-script

在 Google 表格中,我使用 IMPORTHTML 函数动态收集数据,并且该数据集中的一个元素当前复制到单元格 C1 中。

在另一张工作表中,我有一个从现在到 2017 年的日期列表作为 A 列。

在每天结束时,我想在相关日期旁边的 B 列中记录最终的 C1 分数。

我将如何以自动化的方式做到这一点?也就是说,我希望电子表格在每天结束时自行完成。

Nic*_*olo 5

您需要一个脚本将条目从 sheet1!C1 复制到 sheet2!columnB 行(其中 columnA=today())。

将 sheet1、sheet2 替换为您的工作表名称。

设置电子表格

在您的电子表格中转到

文件>电子表格设置

设置您的本地和时区,然后设置重新计算 onChange 和每小时。

使用内置函数定位今天的行

转到sheet2!

我假设您的 columnA 的日期以日期格式从 A1 运行到 A#。我们将需要一个单元格来保存一个值,我选择 C1。在 C1 中把这个

=匹配(今天(),A:A)

这会给你一个数字,它应该是保存今天日期的行。

构建脚本

然后转到

工具>脚本编辑器

为电子表格创建脚本。这会给你一些示例脚本,删除它。

代码是

function scorekeeper(){
  var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet1");
  var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet2");
  var score = sheet1.getRange("C1").getValue(); // we want to store this
  var row   = sheet2.getRange("C1").getValue(); // this is our row
sheet2.getRange(row, 2).setValue(score );
}
Run Code Online (Sandbox Code Playgroud)

您可以通过转到“运行”并选择函数名称来对此进行测试。您可能必须先保存脚本并授予应用程序权限。

设置触发器

让我们在午夜运行

资源>当前项目的触发器。

添加触发器。

选择; scorekeeper() 时间驱动的日间计时器午夜至凌晨 1:00

你很高兴去。