Maxif 的数组公式

Array Formula For Maxifs

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

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

我的objective是有一个唯一的食物列表(来自Col A),即returns来自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<>"") 但是这个 returns #Value!。相比之下,如果我使用 sumif/Average、=filter(SUMIF(A:A,D2:D,B:B),D2:D<>""),我会得到我期望的结果(这让我很困惑)。

有没有一种方法可以获取基于 D 列中的唯一值溢出的动态 maxifs(或在 E 列中产生相等值的任何函数)?

尝试:

=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