[英]How to get an array of data in google sheets based on date in column?
我每天都試圖將數據的子部分從一個谷歌表拉到另一個谷歌表。 拉動是基於日期的,這就是我掙扎的原因。
上下文 - 我有“工作簿 1”,它每天記錄不同 NBA 球隊的價格數據。 每天都會捕獲數據並將其添加到表格的底部(因此最新的價格數據位於底部)。 它在 K 列中使用 =today().. 標有日期戳記是“Pull Date”。
我有一個單獨的工作簿,我們將其稱為 NBA 的“工作簿 2”,我想在其中包含工作簿 1 中的相同價格數據,但只包含過去 15 天的數據(以使其更加靈活)。 為了實現這一點,我想讓腳本每天早上從“工作簿 1”到“工作簿 2”逐步添加昨天的值(現在我將手動刪除任何超過 15 天的行)。
目的 - 我在工作簿 2 中的表格上構建了一份報告,並進行了為期兩周的分析,因為工作簿 1 文件太大了(可以追溯到幾個月前)。
問題 - 我有一些來自不相關工作簿的舊代碼,我將數據從一張紙拉到另一張紙,但它不是基於拉取日期的條件。 對於此腳本,我希望我的“工作簿 2”工作簿從“工作簿 1”請求數據並將其添加到“工作簿 2”上第 1 頁的底部,但僅適用於包含昨天日期(或 =today()- 1)。 包含昨天日期的行數是動態的,並且會隨着時間的推移而縮小,所以我今天移動的行數與上周不同,例如。
我的數組有 15 列寬,但行數每天都會改變。 下面是我的出發點:
function runOne() {
var ss=SpreadsheetApp.openById('Workbook 1 sheet id');
var tsh=ss.getSheetByName('sheet 1');
???
我不知道如何有條件地提取昨天的數據並使行數動態化。 獲得正確的值后,我需要將其粘貼到“工作簿 2”中標題為“工作表 1”的選項卡底部。
我對腳本編寫的經驗很少,因此將不勝感激任何幫助。 我試圖盡可能多地澄清上述問題,但如果需要進一步澄清,請告訴我。
function runOne() {
var ss=SpreadsheetApp.openById('Workbook 1 spreadsheet id');
var tsh=ss.getSheetByName('sheet 1');
var ss2=var ss=SpreadsheetApp.openById('Workbook 2 spreadsheet id');
var tsh2=ss2.getSheetByName('sheet 1');
var lastRow=tsh.getLastRow();
var timestamps=tsh.getRange(1,11,lastRow,1).getValues();
var yesterdayMs=new Date().getTime()-24*60*60*1000; //get the date from yesterday in ms
var yesterdayDate=new Date(yesterdayMs); // get the date from yesterday
for(var i=lastRow;i>1;i--){ // get the last row from yesterday
if(new Date(timestamps[i-1][0]).getDay()==yesterdayDate.getDay()){
var lastRowYesterday=i;
break;
}
}
for(var j=lastRowYesterday-1;j>1;j--){ // get the first row from yesterday
if(new Date(timestamps[j-1][0]).getDay()!=yesterdayDate.getDay()){
var firstRowYesterday=j+1;
break;
}
}
var rowNumber=lastRowYesterday-firstRowYesterday+1;
var columnNumber=tsh.getLastColumn();
var toCopy=tsh.getRange(firstRowYesterday,1,rowNumber,columnNumber).getValues(); //values from yesterday
var lastRow2=tsh2.getLastRow();
tsh2.getRange(lastRow2+1,1,rowNumber,columnNumber).setValues(toCopy); //append to workbook 2
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.