首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Google财务函数中使用来自Google表单的时间戳?

如何在Google财务函数中使用来自Google表单的时间戳?
EN

Web Applications用户
提问于 2015-06-01 09:51:43
回答 1查看 897关注 0票数 4

我让学生以决定他们想购买哪种货币的形式输入一个值。我希望谷歌电子表格查找和记录价格时,提交的表格。

由于我想确定货币事务的虚拟费用,所以我不希望电子表格自动更新电子表格这一部分中的货币价格。

EN

回答 1

Web Applications用户

发布于 2015-06-01 21:11:14

函数GoogleFinance可以做两件事之一:

  • 返回“实时”数据(通常报告延迟20分钟)。示例:
代码语言:javascript
运行
复制
=GoogleFinance("CURRENCY:USDBRL")
  • 返回历史数据:某一天的收盘价。示例:
代码语言:javascript
运行
复制
=GoogleFinance("CURRENCY:USDBRL","price",DATE(2015,4,1))

它不做的(不幸的)是在一个特定的时间在一个特定的一天的价格。所以,如果你想在提交表格时记录价格,你应该

  1. 立即执行=GoogleFinance("CURRENCY:USDBRL")
  2. 只存储此函数返回的值,因为该函数本身将自动更新。

下面是一个在表单提交时执行此操作的脚本。

代码语言:javascript
运行
复制
function recordPrice() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var row = sheet.getLastRow();
  var cell = sheet.getRange(row,3);
  cell.setFormula('GoogleFinance("CURRENCY:USDBRL")');
  while (!cell.getValue()) {}
  cell.copyTo(cell, {contentsOnly:true});
}

function Install() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ScriptApp.newTrigger("recordPrice").forSpreadsheet(ss).onFormSubmit().create();
}

function Uninstall() {
  var allTriggers = ScriptApp.getProjectTriggers();
  for (var i = 0; i < allTriggers.length; i++) {
    ScriptApp.deleteTrigger(allTriggers[i]);
  }
}

函数recordPrice与包含表单条目的工作表一起工作。对于每一个新行,它在C列中添加一个条目(仅仅因为我使用了sheet.getRange(row,3); --可能是另一列)和货币汇率。设置该公式后,它将等待该公式获取结果,然后将结果复制到同一单元格,但只复制值本身。因此,公式被改写,货币汇率保持在提交时的水平。

另外两个函数是技术性的:运行" install“来安装脚本(它将提示授权)。如果要停止货币汇率的收集,请运行“卸载”。

票数 3
EN
页面原文内容由Web Applications提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://webapps.stackexchange.com/questions/78657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档