假如一个表中,某一项在不同的时间出现了很多条数据记录,我们只想要取出最后一次的记录行,也就是时间最近的数据记录,那么我们如何去做呢? 分析:首先我们要知道每一项对应的最新日期是哪一行,也就是日期的最大值,然后判断每行的日期与最新日期做比较,如果一致,我们就认为这一行就是我们要保留的行。 下面看一下具体的做法: 下表为多个同学在不同时间的分数记录,我们要把每个学生最后一次的记录提取出来。 第一步:先在最后增加辅助字段,获取指定条件的最大值,公式为: D2=MAXIFS($B$2:$B$12,$A$2:$A$12,A2) 双击D2单元格右下角填充柄,填充公式到最后一行。这样在每一行的辅助列返回了该同学的最新时间。
其中,MAXIFS函数可以返回一组给定条件的单元格的最大值。这个函数在低版本可能没有,需要用数组函数来解决。 函数解释:该函数在D2单元格中返回姓名列中所有等于A的所有行的时间列的最大值。 注意:姓名列和时间列均采用绝对引用,这样可以保证D列公式在下拉时,引用的区域不会发生位移。 第二步: 判断该行的时间与最大值是否相等,如果相等可以显示为“保留行”,否则不显示。 修改D2的公式为: D2=IF(B2=MAXIFS($B$2:$B$12,$A$2:$A$12,A2),"保留行","") 双击D2单元格右下角填充柄,填充公式到最后一行。这样在辅助字段中出现了我们想要的结果。 第三步: 按照辅助字段的保留行进行筛选,并将其复制到指定区域,或者按照辅助字段的空值进行筛选,并删除记录行即可。 总结:该公式使用了嵌套函数,如果不熟悉,可以将第二步分开来写,如下图所示:
|
|