我正在尝试创建一个脚本,它将遍历一个列的所有值,并添加匹配列的数量。
然后在表格底部复制结果,如下所示:
蓝1绿2绿5红2蓝4
结果:
蓝5绿7红2
谢谢西蒙
发布于 2020-01-04 23:33:15
function countingBuckets() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('b');
var rg=sh.getRange(1,1,sh.getLastRow(),2);
var vA=rg.getValues();
var cb={bA:[]};
vA.forEach(function(r,i){
if(!cb.hasOwnProperty(vA[i][0])) {
cb[vA[i][0]]=vA[i][1];
cb.bA.push(vA[i][0]);
}else{
cb[vA[i][0]]+=vA[i][1];
}
});
sh.appendRow(["Results"]);
cb.bA.forEach(function(e,i){
sh.appendRow([e,cb[e]]);
});
}
function countingBuckets() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('b');
var rg=sh.getRange(1,1,sh.getLastRow(),2);
var vA=rg.getValues();
var cb={bA:[]};
vA.forEach(function(r,i){
if(!cb.hasOwnProperty(vA[i][0])) {
cb[vA[i][0]]={cells:0,sum:0};
cb[vA[i][0]].sum=vA[i][1];
cb[vA[i][0]].cells=1;
cb.bA.push(vA[i][0]);
}else{
cb[vA[i][0]].sum+=vA[i][1];
cb[vA[i][0]].cells+=1;
}
});
sh.appendRow(["Results"]);
cb.bA.forEach(function(e,i){
sh.appendRow([e,cb[e].sum,cb[e].cells]);
});
}
发布于 2020-01-04 23:53:58
使用公式,您可以使用以下内容:
= filter
(
{ unique(A1:A),
sumif(A1:A,"=" & UNIQUE(A1:A),B1:B)
}
, unique(A1:A)<>""
)
https://stackoverflow.com/questions/59595562
复制相似问题