电子表格的数据:经济数据源(名称)-该电子表格包含2个表,即“结果”和“触发器”
什么:在我的电子表格“经济数据源”和表格“结果”单元格C5中包含一个公式。这个公式告诉我,根据“股市信心”表中的数据,是否选择了多头或看跌反转。
它有3种可能的结果,基于IFS公式,即“看跌反转当选”、“多头反转当选”或“无反转当选”。
的挑战:每当这些反转信号被选出时,它们在1年前的6个月内都是有效的。他们(逆转选举)是基于在同一个电子表格中输入的经济数据。由于经济数据馈送经常更新,因此信号将消失。这就是问题所在。
假设有一天将出现反转,比方说牛市逆转,那么第二天,“股市信心”表中的经济数据被更新,信号消失,C5中的细胞又回到“无反转当选”状态。
我需要的:每当工作表中的单元格C5“结果”选择反转时,就需要将单元格值(仅单元格值)自动复制到另一个电子表格中的另一个位置,而我设想该电子表格中的另一个地方称为“反转选举”。这是必要的,这样信号就不会消失,因为如前所述,经济数据输入经常被更新。此外,我需要倒转选举的日期复制。
屏幕截图的下面是同一电子表格中的不同工作表:


理想的实现方式:
发布于 2020-08-25 08:30:30
是的,您可以获得一个触发器来更新值。下面的代码应该可以工作,我创建了一个可能有帮助的示例文件。如果你复制它,你可以有你自己的版本在看它。
你可能想要在这里回顾事件触发器。
下面的代码很可能适用于我认为你想要的东西(记住这是堆栈溢出,所以我们对牛市和熊市不太了解--甚至是运动队)。当C5中的值发生变化时,这将在日志表上写入一条新行。请注意,这是使用基于单元格LoggedResults表中的公式中的链接值的公式比较。如果你玩你自己的版本,我认为这可能更有意义。
/**
* @OnlyCurrentDoc
*/
/**
* The event handler triggered when editing the spreadsheet.
* @param {Event} e The onEdit event.
*/
function onEdit(e) {
const cellsToCopyFromTop = "A1:C1"; ///<--- update these if you want to include more columns
const ss = SpreadsheetApp.getActiveSpreadsheet();
const logSheet= ss.getSheetByName('LogResults');
//test to see if cell B1 matches value of last entry
if(logSheet.getRange("B1").getValue() !=
logSheet.getRange(logSheet.getLastRow(),2).getValue()){
var newValues = logSheet.getRange(cellsToCopyFromTop).getValues();
logSheet.getRange(logSheet.getLastRow()+1,1,newValues.length,newValues[0].length).setValues(newValues);
}
}https://stackoverflow.com/questions/63573801
复制相似问题