Javascript 谷歌电子表格 : how do I find the max value within a group

标签 javascript google-apps-script

在谷歌电子表格中,我有一列重复的年份行和一列值。我想编写一个脚本来查找每年的最大值。我已经使用下面的脚本找到了所有年份的最大值,但是很难找到每年的最大值并将其记录到新列中。

function findmax(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var column = 9; 
var colArray = sheet.getRange(2, column, sheet.getLastRow()).getValues();
var maxi = Math.max.apply(Math, colArray)
Logger.log(maxi)

有什么想法吗?

最佳答案

function maxGroupBy() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var yearCol = 1; // <-assumption that the two column are not adjacent.
  var column = 9;

  var yearArray = sheet.getRange(1, yearCol, sheet.getLastRow()).getValues();
  var colArray = sheet.getRange(1, column, sheet.getLastRow()).getValues();

  var group = {};
  for (var i = 0; i< yearArray.length; i++) {
    group[yearArray[i]] = Math.max((group[yearArray[i]] || colArray[i]), colArray[i]);
  }
  for (key in group) {
    Logger.log(key + "::" + group[key]);  
  }
}

关于Javascript 谷歌电子表格 : how do I find the max value within a group,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23135072/

相关文章:

javascript - 如何在 JavaScript 中编写 RGB 颜色值?

javascript - 如何使用 for 循环更改字体大小

google-apps-script - 查找文本(多次)并突出显示

javascript - 谷歌表格脚本: Getting values between two values?

javascript - 在 Google map 准备就绪之前显示预加载器 - AngularJs

javascript - JavaScript 闭包函数外加括号的用途

javascript - 模块构建失败: TypeError: Cannot read property 'context' of undefined - Webpack

javascript - 为什么库上设置的 "developmentMode"标志被忽略?

google-apps-script - 将 docx 文件转换为 Google Docs 并放置在同一文件夹中

pdf - 错误从 Gmail 获取 pdf 附件作为文本