我有一张Google表格,可以从表单中提取信息。表单将时间戳和ID号输入电子表格。我需要制作不同的表格,以显示今天,本周和本月的哪些条目。
实施例
Timestamp ID
12/1/2012 12345
12/1/2012 55555
12/4/2012 98765
12/15/2012 74823
我需要制作一张将ID 12345和55555放入一个" DAILY"表格,ID 12345,5555和98765进入" WEEKLY"工作表,以及所有这些在" MONTHLY"片。
答案 0 :(得分:0)
这就是我要做的...... 通过在D2中输入'= Today()',在工作表中的某个位置添加今天的日期(假设单元格为D2)。
在C栏中,在前两列旁边,添加公式以计算A列日期与今天日期之间的天数。在第2行,公式看起来像这样...... = DATEDIF(A2,D2, “d”)
然后,使用电子表格中的脚本编辑器,我会编写一个查看C列的脚本,并根据该值写入A列和B列的值。我没有测试下面的脚本,但我认为这是你需要的。基本上,它循环遍历结果表的C列。根据值(从今天开始的几天),该行将被推送到每个范围的数组。然后我在设置数组的值之前清除了该范围的工作表。我希望这有帮助!
function daysBetween(){
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(),
formResultsSheet = spreadsheet.getSheetByName("Form Results"),
daySheet = spreadsheet.getSheetByName("Today"),
weekSheet = spreadsheet.getSheetByName("This Week"),
monthSheet = spreadsheet.getSheetByName("This Month"),
allData = formResultsSheet.getDataRange().getValues(),
dayResults = [],
weekResults = [],
monthResults = [];
for (var i = 0; i < formResultsSheet.getLastRow(); i++) {
if (allData[i][2] === 0){
dayResults.push(allData[i])
} else if (allData[i][2] > 0 && allData[i][2] <= 7) {
weekResults.push(allData[i])
} else if (allData[i][2] > 7 && allData[i][2] <= 30) {
monthResults.push(allData[i])
}
}
daySheet.getDataRange().clear()
daySheet.getRange(1,1,dayResults.length,dayResults[0].length).setValues(dayResults)
weekSheet.getDataRange().clear()
weekSheet.getRange(1,1,weekResults.length,weekResults[0].length).setValues(weekResults)
monthSheet.getDataRange().clear()
monthSheet.getRange(1,1,monthResults.length,monthResults[0].length).setValues(monthResults)
}