0

我跟随this thread来计算具有特定颜色的所有单元格。Google表自定义函数返回0

在我的情况,green/lime/#00ff00/rgb(0,255,0)

我已经建立了我own sheet并试图重新无功而返这些自定义的功能。

问题是无论我如何操作函数或单元格,函数总是返回0而不是预期的计数14

本身getColor()作品,但似乎在ArrayFormulat(SUM())阶段分解。

回答

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

工作
+0

感谢@JPV,但不幸的是它似乎像它应该是完全不是那么回事。虽然它不是因为getColor()函数,但又是因为'ArrayFormula(sum('。你会尝试隔离getColor()'然后'ArrayFormula(sum('在我看到的链接中看到我的意思是? – 2015-04-04 19:18:55

+1

查看我更新的答案并检查链接... :-) – JPV 2015-04-04 20:57:14

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