Google chrome 自动除以用于获取价值的项目数
我有一个主表和10个其他表,每个表都有我的一个项目。现在我只取其中3个的值,其他的都是空的Google chrome 自动除以用于获取价值的项目数,google-chrome,google-apps-script,google-sheets,Google Chrome,Google Apps Script,Google Sheets,我有一个主表和10个其他表,每个表都有我的一个项目。现在我只取其中3个的值,其他的都是空的 =IFERROR(平均值('Project 1'!B2'Project 2'!B2'Project 3'!B2'Project 4'!B2'Project 5'!B2'Project 6'!B2'Project 7'!B2'Project 8'!B2'Project 9'!B2'Project 10'!B2)/3) 我划分我的/3,因为其余的项目都是空的。有没有办法自动计算出我应该除以多少?因此,如果我有
=IFERROR(平均值('Project 1'!B2'Project 2'!B2'Project 3'!B2'Project 4'!B2'Project 5'!B2'Project 6'!B2'Project 7'!B2'Project 8'!B2'Project 9'!B2'Project 10'!B2)/3)
我划分我的/3
,因为其余的项目都是空的。有没有办法自动计算出我应该除以多少?因此,如果我有5个项目填充了数据,它将自动除以5,而不是3。用于获取数据集中的值数
示例:
=COUNTA('Project 1'!B2, 'Project 2'!B2, 'Project 3'!B2, 'Project 4'!B2, 'Project 5'!B2, 'Project 6'!B2, 'Project 7'!B2, 'Project 8'!B2, 'Project 9'!B2, 'Project 10'!B2 )
=IFERROR(AVERAGE('Project 1'!B2, 'Project 2'!B2, 'Project 3'!B2, 'Project 4'!B2, 'Project 5'!B2, 'Project 6'!B2, 'Project 7'!B2, 'Project 8'!B2, 'Project 9'!B2, 'Project 10'!B2 ) / COUNTA('Project 1'!B2, 'Project 2'!B2, 'Project 3'!B2, 'Project 4'!B2, 'Project 5'!B2, 'Project 6'!B2, 'Project 7'!B2, 'Project 8'!B2, 'Project 9'!B2, 'Project 10'!B2 ))
如果只有5个项目具有非空值,则应返回5
完整公式:
=COUNTA('Project 1'!B2, 'Project 2'!B2, 'Project 3'!B2, 'Project 4'!B2, 'Project 5'!B2, 'Project 6'!B2, 'Project 7'!B2, 'Project 8'!B2, 'Project 9'!B2, 'Project 10'!B2 )
=IFERROR(AVERAGE('Project 1'!B2, 'Project 2'!B2, 'Project 3'!B2, 'Project 4'!B2, 'Project 5'!B2, 'Project 6'!B2, 'Project 7'!B2, 'Project 8'!B2, 'Project 9'!B2, 'Project 10'!B2 ) / COUNTA('Project 1'!B2, 'Project 2'!B2, 'Project 3'!B2, 'Project 4'!B2, 'Project 5'!B2, 'Project 6'!B2, 'Project 7'!B2, 'Project 8'!B2, 'Project 9'!B2, 'Project 10'!B2 ))
注意:
=COUNTA('Project 1'!B2, 'Project 2'!B2, 'Project 3'!B2, 'Project 4'!B2, 'Project 5'!B2, 'Project 6'!B2, 'Project 7'!B2, 'Project 8'!B2, 'Project 9'!B2, 'Project 10'!B2 )
=IFERROR(AVERAGE('Project 1'!B2, 'Project 2'!B2, 'Project 3'!B2, 'Project 4'!B2, 'Project 5'!B2, 'Project 6'!B2, 'Project 7'!B2, 'Project 8'!B2, 'Project 9'!B2, 'Project 10'!B2 ) / COUNTA('Project 1'!B2, 'Project 2'!B2, 'Project 3'!B2, 'Project 4'!B2, 'Project 5'!B2, 'Project 6'!B2, 'Project 7'!B2, 'Project 8'!B2, 'Project 9'!B2, 'Project 10'!B2 ))
- 我不确定您的目标是否是计算非空项目的平均值,因为您需要确定非空项目的数量。您可能需要在股息中使用SUM()而不是AVERAGE()
如果你的目标是取非空项目的平均值,你可以考虑使用这个公式:
=AVERAGE(QUERY({'Project 1'!B2, 'Project 2'!B2, 'Project 3'!B2, 'Project 4'!B2, 'Project 5'!B2, 'Project 6'!B2, 'Project 7'!B2, 'Project 8'!B2, 'Project 9'!B2, 'Project 10'!B2 },"where Col1 is not null"))
- query()将从列出的数据集中返回所有非空值。然后使用average()
function projavg() {
const ss = SpreadsheetApp.getActive();
const name = 'Project';//Sheets that contain this string will be considered if they have a value in B2
const avg = ss.getSheets().reduce((a, c) => { if (~c.getName().indexOf(name) && c.getRange('B2').getValue()) { a.sum += c.getRange('B2').getValue(); a.n++; } return a; }, { n: 0, sum: 0, avg: function () { return this.sum / this.n; } }).avg();
Logger.log(avg);
}