让COUNTIFS忽略所有空白单元格(=空单元格和包含""的单元格)

时间:2015-03-27 01:35:30

标签: excel excel-formula countif nonblank

我希望得到一个COUNTIFS的公式,比如

=COUNTIF(A1:A3,"<>"&"")

这样当A1 = 2,A2 =“”,A3 =空时,它会返回1.

注意:

  1. A2包含空字符串,作为公式的结果。 A3空白单元格,其中没有公式。
  2. 公布的公式返回2.
  3. 我尝试使用各种数量的双引号。我总是得到2。
  4. 我尝试使用&CHAR(34)&CHAR(34)。我得到2。
  5. How do I get countifs to select all non-blank cells in Excel?中发布的解决方案是我尝试过的,它返回2(没用)。
  6. 公式实际上是=COUNTIFS(range1,cond1,range2,cond2),这就是为什么我不能使用类似的东西 =ROWS(A1:A3)-COUNTIF(A1:A3,"")=ROWS(A1:A3)-COUNTBLANK(A1:A3)(请参阅this)。 range1range2来自INDIRECT的表达式,但这可能不相关。
  7. 我已经使用=SUMPRODUCT(--(expression1),--(ISNUMBER(A1:A3)))进行了解决,但我特别询问使用COUNTIFS的可能性。目前,对数字与文本(例如)的歧视并不相关。
  8. 空白空字符串是“麻烦”的来源(例如,请参阅this)。
  9. Excel本身在 BLANK 的定义方面有些含糊不清。在我的示例中,ISBLANK(A2)返回FALSE,但COUNTBLANK(A2)返回1
  10. 我对用户Function不感兴趣。

3 个答案:

答案 0 :(得分:3)

使用SUMPRODUCT function计算单元格内容SIGN functionLEN function

COUNTIF against zero length strings

根据您的样本数据,A1有一个值,A2是公式返回的零长度字符串,A3真的是空白。

C2中的公式是,

=SUMPRODUCT(SIGN(LEN(A1:A3)))

答案 1 :(得分:0)

使用SUM而不是COUNTIFS是一个选项吗?如果是这样,我发现它可以更灵活地过滤数据集。例如:

= SUM(IF(NOT(ISBLANK(A1:A3)),IF(NOT(ISTEXT(A1:A3)),1,0),0))

(作为数组公式输入)。 IF(NOT(ISBLANK(x))...过滤掉非空白,然后IF(NOT(ISTEXT(x))...过滤掉非文本。无论生存的是什么,过滤器都是通过求和计算的。你可以添加尽可能多的过滤器。如果您只想过滤掉空字符串但包含其他文本条目,可以使用像

这样的过滤器

如果(ISTEXT(X),IF(LEN(X)&GT; 0,1,0),0)

答案 2 :(得分:0)

我遇到了这个确切的问题,我才发现有关“?*”通配符的信息,该通配符搜索任何一个或多个字符,从而避免了空字符串问题-天才!在此处查看Jonathan Gawrych的答案(在选定答案后发布):

Excel Countif Not equal to string length of zero

不确定这是否适用于OP,因为看起来A1中的值可能需要以数字而不是字符串的形式进行处理,但这可能会帮助到达此处的任何其他人寻求文本解析解决方案。 / p>