這就是我會做的... 通過在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)
}
爲什麼[EXCEL]和[Excel的配方]標記? – pnuts 2015-01-20 19:11:15
老實說,希望代碼中有足夠的相似性,以便大規模的Excel社區能夠了解情況。 – 2015-01-20 19:17:43
隨着'邏輯'[SQL]可能會更有意義。 – pnuts 2015-01-20 19:19:58