代码之家  ›  专栏  ›  技术社区  ›  Karma

countif多列

  •  0
  • Karma  · 技术社区  · 5 年前

    我想计算这三个条件匹配的次数,如下所示:

         A    B    C    D
    1  12%  Yes  2.0  1.9
    2   6%  Yes  0.6  2.2
    3  -2%  Yes  4.8  4.0
    4  11%   No  6.0  4.2
    5   5%   No  3.5  3.9
    

    3个标准包括: A列大于10%, B列为“是”,并且 列C>列D

    这是我的公式:

    =COUNTIFS(A:A, ">=0.1", B:B, "Yes", C:C, ">="&D:D)
    

    如您所见,只有第1行符合所有条件,并且它应该返回1。但是,无论我如何修改公式,它都返回0。

    编辑:我很确定 C:C, ">="&D:D 是导致错误的原因,但我不知道如何修复它。

    2 回复  |  直到 5 年前
        1
  •  3
  •   ashleedawg    5 年前

    问题是 ">=" & D:D 基本上是一个独立的文本函数(“ & ”是 CONCATENATE 函数),因此不知道你指的是哪一行(所以你说 “大于或等于 全部的 柱的 D )

    一种解决方案是添加“helper列”。例如,如果 E1 有一个公式:

    =C1>=D1
    

    …然后将其复制到列的其余部分,然后使用公式可以得到所需的结果:

    =COUNTIFS(A:A, ">=0.1", B:B, "Yes", E:E, TRUE)
    

    (有另一个使用数组公式的解决方案,但目前我还没有找到。)


    编辑: 嘿,数组公式的解让我无法理解,因为 你已经有了正确的公式 用作数组公式--

    ……所以,使用你现有的公式,但是 而不是打击 进入 若要输入,请使用 Ctrl键 + 换档 + 进入 .


    更多信息:

        2
  •  1
  •   Baris Tasdelen    5 年前

    你可以使用 sumproduct

    =SUMPRODUCT(--(A:A>=0.1), --( B:B = "Yes"), --(C:C >= D:D))

    =SUMPRODUCT(--(A1:A5>=0.1), --( B1:B5 = "Yes"), --(C1:C5 >= D1:D5))

        3
  •  1
  •   user11174618    5 年前

    旧样式的数组公式会产生正确的结果。

    =SUM(IF(A1:A5>0.1, IF(B1:B5="yes", IF(C1:C5>D1:D5, 1))))
    

    用ctrl+shift+enter完成这项操作,而不仅仅是enter。