如何在数组公式中包含OR,其中只有一些条件需要为TRUE-Excel



我正在尝试计算以下行的数量: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标准(例如,这里描述的在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在公式周围放了花括号{}(尽管不要尝试自己手动插入(

我能为@XOR-LX的精彩答案提供一种引理吗?你可能会这样做:

=COUNTIFS(A1:A4,"<>",B1:B4,"<>",C1:C4,"<>",D1:D4,"<>")-COUNTIFS(A1:A4,"<=2",B1:B4,"<=2",C1:C4,">=2",D1:D4,"<=4")

即不包含空白的行数减去不满足任何条件的行数。

最新更新