【发布时间】:2020-11-08 16:41:53
【问题描述】:
我使用 Google 表格 和 Cryptofinance.ai 来检索加密货币价格。我有一个运行良好的脚本:它会定期从选项卡 A 的一行中附加数据,以将它们保存在选项卡 B 中,这样我就可以制作图形和图表。
现在我想在下一行添加日期 + 1 年。理想情况下,每次触发脚本时,它都会创建两个新行:一个包含现在的数据,另一个包含日期 + 1 年。
如果您好奇并想知道我为什么要这样做,就是使用它来制作投影价格
另一个选项卡中的公式:=TREND(filter(B2:B,B2:B<>""),filter(A2:A,B2:B<>""),filter(A2:A,(N(B2:B)=0)*(A2:A>0)))
这是我的脚本:
// [START modifiable parameters]
var rangeToLog = 'Portefeuille!A28:L28';
var sheetToLogTo = 'Archive BTC/USD KRAKEN';
// [END modifiable parameters]
////////////////////////////////
/**
* Appends a range of values to the end of an archive sheet.
* A timestamp is inserted in column A of each row on the archive sheet.
* All values in rangeToLog go to one row on the archive sheet.
*
* @OnlyCurrentDoc
*/
function appendValuesToArchiveBTCUSDKRAKENSheet() {
// version 1.4, written by --Hyde, 30 January 2020
// - use Array.prototype.some() to skip empty rows when concating
// - see https://support.google.com/docs/thread/27095918?msgid=27148911
// version 1.3, written by --Hyde, 26 January 2020
// - see https://support.google.com/docs/thread/26760916
var ss = SpreadsheetApp.getActive();
var valuesToLog = ss.getRange(rangeToLog).getValues();
var logSheet = ss.getSheetByName(sheetToLogTo);
if (!logSheet) {
logSheet = ss.insertSheet(sheetToLogTo);
logSheet.appendRow(['Date time', 'Data']);
}
var rowToAppend = [new Date()].concat(
valuesToLog.reduce(function concatArrays_(left, right) {
var arrayContainsData = right.some(function isNonBlanky_(element, index, array) {
return element !== null && element !== undefined && element !== '';
});
return arrayContainsData ? left.concat(right) : left;
})
);
logSheet.appendRow(rowToAppend);
}
现在:
我想做的事:
【问题讨论】:
-
您的问题到底是什么?修改日期还是打印第二行?
-
我猜都是 :) 我希望脚本添加 2 行:一个带有价格,另一个带有未来日期的一年。
标签: date google-apps-script google-sheets automation google-finance