Google Sheet 自定义函数 returns 0

Google Sheet custom function returns 0

我正在按照 this thread 计算具有特定颜色的所有单元格。

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

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

问题是,无论我如何尝试操作函数或单元格,函数总是 returns 0 而不是预期的 14.

它自己 getColor() 有效,但似乎在 ArrayFormulat(SUM()) 阶段出现故障。

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

=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

工作

我回答了我自己的问题。

使用 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) ) )