arrays - 如何在只有某些条件需要为 TRUE 的数组公式中包含 OR - Excel

标签 arrays excel if-statement count

我正在尝试计算以下行数:1)所有列都有条目,ii)至少有一个值符合特定于列的标准。

这是一个例子:

A B C D
4 4 3 5
2 2 2 2
3 1 2 5
1   3 2
  • A 列阈值:>2
  • B 列阈值:>2
  • C 列阈值:<2
  • D 列阈值:>4

  • 此示例的答案是 2,因为 2/4 行至少包含 1 个满足列阈值的值。具体来说,第 1 行有 3 个值满足列阈值,第 3 行有 2 个值。第 2 行没有满足列阈值的值,而第 4 行不应计入,因为它不包含所有列的条目,例如:
    A B C D
    T T F T
    F F F F
    T F F T
    F F F F
    

    因此,我不想计算每行中特定列阈值已满足多少次,而是每行中是否至少满足 1 次。

    我有预感 SUMPRODUCT 可能对这个问题有用,但我不知道如何只为某些条件添加 OR 条件(例如,示例 described here 在 SUMPRODUCTS 中使用“+”作为 OR 函数计数两个标准)。

    您的想法将是最受欢迎的。

    最佳答案

    非常有趣的问题。

    数组公式**:
    =SUM(N(MMULT(IF(MMULT(N(A1:D4=""),TRANSPOSE(COLUMN(A1:D4)^0))=0,COUNTIF(OFFSET(A1,ROW(A1:D4)-MIN(ROW(A1:D4)),COLUMN(A1:D4)-MIN(COLUMN(A1:D4))),{">2",">2","<2",">4"}),0),TRANSPOSE(COLUMN(A1:D4)^0))>0))
    编辑 :如果范围内没有空格,这可以大大简化为:
    =ROWS(A1:D4)-COUNTIFS(A1:A4,"<=2",B1:B4,"<=2",C1:C4,">=2",D1:D4,"<=4")
    因为,从逻辑上讲,要获得 所在的行数。至少一个 条件为真,我们可以计算的行数没有一个条件为真并从总行数中减去该值。

    事实上,也可以调整此设置以考虑空白。会调查的。

    更新:事实上,我相信这会奏效:
    =ROWS(A1:D4)-COUNTIFS(A1:A4,"<=2",B1:B4,"<=2",C1:C4,">=2",D1:D4,"<=4")-COUNT(1/N(MMULT(N(A1:D4=""),TRANSPOSE(COLUMN(A1:D4)^0))>0))
    问候

    **数组公式的输入方式与“标准”公式不同。不是只按 ENTER,而是先按住 CTRL 和 SHIFT,然后再按 ENTER。如果操作正确,您会注意到 Excel 在公式周围放置了大括号 {}(尽管不要尝试自己手动插入这些括号)。

    关于arrays - 如何在只有某些条件需要为 TRUE 的数组公式中包含 OR - Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53471396/

    相关文章:

    c - 使用另一个文本文件中的值填充一个文本文件

    c - C (Arduino) 中的字符串数组(char 数组)。我如何完成它?

    python - 使用 Python 将公式写入 Excel

    mysql - 运行时错误 '-2147217900 (80040e14)'

    Excel:获取由逗号连接的列值匹配用户计数

    php - 根据 if else 条件更新行值

    你能帮我理解以下代码:

    javascript - include() 函数在比较数组中的值时随机工作

    java - 如何初始化对象数组?

    java - 如何控制用户输入的内容?