选择一个范围内的最大数字,该数字也小于另一个范围行中的相应数字

Pick the greatest number in a range that is also less than the corresponding number in another range's row

我在A列和B列中有两组数据。我想从A列中选择最大值,该值也小于B列中相应行中的值。我想我应该可以使用 MAXIFS 函数执行此操作,但我能找到的所有示例都与静态值进行了比较。我尝试了这些选项

=MAXIFS(A1:A10, B1:B10, "<")
=MAXIFS(A1:A10, B1:B10, A&"<"&B)

但它们都没有按预期工作。在第一种情况下,它始终为 0,表示从未满足条件,在第二种情况下,它给出错误。

我知道我可以通过创建一个单独的单元格区域来做到这一点,该区域首先过滤掉与条件不匹配的数据,然后简单地从剩余的数据中选择最大值,但我宁愿在如果可能,单细胞。

是否有这种比较的语法,如果有,它是什么?

=ARRAY_CONSTRAIN(ARRAYFORMULA(
 IF(LEN(INDIRECT(ADDRESS(ROW(), COLUMN(B:B))))>0,
 IF(INDIRECT(ADDRESS(ROW(), COLUMN(B:B)))<MAX($A:$A),
 MAX($A:$A), LARGE(UNIQUE($A:$A), 2)), )), 1, 1)

据我所知,没有办法让它与 MAXIFS 一起工作。

你可以这样写

=maxifs(A:A,A:A,"<"&B:B)

它会接受它,但它只使用 B 列中的第一个值,而不进行并排比较。

所以你必须用另一种方式来做,例如结合 Max 和 If:

=ArrayFormula(max(if(A:A<B:B,A:A)))

或者您可以将最大值与过滤器或查询一起使用:

=max(filter(A:A,A:A<B:B))

=max(query(A:B,"select A where A<B"))