Microsoft Excel - 对于A列中的每个唯一值,从C列返回最大值,从B返回相应的值

时间:2016-04-01 15:24:22

标签: excel max

使用公式,我希望得到列A中每个唯一值的列C的最大值,然后我还想将列B中的相应值返回到列C的最大值。输出应该是第二个屏幕截图中的数据摘要。我已经尝试了数据透视表,条件格式和此链接中的帮助,没有运气Get the maximum values of column B per each distinct value of column A

original data

desired result

这可以用公式吗?

2 个答案:

答案 0 :(得分:0)

因此,对于最大数字,请使用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)

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

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

enter image description here

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

对于其他版本,不太健壮的数组公式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()将忽略它们。

答案 1 :(得分:0)

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

Array formula using Tables, Max, Lists, etc

小组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