【问题标题】:Make COUNTIFS ignore blank cells使 COUNTIFS 忽略空白单元格
【发布时间】:2015-10-16 15:54:59
【问题描述】:

我正在尝试使用 COUNTIFS 公式来计算已完成的安装次数。这是通过搜索包含许多空白单元格的大表来完成的。使用以下公式时,我收到 #VALUE! 错误,因为 Excel 将空白单元格视为 0s 并在尝试计算字符串和整数时感到困惑:

=COUNTIFS(B10:B152,"Installs",D10:N152,"Done")

范围 D10:N152 包含空白并导致错误。

我可以让 Excel 忽略这些空格或将它们视为字符串而不是整数吗?

【问题讨论】:

  • 正如 pnuts 指出的那样,您的错误与空白单元格无关,而是因为您的范围大小不相等。但是,我很好奇:如果“完成”在同一行中出现多次,那么计数应该是多少?也许发布一个小数据集来帮助澄清。
  • 每行只有一个“完成”。每列代表 1 周,因此一旦将其标记为“完成”,我们将该行的其余部分留空。我们这样做是为了避免您提出的确切问题。谢谢。

标签: excel if-statement excel-formula worksheet-function countif


【解决方案1】:

对于COUNTIFS

重要每个附加范围的行数和列数必须与criteria_range1 参数相同。范围不必彼此相邻。

也许添加一个辅助列,比如O

=IF(MATCH("Done",D10:N10,0)>=1,"Done","")  

复制到适合然后:

=COUNTIFS(B10:B152,"Installs",O10:O152,"Done")  

现在我们知道每行只有一个Done(假设Done 在一个单元格中是独立的)然后是一个辅助列,上面写着:

=COUNTIF(D10:N10,"Done")  

将是比=IF(MATCH("Done",D10:N10,0)>=1,"Done","") 更短的公式,并且还允许使用比=COUNTIFS(B10:B152,"Installs",O10:O152,"Done") 更短的公式进行计数,例如:

=SUM(O:O)  

改为(假设 ColumnO 的其余部分为空白或文本,否则为 =SUM(O10:O152)。

但是,我的目标是使用与 OP 使用的公式尽可能相似的公式,为此还需要使用 Done 填充辅助列。当时我考虑到每行可能有不止一个Done

正如评论中所指出的,如果仅排除测试失败的结果,例如 =IF(MATCH("Done",D10:N10,0)>=1,"Done"),因为 MATCH 永远不会“失败”——而是它在未找到匹配项的情况下返回 #N/A,这对于 COUNTIF 函数来说已经足够了,因为当条件为 Done 时,它不计算 #N/As。

【讨论】:

  • 我可以建议放置 =IF(ISNUMBER(MATCH("done",D10:N10,0)),"done","") 即没有 0 它可以匹配像“等待”这样的短语完成”
  • 虽然我无法让该公式完全符合我的要求,但非常感谢您的解释。我利用这些知识通过几个单独的 countifs 公式计算总数。谢谢。
  • @pnuts 你检查你的 MATCH 结构了吗? value_if_value 子句,即“”,永远不会按需要返回。
  • 那么您显然还需要更多,因为您甚至无法从该构造中生成 FALSE 结果!永远!
  • @pnuts 从您对本网站的熟练程度来看,我不得不不同意 (a)。至于(b),不予置评! :-)
【解决方案2】:

试试这个FormulaArray:

=SUM(($B$10:$B$152="Installs")*($D$10:$N$152="Done"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 2011-04-19
    相关资源
    最近更新 更多