我是谷歌应用程序脚本和javascript的新手。需要一些关于这个主题的帮助。
当前数据:
第1周美国
第1周荷兰
第1周南非
第2周土耳其
第2周英国
第2周美国
第1周美国
第2周英国
修改为:
第1周美国2
荷兰1
南非1
第2周美国1
英国2
土耳其1
答案 0 :(得分:0)
这是一种可能的解决方案。只需将代码复制到脚本编辑器中并保存即可。
然后,您可以在电子表格中使用它,如下所示:=countCountries(A1:B8)
function groupValues(array2D) {
var result = {};
for(var i = 0; i < array2D.length; i++) {
if(!(array2D[i] instanceof Array) || array2D[i].length < 2) throw new Error("two columns are needed");
if(!result[array2D[i][0]]) result[array2D[i][0]] = [];
result[array2D[i][0]].push(array2D[i][1]);
}
return result;
}
function countValues(array) {
var result = {};
for(var i = 0; i < array.length; i++) {
if(!result[array[i]]) result[array[i]] = 0;
result[array[i]] = result[array[i]] + 1;
}
return result;
}
function toArray(o) {
var result = [];
for(key in o) {
result.push([key, o[key]]);
}
return result;
}
function countCountries(range) {
var grouped = toArray(groupValues(range));
grouped.sort();
grouped.forEach(function(values) {
values[1] = toArray(countValues(values[1]));
});
var result = [];
for(var i = 0; i < grouped.length; i++) {
result.push([grouped[i][0], grouped[i][1][0][0], grouped[i][1][0][1]]);
for(var j = 1; j < grouped[i][1].length; j++) {
result.push(["", grouped[i][1][j][0], grouped[i][1][j][1]]);
}
}
return result;
}
答案 1 :(得分:0)
=QUERY(A14:B21,"Select A,B,Count(B) group by A,B")