我正在尝试计算以下行数:1)所有列都有条目,ii)至少有一个值符合特定于列的标准。
这是一个例子:
A B C D
4 4 3 5
2 2 2 2
3 1 2 5
1 3 2
此示例的答案是 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/