为今天,本周和本月制作的条目制作Google表格

时间:2015-01-20 19:07:54

标签: excel google-sheets excel-formula spreadsheet

我有一张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"片。

1 个答案:

答案 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)
}