计算单元格 A 或 B 或 C 中包含 X 的行数

计算单元格 A 或 B 或 C 中包含 X 的行数

我认为看照片是展示我需要的东西的最简单的方法:

原始表

如何设置单一公式来统计未通过某项考试的孩子的数量?

到目前为止我所做的就是创建一个额外的列并设置一些嵌套的 IF 语句:

附加列

然后我可以计算 E 列。但是,我试图通过创建额外的列来解决这个问题。我被难住了。我假设在公式的开头必须有一些 CountIF 和一个范围。

谢谢你!

答案1

您可以使用一个相当复杂的公式:

=SUM(N(MMULT(N(B3:D10="Fail"),ROW(INDEX(A:A,1):INDEX(A:A,COLUMNS(B3:D10)))^0)>0))

在此处输入图片描述

如果您想缩短这个并且不介意输入数组的变体:

=SUM(N(MMULT(N(B3:D10="Fail"),TRANSPOSE(COLUMN(B3:D10)^0))>0))

确认通过CtrlShiftEnter

如果你想了解这些公式的工作原理,我建议你读一下这篇文章关联

编辑

另一个选择是SUMPRODUCT像这样使用:

=SUMPRODUCT(--((B3:B10="Fail")+(C3:C10="Fail")+(D3:D10="Fail")>0))

这也许会让整个事情变得更容易理解一些。

答案2

此数组公式将解决该问题:

在此处输入图片描述

Fail单元格计数公式F142

{=SUM(--(MMULT(--($C$136:$E$141=$E$142),TRANSPOSE(COLUMN($C$136:$E$141)))>0))}

注意:

  • 单元格中的公式F142,最后以Ctrl+Shift+Enter
  • 标准失败在单元格中E142,使公式动态化。

  • 多元多极体返回两个数组的矩阵乘积。
  • (--($C$136:$E$141=$E$142)TRUE/ FALSE为 Range 中的每个值生成一个。
  • 双重否定--将 the 强制TRUE/FALSE转换为1& ,0就像这样。

{1,1,1;0,1,0;1,0,1;0,0,0;0,0,1;1,0,0}

  • TRANSPOSE(COLUMN($C$136:$E$141)),是公式中比较棘手的部分,其中柱子用于生成正确大小的数字数组。
  • 对于非零值,>0再次强制TRUE/ FALSE进入10获取最终数组内部

=SUM({1;1;1;0;1;1}),返回5

您可以根据需要调整公式中的单元格引用。

相关内容