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

我想用COUNTIFS得到一个公式,就像

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

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

笔记:

  1. A2包含一个空string ,作为公式的结果。 A3是一个空格 ,没有公式。
  2. 公式发布返回2。
  3. 我尝试使用各种数量的双引号。 我总是得到2。
  4. 我尝试使用&CHAR(34)&CHAR(34) 。 我得到2。
  5. 解决方法张贴在如何获得countifsselectExcel中的所有非空白单元格? 是我所尝试的,它返回2(没有用)。
  6. 公式实际上是=COUNTIFS(range1,cond1,range2,cond2) ,这就是为什么我不能使用=ROWS(A1:A3)-COUNTIF(A1:A3,"")=ROWS(A1:A3)-COUNTBLANK(A1:A3) (看这个 )。 range1range2将来自带有INDIRECTexpression式,但这可能不相关。
  7. 我用=SUMPRODUCT(--(expression1),--(ISNUMBER(A1:A3))) ,但是我特别提到了使用COUNTIFS的可能性。 数字与文本(例如)的区别在这一点上是不相关的。
  8. 空白空string是“麻烦”的来源(见,例如, 这 )。
  9. 对于BLANK的定义,Excel本身有点模棱两可。 在我的示例中, ISBLANK(A2)返回FALSE ,但COUNTBLANK(A2)返回1
  10. 我对用户Function不感兴趣。

使用SUMPRODUCT函数来计算单元格内容的LEN函数的SIGN函数 。

COUNTIF对零长度的字符串

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

C2中的公式是,

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

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

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

(作为数组公式input)。 IF(NOT(ISBLANK(x))…过滤掉非空白,然后IF(NOT(ISTEXT(x))…过滤掉非文本。根据需要设置多个filter如果您只想过滤掉空的string,但包含其他文本条目,则可以使用类似的filter

IF(ISTEXT(X),IF(LEN(X)> 0,1,0),0)