Microsoft Excel – 对于列A中的每个唯一值,返回列C中的最大值和来自B的相应值

使用一个公式,我正在寻找列A中的每个唯一值的C列的最大值,那么我也想从列B中返回相应的值到列C的最大值,输出应该是在第二个屏幕捕获中的数据。 我已经尝试了数据透视表,条件格式和这个链接中的帮助,没有运气得到列B的每个不同值的列的最大值

原始数据

预期的结果

这是可能的公式?

所以对于最大数量使用AGGREGATE()函数:

=AGGREGATE(14,6,$C$2:INDEX(C:C,MATCH(1E+99,C:C))/($A$2:INDEX(A:A,MATCH(1E+99,C:C))=I2),1) 

然后find容量一个简单的SUMIF():

 =SUMIFS(B:B,A:A,I2,C:C,K2) 

在这里输入图像说明

AGGREGATE()函数是在Excel 2010中引入的。


对于其他版本,不太健壮的Array Formula MAX(IF())将代替AGGREGATE:

 =MAX(IF($A$2:INDEX(A:A,MATCH(1E+99,C:C))=I2,$C$2:INDEX(C:C,MATCH(1E+99,C:C)))) 

作为数组公式,在退出编辑模式时,必须用Ctrl-Shift-Enter确认。 如果正确完成,Excel将自动在公式周围放置一个数组公式。

另外,如果您拥有最新的Office 365或使用在线应用程序,以下非CSE MAXIFS()也可以工作:

 =MAXIFS($C$2:INDEX(C:C,MATCH(1E+99,C:C)),$A$2:INDEX(A:A,MATCH(1E+99,C:C)),I2) 

这两个不像AGGREGATE()那样健壮,因为如果数据中有错误,它们将会中断。 AGGREGATE()会忽略它们。

这是另一个使用Array公式的选项。 我没有在我的工作表的A1开始,所以图像有我的单元格/行ID来协助!

数组公式使用表,最大,列表等

单元格M17: =IFNA(INDEX([Host], MATCH(0, COUNTIF($M$16:M16, [Host]), 0)),"Unknown") + Ctrl + Shift + Enter

单元格N17: =MAX(IF([Host]=[@UniqueHost],[Duration])) + Ctrl + Shift + Enter

单元格O17: =IFNA(INDEX([Capacity],MATCH([@UniqueHost]&[@MaxDuration],[Host]&[Duration],0)),0) + Ctrl + Shift + Enter