如何删除文件中的前三行

时间:2017-07-07 14:47:03

标签: sql excel vba

我有一个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;

2 个答案:

答案 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';