电脑教程
位置:首页>> 电脑教程>> office教程>> excel按一列删除重复行,并按另一列时间保留最近的一条记录

excel按一列删除重复行,并按另一列时间保留最近的一条记录

  发布时间:2023-06-23 22:09:52 

标签:excel,删除,重复行,宏

本文介绍excel中根据A列公司名称找出重复的记录,并按照C列时间保留最近的一条记录的方法,希望对大家有所帮助。

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列排序

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

录一个宏用上面代码替换,再运行这个宏即可

0
投稿

猜你喜欢

手机版 电脑教程 asp之家 www.aspxhome.com