我正在尝试计算以下行的数量: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")
即不包含空白的行数减去不满足任何条件的行数。