Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2901|回复: 3

[已解决]提取最新数据

[复制链接]
发表于 2015-10-10 21:41 | 显示全部楼层 |阅读模式
本帖最后由 张雄友 于 2015-10-14 07:47 编辑

编号是唯一的,每个人的编号都不同,去确定身份的唯一值。
如果病人重复看病,会多次就诊。
现要提取每个病人最后一次(最新的时间)就诊的记录。

如上就是黄色行记录。但编号001的提取不对!
因为'2015-10-9比2015-6-4  为最后看病日期。

最佳答案
2015-10-10 22:39
Sub test()

    '1)复制到空白工作表
    Sheets("Sheet3").Activate
    Range("a1").CurrentRegion.Sort key1:=[a1], order1:=xlAscending, key2:=[e1], order2:=xlDescending, Header:=xlYes
    Sheets("Sheet3").Copy Sheets(Sheets.Count)
    ActiveSheet.Move After:=Sheets(Sheets.Count)    '可选

    '2)去重复
    Range("a:a").AdvancedFilter Action:=xlFilterInPlace, Unique:=True    '方法1:高级筛选(只是隐藏了重复项)
'    Range("a1").CurrentRegion.RemoveDuplicates Columns:=1, Header:=xlYes    '方法2:删除重复项(03不可用)

End Sub

保留最后一条记录2.rar (13.6 KB, 下载次数: 9)

保留最后一条记录.rar

11.43 KB, 下载次数: 9

发表于 2015-10-10 22:09 | 显示全部楼层
你用FIND函数自然是这样的,要么从下往上查找,要么从上往下查找第一个值,要么你把日期列按升序排列就可以了。
回复

使用道具 举报

发表于 2015-10-10 22:13 | 显示全部楼层
或者在排序中,编号列和就诊日期列都按升序排列,提取出来的值就更整齐了。
回复

使用道具 举报

发表于 2015-10-10 22:39 | 显示全部楼层    本楼为最佳答案   
Sub test()

    '1)复制到空白工作表
    Sheets("Sheet3").Activate
    Range("a1").CurrentRegion.Sort key1:=[a1], order1:=xlAscending, key2:=[e1], order2:=xlDescending, Header:=xlYes
    Sheets("Sheet3").Copy Sheets(Sheets.Count)
    ActiveSheet.Move After:=Sheets(Sheets.Count)    '可选

    '2)去重复
    Range("a:a").AdvancedFilter Action:=xlFilterInPlace, Unique:=True    '方法1:高级筛选(只是隐藏了重复项)
'    Range("a1").CurrentRegion.RemoveDuplicates Columns:=1, Header:=xlYes    '方法2:删除重复项(03不可用)

End Sub

保留最后一条记录2.rar (13.6 KB, 下载次数: 9)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 15:27 , Processed in 0.432372 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表