【问题标题】:Pick the greatest number in a range that is also less than the corresponding number in another range's row选择一个范围内的最大数字,该数字也小于另一个范围行中的相应数字
【发布时间】:2019-01-15 10:32:13
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: google-sheets formula google-sheets-formula


    【解决方案1】:

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

    你可以这样写

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

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

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

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

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

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

    【讨论】:

    • 太棒了!最后一个答案 max(query()) 完全符合我的需要,并且足够清晰,以至于当我需要更新工作表时,我有机会在 6 个月内理解它。
    【解决方案2】:
    =ARRAY_CONSTRAIN(ARRAYFORMULA(
     IF(LEN(INDIRECT(ADDRESS(ROW(), COLUMN(B:B))))>0,
     IF(INDIRECT(ADDRESS(ROW(), COLUMN(B:B)))<MAX($A$1:$A),
     MAX($A$1:$A), LARGE(UNIQUE($A$1:$A), 2)), )), 1, 1)
    

    【讨论】:

    • 我不清楚这如何回答这个问题,你能补充一些解释吗?
    • 如果 B1 >= max(A:A) 那么 C1= max(A:A) 的第二大数
    猜你喜欢
    • 2017-08-06
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多