怎么样在excel中按一列删除重复行并按另时间保留最近的一条记录?
怎么样在excel中按一列删除重复行并按另时间保留最近的一条记录?
A列公司名称,B列公司地址,C列时间。
我想根据A列找出重复的,然后删除那一整行,只留下最近一个记录。
例: A列 B列 C列
北京1公司 北京市西城区 2010-1-1
北京5公司 北京市海淀区 2010-2-2
北京1公司 北京市朝阳区 2010-3-20
北京3公司 北京市东城区 2010-1-20
北京2公司 北京市丰台区 2010-5-1
北京3公司 北京市宣武区 2010-7-1
删除后
北京1公司 北京市西城区 2010-3-20
北京5公司 北京市海淀区 2010-2-2
北京3公司 北京市东城区 2010-7-1
北京2公司 北京市丰台区 2010-5-1
复制代码 代码如下:
Sub 删除重复行()
'
'*******数据放在Sheet1并从A1开始
'*******A列放重复的
'*******C列放时间
Sheets("Sheet1").Select
'A列到Z列排序</p> <p> Columns("A:Z").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, HEADER:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNorma
Range("A1").Select
GoTo tiaoc13
tiaoc1:
If ActiveCell.Offset(0, 2) >= ActiveCell.Offset(1, 2) Then GoTo tiaoc12
ActiveCell.Offset(0, 0).Rows("1:1").EntireRow.Delete Shift:=xlUp
GoTo tiaoc13
tiaoc12: ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Delete Shift:=xlUp
tiaoc13:
Do While ActiveCell.Offset(0, 0) <> ""
If ActiveCell.Offset(0, 0) = ActiveCell.Offset(1, 0) Then GoTo tiaoc1
ActiveCell.Offset(1, 0).Select
Loop
End Sub
'
'*******数据放在Sheet1并从A1开始
'*******A列放重复的
'*******C列放时间
Sheets("Sheet1").Select
'A列到Z列排序</p> <p> Columns("A:Z").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, HEADER:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNorma
Range("A1").Select
GoTo tiaoc13
tiaoc1:
If ActiveCell.Offset(0, 2) >= ActiveCell.Offset(1, 2) Then GoTo tiaoc12
ActiveCell.Offset(0, 0).Rows("1:1").EntireRow.Delete Shift:=xlUp
GoTo tiaoc13
tiaoc12: ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Delete Shift:=xlUp
tiaoc13:
Do While ActiveCell.Offset(0, 0) <> ""
If ActiveCell.Offset(0, 0) = ActiveCell.Offset(1, 0) Then GoTo tiaoc1
ActiveCell.Offset(1, 0).Select
Loop
End Sub
录一个宏用上面代码替换,再运行这个宏即可