【问题标题】:Array Formula For MaxifsMaxif 的数组公式
【发布时间】:2023-01-30 16:59:04
【问题描述】:

我觉得我的问题应该很容易弄清楚,但我环顾四周,似乎无法找到如何获得产生最大值的基本数组溢出函数。这是我的简化数据集:

Col A Col B
Apple 864
Carrot 189
Pear 256
Apple 975
Pear 873
Carrot 495
Apple 95
Pear 36
Carrot 804

我的目标是拥有一个唯一的食物列表(来自Col A),它返回来自Col B 的最大对应值。来自Col Aunique 列表的公式很简单...=UNIQUE(filter(A:A,A:A<>"")),我正在努力的是获得一个动态的maxifs 来与此保持一致。

为了说明,如果我将唯一函数放在单元格D2 中(因此它会溢出到d4,如下面蓝色所示),正确对应的非数组函数将是=MAXIFS(B:B,A:A,D2)(如column e 所示)。我可以将它拖到剩余的行中,但我希望它是动态的,因为将来我的数据集中可能会有更多食物。

我会怎样预计工作是...=filter(MAXIFS(B:B,A:A,D2:D),D2:D<>""),但这会返回#Value!。相比之下,如果我使用 sumif/Average,=filter(SUMIF(A:A,D2:D,B:B),D2:D<>""),我得到了我期望的结果(这让我很困惑)。

有没有办法获得动态 maxifs(或任何在 E 列中产生相等值的函数),它会根据 D 列中的唯一值溢出?

【问题讨论】:

    标签: sorting google-sheets max array-formulas google-query-language


    【解决方案1】:

    尝试:

    =QUERY({A:B}, "select Col1,max(Col2) where Col2 is not null group by Col1 label max(Col2)''")
    


    奖金:

    =QUERY({A:B}, "select Col1,max(Col2),sum(Col2) where Col2 is not null group by Col1 label max(Col2)'',sum(Col2)''")
    


    奖励 2:

    =SORTN(SORT(A1:B, 2, ), 9^9, 2, 1, 1)
    

    2       - sort the second column of range A1:B
    <empty> - or 0 or FALSE = "in descending order"
    9^9     - output all rows
    2       - 2nd mode of SORTN = "group by..."
    1       - 1st column
    1       - in ascending order
    

    【讨论】:

    • 谢谢你。 Sortn 函数要快得多。我试图弄清楚你到底做了什么来达到这个结果。我什至没想到会出现水果。我知道第一个排序函数是按 b 列中的值对起始列进行排序。我迷失了下一个参数(为什么是 9^9 -- 行?)?好像应该是Counta(Unique(A:A))?如果您不介意向 Sortn 函数添加一些细节,我们将不胜感激。再次感谢,我看到你发布了很多关于数组公式的答案,所以你可能会从我这里得到更多的赞成票。
    • @Phil_Driscle 当然。答案已更新
    【解决方案2】:

    响应提供更明确的答案和简化,因为其他人看到这个寻找相同的:

    完成此操作的最简单方法是使用数组公式,例如: =MAX(IF($A$1:$A$7="Apple",$B$1:$B%7)) 然后按 CTRL-SHIFT-ENTER

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-05
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      相关资源
      最近更新 更多