使用脚本计算Google电子表格列中的值重新计算值
问题描述:
我想要使用脚本来计算电子表格中特定列中值的重复次数,以便使用脚本填充不同的列(同一行)当提交表格时。这些是在列B,我想算值:使用脚本计算Google电子表格列中的值重新计算值
6 ACM
5 ACM
4 ACM
5 CGC
7 CGC
6 ACM
7 ACM
7 ACM
使得如果计算中正常工作列C将与这些号码来填充:
我知道如何读取数据,以及如何写入电子表格,但我不知道如何实际算值。这是我到目前为止:
function countif() {
var ss = null;
try {
ss = SpreadsheetApp.openById("0AliYViHYAwaNdHQyMXlKT2Q5UElQY184T3BWYTRiM2c");
} catch (ex) {
ss = SpreadsheetApp.getActiveSpreadsheet();
}
var sheet = ss.getSheetByName("Sheet1");
var lastLine = sheet.getLastRow();
var data = sheet.getRange("B2:B").getValues();
var count = 0;
//need help here
sheet.getRange(lastLine,3).setValue(count);
}
谢谢!
答
把这段代码放在你需要帮助的部分。
for (var i = 0 ; i < lastLine ; i++){
var count = 1;
for (var j = 0 ; j < i ; i ++) {
if (data[j][0] == data[i][0]){
count++;
}
}
sheet.getRange('C' + (i+1).toString()).setValue(count);
}
答
只是作为一个替代方法,可以通过电子表格功能,在C1中输入实现这一目标:
=ArrayFormula(IF(ROW(B:B)=1;"Count";IF(LEN(B:B);MMULT((ROW(B:B)>=TRANSPOSE(ROW(B:B)))*(B:B=TRANSPOSE(B:B));SIGN(ROW(B:B)));IFERROR(1/0))))
+0
非常感谢亚当。我结束了使用函数来使整个工作表正常工作,并使这个功能成为可能。 :) – AnswerFirst 2012-08-02 19:29:16
感谢您的答复。此代码给了我一个错误:“参数必须是一个范围”参考此行: sheet.getRange('C'+ i.toString())。setValue(count); – AnswerFirst 2012-08-01 17:01:50
尝试修改后的代码。我认为这个问题是第一次迭代会尝试写入C0,当然,它不存在! – Srik 2012-08-01 18:12:38
Hhhhmmm ...现在我得到:TypeError:无法从undefined读取属性“0”。关于此行 if(data [j] [0] == data [i] [0]){ – AnswerFirst 2012-08-01 18:41:04