我有一个包含日期列的 Google 工作表,如果我的列上的值达到 4 次(例如 2019 年 7 月 1 日),我无法在单元格中显示或设置该值
Date Column
Row1: July 1, 2019
Row2: July 2, 2019
Row3: July 1, 2019
Row4: July 4, 2019
Row5: July 1, 2019
Row6: July 1, 2019
Row7: July 5, 2019
我在谷歌脚本中尝试了以下代码:
function countDate(){
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Test_Data");
var dateRg = ws.getRange(1, 9, ws.getLastRow(), 1).getValues();
for (var i =1; i < dateRg.length; i++){
var dateTest = dateRg[i];
if (dateTest > 5){
ws.getRange(2,4).setValue(dateTest);
}
}
在上面的示例中,我希望电子表格中的一个单元格具有值“2019 年 7 月 1 日”,因为它在列中出现了 4 次。预先感谢您。
最佳答案
这是一种可能的方法。计算每个日期的出现次数,将计数存储在对象中,然后找到出现次数最多的日期。
function countDate(){
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Test_Data");
var dateRg = ws.getRange(1, 1, ws.getLastRow(), 1).getDisplayValues();
var data = {}
for (var i =0; i < dateRg.length; i++){
data[dateRg[i]] = data[dateRg[i]] || 0;
data[dateRg[i]]++;
}
var max = Object.keys(data).reduce(function(a, b){ return data[a] > data[b] ? a : b });
ws.getRange(2,4).setValue(max);
}
关于javascript - 使用谷歌脚本达到一定数量时显示值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57068956/