Google Sheet自定义函数返回0

时间:2015-04-04 16:55:03

标签: javascript google-apps-script google-sheets google-docs google-apps

我正在关注this thread以计算具有特定颜色的所有单元格。

就我而言,green/lime/#00ff00/rgb(0,255,0)

我已经创建了own sheet并尝试重新创建这些自定义函数但没有成功。

问题在于,无论我如何尝试操作函数或单元格,函数始终返回0而不是预期的14计数。

在自己的getColor()工作,但似乎在ArrayFormulat(SUM())阶段出现了问题。

2 个答案:

答案 0 :(得分:2)

尝试将字符串作为字符串传递..类似于:

=ArrayFormula(sum(--(getColor("C2:C15")=rgb(0,255,0))))

如果您想使用公式,请尝试:

=sum(ArrayFormula(N(getColor( ADDRESS( ROW(C2),COLUMN(C2) )&":"&ADDRESS( ROW(C15), COLUMN(C15))) = rgb(0,255,0) )))

当然,最短的方式是:

=countif(getColor("C2:C15"), "#00ff00")

所有人都在this copy of your spreadsheet

工作

答案 1 :(得分:0)

我回答了自己的问题。

使用COUNTIF()代替SUM()功能是关键。 SUM()适用于数值,而COUNTIF()适用于字符串,这是表示颜色值的方式。

所以这个:

=ArrayFormula(COUNTIF( getColor( ADDRESS( ROW(C2),COLUMN(C2) )&":"&ADDRESS( ROW(C38), COLUMN(C38))), "#00ff00" ) )

而不是

=ArrayFormula(SUM( getColor( ADDRESS( ROW(C2),COLUMN(C2) )&":"&ADDRESS( ROW(C38), COLUMN(C38)))= rgb(0,255,0) ) )