在Excel中获取最后一个唯一的行

我有一张桌子,看起来像这样:

id1 | id2 | dateUpdate ========================================== aaa | 111 | 2016-01-01 aaa | 111 | 2016-01-02 aaa | 222 | 2016-01-05 aaa | 222 | 2016-01-15 bbb | 333 | 2016-01-05 bbb | 444 | 2016-01-01 ccc | 111 | 2016-01-02 

我想只得到每个id1 / id2夫妇的最新行:

  id1 | id2 | dateUpdate ========================================== aaa | 111 | 2016-01-02 aaa | 222 | 2016-01-15 bbb | 333 | 2016-01-05 bbb | 444 | 2016-01-01 ccc | 111 | 2016-01-02 

谢谢你的帮助!

屏幕截图显示功能 使用聚合函数

 =AGGREGATE(14, 6, 1/($A$2:$A$99=E2)*($B$2:$B$99=F2)*($C$2:$C$99), 1) 

您必须将E2列和F2列中的唯一组合向下放置您有五个独特的组合

 COLUMN A COLUMN B aaa 111 aaa 222 bbb 333 bbb 444 ccc 111 

综合function将被放在G2栏中并向下填充。

 =AGGREGATE(14, 6, 1/($A$2:$A$99=E2)*($B$2:$B$99=F2)*($C$2:$C$99), 1) 

关于语法14是用于较大的值,例如对于第一个aaa 111组合的大值,即#02-01-2016#公式中的下一个数字6用于忽略错误您可以使用AGGREGATE函数快速获取伪最后一个值。 。 这是一个不需要Ctrl + Shift + Enter的标准非数组公式。 AGGREGATE是在Excel 2010中引入的。

($A$2:$A$99=E2)检查A列的哪个值与A和B的唯一组合的列A的第一个唯一值相匹配。这被转换为一个逻辑值数组,它给出了一个True或False 。 用这些逻辑值除1得到1或DIV#错误。 列F中列B值采用了类似的过程。我已经将数据限制在99行。 如果更多的行数,根据您的要求将99的数字更改为更高的数字。 HTH

编辑你也可以去@Tim Biegeleisen在他的评论中build议的数据透视表解决scheme。 这里给出的快照说明了这种方法。

数据透视表方法

id1id2作为过滤字段,并在值字段中selectdateUpdate的最大值。