我可以使用仅需要 1 个 IF 条件的 COUNTIFS 吗?

我可以使用仅需要 1 个 IF 条件的 COUNTIFS 吗?
          COL A     COL B     COL C
ROW 1     Yes                 Yes
ROW 2     Yes
ROW 3
ROW 4               Yes       Yes

我正在尝试编写一个公式来计算有多少行至少有一列值为“是”。我尝试过COUNTIFS()对所有三列都使用这个公式,但只有当所有三列都为“是”时才有效。我想计算一行,无论其中有多少个“是”值,只要至少有一个就行。

如果我添加第四列,使用IF语句查找 YES 值,然后计算该列,我可以更轻松地实现这一点。但是,我在这里寻找单个单元格解决方案。

答案1

您需要使用以下数组公式来完成此操作。

=SUM(--((A1:A4="Yes")+(B1:B4="Yes")+(C1:C4="Yes")>0))

为了表明它是一个数组公式,在 Excel 中输入公式后,按Ctrl+ Shift+Enter而不是Enter

所发生的情况是A1:A4将扩展为要评估的数组,A1:A4="Yes"将扩展为{"Yes", "Yes", "", ""} = "Yes",进而变为{TRUE, TRUE, FALSE, FALSE}。Excel 内部将 TRUE 视为 1,将 FALSE 视为 0。

因此(A1:A4="Yes")+(B1:B4="Yes")+(C1:C4="Yes")计算结果为{2, 1, 0, 2}。接下来,{2, 1, 0, 2}与 进行比较>0,得到{TRUE, TRUE, FALSE, TRUE}。为了将 True 改为 1,将 False 改为 0 以进行加法,我添加了一个--运算符(实际上是双重否定)以使数组{1, 1, 0, 1}。加起来{1, 1, 0, 1}得到 3。

无论如何,如果工作簿需要共享,我不建议使用此方法,因为这种方法不易理解;但如果您了解底层机制,它会很有趣。

答案2

如果你的三列连续的那么你可以使用这个公式

=SUMPRODUCT(0+(MMULT(0+(A1:C4="Yes"),{1;1;1})>0))

您需要更改该{1;1;1}部分,使 1 的数量与列数相同

相关内容