【发布时间】:2018-11-21 15:06:18
【问题描述】:
我对 Google 应用脚本和 If 语句有疑问。
我已将数据从我的 Ads 帐户推送到 Google 表格。然后,我想要多张工作表从中提取特定数据。所以我试图让一张纸成为所有数据的来源。然后我可以为每个报告选择我需要的部分数据。
主要是获取星期几==今天的范围。
我已经尝试通过添加一个检查变量来执行此操作,然后将其传递到一个 for 循环中,检查 day == dayName 变量。
我目前遇到了超时问题。这让我相信我这样做的方式有问题。
数据集是 21k 行: A 是日期,B 是星期几,C 是广告系列,依此类推,直到第 I 列。
我对脚本游戏还是很陌生,非常感谢任何帮助。
我希望这样做的原因是因为我很难在广告脚本中包含 where 语句以按 DayOfWeek 过滤。然后我认为这可能是另一种解决方案。
谢谢, 利亚姆
function myFunction() {
//This is the days of the week for the today lookup
var days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
//This is today's date
var end = new Date().toISOString().slice(0,10);
//This supplies the current day of week
var dow = new Date(end);
var dayName = days[dow.getDay()];
var sss = SpreadsheetApp.openById('SheetID'); //ID of the sheet
var ss = sss.getSheetByName('googleData'); //Sheet name
var range = ss.getRange('A1:I'); //The range to copy
var check = ss.getRange('B2:B').getValues(); The range to if statement against
var data = range.getValues();
var tss = SpreadsheetApp.openById('SheetID'); //destination sheet ID
var ts = tss.getSheetByName('usedData'); //Destination sheet name
for (var i=0;i<check.length; i++) {
if(check[i]==dayName) {
ts.getRange(1, 1, data.length, data[0].length).setValues(data); //you will need to define the size of the copied data see getRange()
}
}
}
【问题讨论】:
标签: javascript if-statement google-apps-script google-sheets