自定义Google表格冻结时间戳公式

时间:2017-03-17 18:56:14

标签: google-sheets formulas ifttt

这是因为我不是特别精通Google Sheet脚本,只是在Googling上相当不错并且让我的工作变得有效。

如果我在RSS阅读器中保存文章,我正在使用IFTTT.com自动附加Google表格。

根据IFTTT的工作原理,它会根据所保存文章的各种属性在工作表底部添加一行。

我正忙着为行添加一个自动非易失性时间戳。

我尝试过使用下面的自动时间戳功能,当我输入单元格时它会起作用,但在附加工作表时则不行。

function onEdit(event)
{ 
  var timezone = "GMT-5";
  var timestamp_format = "MM-dd-yyyy"; // Timestamp Format. 
  var updateColName = "Article Title";
  var timeStampColName = "Date Discovered";
  var sheet = event.source.getSheetByName('Sheet1'); //Name of the sheet where you want to run this script.


  var actRng = event.source.getActiveRange();
  var editColumn = actRng.getColumn();
  var index = actRng.getRowIndex();
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
  var dateCol = headers[0].indexOf(timeStampColName);
  var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1;
  if (dateCol > -1 && index > 1 && editColumn == updateCol) { // only timestamp if 'Last Updated' header exists, but not in the header row itself!
    var cell = sheet.getRange(index, dateCol + 1);
    var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
    cell.setValue(date);
  }
}

IFTTT允许您设置将哪些数据移植到哪个列中,并且具有来自Feedly的数据的特定“成分”,您可以将其放入列中。

它们还允许使用静态文本和公式。

意识到这一点,我发现了以下自定义功能,这似乎有点奏效。

function timestamp() {
return new Date()
}

这允许我添加一个函数来检查文章的标题是否有内容,时间戳是否为真。

=时间戳(INDIRECT( “E” &安培; ROW()))

奇怪的是,当我今天重新加载工作表时(我昨天输入了公式),这个公式的第一行没有改变,也没有在工作表的下方进一步。

来源表:https://docs.google.com/spreadsheets/d/1ybfgOgBkqHdld9_sexzMfdMV2lT6Qp7WgQ8Di96S-a8/edit?usp=sharing

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

由于您只对发现日期感兴趣而且不太担心确切的时间。您可以为午夜后每天运行的函数设置时间触发器,以将昨天日期的时间戳添加到具有非空“文章标题”列的行。

这是执行此操作的代码,还添加了一个设置每日触发器的功能

$float_14_digits = 0.99999999999999;
echo $float_14_digits; // prints 0.99999999999999
echo floor($float_14_digits); // prints 0

$float_15_digits = 0.999999999999999;
echo $float_15_digits; // prints 1
echo floor($float_15_digits); // prints 1
exit;

希望这有帮助!