COUNTA 是否正在计算新 Google 电子表格中的空白单元格?

And*_*res 5 google-sheets

在新的 Google 电子表格中,当引用属于 arrayformula(在 arrayformula 列内)的空单元格时,COUNTA 会计算空白单元格。旧版 Google 电子表格的情况并非如此,其中 COUNTA 给出了预期结果 (0)。其他公式是否同样受到影响?有什么解决办法吗?

Ada*_*amL 6

是的,在新版本的表格中,COUNTA 处理零长度文本字符串的行为发生了变化。

在新的 Google 电子表格中,当引用属于 arrayformula(在 arrayformula 列内)的空单元格时,COUNTA 会计算空白单元格。旧版 Google 电子表格的情况并非如此,其中 COUNTA 给出了预期结果 (0)。

据推测,您引用的空单元格正在用数组公式中的“”填充。在新版本的表格中,这些单元格被计算在内,你是对的,在旧版本中它们没有被计算在内。无论如何,新行为与 MS Excel 中发生的行为一致。

其他公式是否同样受到影响?

是的,SORT 函数(并使用内置排序工具执行原位排序)现在将在数字和日期之后、其他文本字符串之前对零长度文本字符串进行排序,而在零长度文本字符串之前推到排序的底部(但在真正的空白单元格之前)。同样,这种新的排序行为与 MS Excel 一致。

有什么解决办法吗?

我认为最好的解决方法是放弃 IF 公式中“”的使用。在新版本的表格中,如果您完全省略 IF 函数的第二个或第三个参数,并且该函数计算结果为该参数,则返回一个真正的空白单元格(无论如何,在撰写本文时)。所以不要使用类似的东西:

=ArrayFormula(IF(A2:A>25, "something",""))
Run Code Online (Sandbox Code Playgroud)

使用:

=ArrayFormula(IF(A2:A>25, "something",))
Run Code Online (Sandbox Code Playgroud)

并且 COUNTA 不会计算空白单元格。


小智 6

虽然如果 ArrayFormula 中只有一个 If 语句,则删除第三个参数是可行的,但如果您有嵌套的 If 语句,则这不是一种选择(因为 ArrayFormula 中没有 OR 或 AND)。然而,从Google Docs 论坛中针对非空白单元格的 CountIF中,我想到了尝试以下操作:

countif(P4:P,">""")
Run Code Online (Sandbox Code Playgroud)

它工作得很好。