Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome 自动除以用于获取价值的项目数_Google Chrome_Google Apps Script_Google Sheets - Fatal编程技术网

Google chrome 自动除以用于获取价值的项目数

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,因为其余的项目都是空的。有没有办法自动计算出我应该除以多少?因此,如果我有

我有一个主表和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
,因为其余的项目都是空的。有没有办法自动计算出我应该除以多少?因此,如果我有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()

此脚本将完成整个计算:

所有包含字符串“Project”且值为B2的图纸将用于平均值计算

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);
}