使用Google表格的脚本编辑器,我需要计算表格的平均值,例如:
+---------+---------+---------+---------+
| | User 1 | User 2 | User 3 |
+---------+---------+---------+---------+
| | 20/1/17 | 21/1/17 | 22/1/17 |
+---------+---------+---------+---------+
| Movie 1 | 6 | 2 | 0 |
+---------+---------+---------+---------+
| Movie 2 | 2 | 1 | 5 |
+---------+---------+---------+---------+
| Movie 3 | 3 | 1 | 2 |
+---------+---------+---------+---------+
我希望结果是:
+---------+---------+---------+
| User 1 | User 2 | User 3 |
+---------+---------+---------+
| 3.6 | 1.3 | 2.3 |
+---------+---------+---------+
我有这个代码,如果我在仅由数字组成的表上使用它。问题是我的表中有字符串,所以.reduce返回一个#NUM!错误(结果不是数字)。
var sum = array.reduce(function(r, e, i) {
e.forEach(function(a, j) {
r[j] = (r[j] || 0) + a
})
if (i == array.length - 1) r = r.map(function(el) {
return el / array.length
});
return r;
}, []);
return sum;
如何仅使用数值执行平均值?我尝试使用.filter,但它似乎无法在Google Apps脚本编辑器上运行,或者我只是使用它错了(非常可能)。
这是我用来过滤的条件:
(typeof el !== 'number')
答案 0 :(得分:2)
以下样本怎么样?您可以在Google Apps脚本上使用此功能。
Spec:
'spec' '(' (attrs+=AttrAsgn (',' attrs+=AttrAsgn)*)? ')';