按名称和日期添加数据行

时间:2018-05-21 12:16:09

标签: google-apps-script google-sheets

因此,我尝试在Google Apps脚本中创建一个脚本,将当天的每个小时数相加。它完成了他们工作的日期和名称。下面是一个数据示例。

List of data

所以我的问题是在多天内增加人们的工作时间。所以对于27岁的凯伦来说,她将有4个小时,而26日也有4个小时。但我不确定如何将每个人分成这样的时间。它可以手动完成,但我试图自动化它。

这是我目前获得的代码:

function compare() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var tsSheet = ss.getSheetByName("Sheet1");
  var jiraSheet = ss.getSheetByName("NEWDATA");
  var jiraRows = jiraSheet.getLastRow();
  var tsRows = tsSheet.getLastRow();

  var harvestData = tsSheet.getRange("A2:D"+tsRows).getValues();
  var jiraData = jiraSheet.getRange("C2:F"+jiraRows).getValues();
  for(var x = 0; x < (jiraRows-1); x++) {
    for(var y = 0; y < (jiraRows -1); y++) {
      if(jiraData[x][3] == jiraData[y][3] && Utilities.formatDate(jiraData[x][1], "GMT", "DD-MM-YYY") == Utilities.formatDate(jiraData[y][1], "GMT", "DD-MM-YYY")) {


      } else if(y == (jiraRows - 2)){

      }
    }
  }
}

2 个答案:

答案 0 :(得分:0)

我知道您想要使用谷歌脚本,但我个人不会打扰,因为您可以使用谷歌表中的UNIQUE(C1:C)函数生成一个唯一的名称列表(Bob,Karen..etc)。然后,您可以通过输入开始日期并使用公式根据需要增加日期来生成一系列日期。您只需要一个sumifs公式来填充小时数。

Get hours screenshot

我在Excel中这样做但如果你感兴趣我会分享一个Sheets版本。不同的布局也可以自动化。您还可以使用数据透视表或查询公式来创建类似的东西。

答案 1 :(得分:0)

假设屏幕截图中的表格为A2:C25,请尝试D1:

=QUERY(A:C,"Select C,B,sum(A) group by C,B",1)