尝试将长列表排序到单独的列中

时间:2016-03-15 12:58:31

标签: javascript google-sheets

我们目前有很长的学生名单,我们正在尝试根据年份将它们分成不同的列。我想尽可能简化这一点,所以我不必为每个学年改变重写代码。它的基本方法是它应该从一个电子表格中获取学生列表,然后根据作为参数传入的年份返回学生数组。任何帮助将非常感激。这是我当前的代码:

    function yearSort(gradYearDesired)
    {
      var sheet = SpreadsheetApp.getActiveSpreadsheet();
      var temp =  SpreadsheetApp.setActiveSheet(sheet.getSheetByName("StudentAccountsImport"));
      var tempArray = [];
      var nameArray = [];
      var outputArray = [];

      var range = temp.getRange("G2:G");
      tempArray.push(range);
      return tempArray;
      var range = temp.getRange("B2:B");
      nameArray.push(range);

      for(var i = 0; i < tempArray.length; i++)
      {
        if(tempArray[i] == gradYearDesired)
        {
          outputArray.push(nameArray[i]);
        }
      }

      return outputArray;
    }

1 个答案:

答案 0 :(得分:0)

使用查询功能,不需要脚本:

=query(StudentAccountsImport!B:G, "select B where G = 2016")

如果这不起作用,请添加有关数据放置位置的更多详细信息。

也可以使用过滤器:

=filter(StudentAccountsImport!B:B, StudentAccountsImport!G:G = 2016)

但查询为select提供了更多选项。