我有一个excel文件,我需要根据另一列删除最早的三个日期。
Column A Column B Column C
Member Claim Date
Row1 1234 1111 01/01/2017
Row2 1234 1112 02/01/2017
Row3 1234 1113 03/01/2017
Row4 1234 1114 04/01/2017
Row5 1234 1115 05/01/2017
Row6 1234 1116 06/01/2017
Row7 222 1117 01/01/2017
Row8 222 1118 02/01/2017
这是测试数据,我的真实文件有数百行和数百个成员。我需要删除每个成员最早的三个。 我只想看到会员1234的最后3行 我尝试过使用条件格式,但这没有用。 有人可以提出excel公式或VBA解决方案吗?
我也对SQL解决方案持开放态度。 我不确定我会怎么写这个。
我有
Select a.mem, count(a.claim) from Temp a
group by a.mem;
答案 0 :(得分:0)
=(OFFSET(FIRST_Member, COUNTA(RANGE:RANGE)-3,0,3,1))
其中FIRST_Member
是前三个值中您想要的第一个单元格引用。 RANGE:RANGE
是前三个值所需的单元格范围。
如果只想要成员的最后三行,请添加=(IF())格式。这应该接近你正在寻找的,但你的问题缺乏精确的单元格引用。
=(IF(A1='1234', OFFSET(FIRST_Member, COUNTA(RANGE:RANGE)-3,0,3,1) )
答案 1 :(得分:0)
使用SQL解决问题
Create Table Temp as
SELECT a.*, ROW_NUMBER() OVER (PARTITION BY a.mem_no ORDER BY a.status_dt) as Squence
FROM Temp_DETAIL a
Create table Temp_2 as
Select *
from Temp b
where b.squence <='3';