我有一个带有日期列的google工作表,并且如果我的列中的值达到4倍(例如,2019年7月1日),我将无法显示或将其设置为一个单元格
[OperationContract]
[WebInvoke(ResponseFormat =WebMessageFormat.Json,RequestFormat =WebMessageFormat.Json)]
List<Product> SayHello();
public class Product
{
public int ID { get; set; }
public string Name { get; set; }
public List<Animal> Animals { get; set; }
}
public class Animal
{
public int ID { get; set; }
public string Name { get; set; }
}
我已经在Google脚本中尝试了以下代码:
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
在上面的示例中,我希望在电子表格中具有一个单元格,使其值“ 2019年7月1日”,因为它在列中出现了4次。预先谢谢你。
答案 0 :(得分:1)
这是一种可能的方法。计算每个日期的出现次数,将计数存储在一个对象中,然后找到出现次数最多的日期。
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);
}