获取Excel中的最后一行

时间:2016-05-24 12:43:13

标签: excel excel-formula

我的桌子看起来像这样:

    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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

Screen shot showing function使用聚合函数

=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

聚合功能将放在G2栏中并向下填充。

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

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

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

修改 您也可以按照@Tim Biegeleisen的评论建议使用数据透视表解决方案。这里给出的快照说明了这种方法。

pivot table approach

id1id2被视为过滤字段,并在值字段中选择dateUpdate的最大值。