COUNCE非空和非空白单元格

时间:2016-09-12 10:15:37

标签: count google-sheets nonblank

在Google表格中,我想计算范围string name = System.IO.Path.GetFileName(path); int output; bool isNumeric = int.TryParse(name[0].ToString(), out output); if(isNumeric) Console.WriteLine(System.IO.Path.GetFileName(path)); 中非空和非空白的单元格数。使用(C4:U4)可以轻松计算非空。棘手的问题似乎是我想将一个或多个空白的单元格视为空。 (我的用户继续将空白留在不可见的单元格中,我浪费了很多时间来清理它们。)

COUNTIF将具有一个或多个空格的单元格视为非空白并对其进行计数。我也试过了=COUNTIF(C4:U4,"<>"),但是这个问题与使用一个或多个空格计数细胞一样。

我发现stackoverflow中的一个解决方案被95人标记为解决方案,但它不适用于有空白的单元格。

经过多次阅读,我想出了一个奇特的公式:

=COUNTA(C4:U4)

这个想法是=COUNTIF(FILTER(C4:U4,TRIM(C4:U4)>="-"),"<>") TRIM测试单元格大于或等于连字符(我能找到的可打印字符的最低顺序)之前删除前导空格和尾随空格。然后FILTER函数将一个数组返回给FILTER函数,该函数只包含非空和非空单元格。 COUNTIF然后针对“&lt;&gt;”进行测试

这有效(或者至少“似乎”起作用),但我想知道我是否错过了一些非常明显的东西。当然,隐藏空白的问题是非常普遍的,并且自excel和google表格出现以来一直存在。必须有一个更简单的方法。

(我的第一个问题对任何违反论坛规则的行为表示歉意。)

5 个答案:

答案 0 :(得分:1)

可以试试这个,但我一点也不确定

=SUMPRODUCT(--(trim((substitute(A2:A5,char(160),"")))<>""))
  • 似乎在Google表格中,您必须将char(160)与输入单元格的空格相匹配?

似乎这是由于不间断的空间,并且可能也适用于Excel - 正如here所解释的那样 - 建议您也可以通过CLEAN函数传递它以消除范围内代码的不可见字符0-31。

答案 1 :(得分:1)

我不了解Google。但对于Excel,您可以将此数组公式用于多个连续列:

=ROWS(A1:B10) * COLUMNS(A1:B10)-(COUNT(IF(ISERROR(CODE(A1:B10)),1,""))+COUNT(IF(CODE(A1:B10)=32,1,"")))

答案 2 :(得分:1)

我找到了另一种方法:

=ARRAYFORMULA(SUM(IF(TRIM($C4:$U4)<>"",1,0)))

如果可以的话,我仍然在寻找一种更简单的方法。

答案 3 :(得分:1)

这应该有效:

=countif(C4:U4,">""")

我在这里找到了这个解决方案:

Is COUNTA counting blank (empty) cells in new Google spreadsheets?

请告诉我是否可以。

答案 4 :(得分:0)

=COLUMNS(C4:U4)-COUNTBLANK(C4:U4)

这将计算您的范围内有多少个单元格(C4至U4 = 19个单元格),并减去真正为“空”的单元格。

COUNTBLANK不会计入空格,尽管其名称应为COUNTEMPTY