【和EXCEL对比】保留各个分组中的第一条记录

    某网站中,统计了各个用户访问各个板块的记录,现在需要找出每位用户最后一次访问网站的记录。

  • 首先,以用户为主排序字段升序排序,访问时间为次排序字段降序进行排序,结果如下:
  • 每位用户排序后的第一条记录即为最后一次访问记录,为了通过过滤保留每位用户的第一条记录,在D列中添加判断表达式,判断用户名是否变化,如D18中为=A18=A17,等等,计算结果如下:
  • 此时,再对网格中的数据执行过滤,仅保留D列中值为FALSE的数据,结果如下:

    在Excel中,在多个分组中,求得最大值,除了排序后判断用户是否变化,也可以分组汇总求得每个用户的最后访问时间,然后同样需要添加计算列,判断每条记录的访问时间是否等于该用户的最后访问时间,最后执行过滤,显然这样的方法更为复杂。
    由于对每个用户的过滤判断数值不同,因此这样的问题在Excel中并没有直接的方法,而只能想办法将问题转化,引入中间量作为过滤条件。这样的解决方法需要转换思路,很不直观,使得解决问题的难度增加。

  • 按照用户名执行分组操作,选择分组前排序,结果如下:
  • 选定C3,执行过滤,过滤条件如下:

    将每组中,访问时间最大的记录保留,其它记录删除,执行过滤后,结果如下:

    在计算表中执行过滤时,过滤表达式会根据不同的位置自动迁移,从而可以一次完成复杂的过滤需求,直接保留各个分组的最大值记录。而且,在过滤时,可以根据需求,将不满足要求的记录删除或者隐藏。