后山狼 发表于 2013-11-28 12:42 只看TA 21楼 |
---|
在EXCEL表格里, 1,把有重复数据的一列,框先起来;选中:列表区域 2,在工具栏,选项中:数据--筛选--高级筛选---方式{选将筛选结果复制到其他位置} 3,看一下,列表区域,是不是:有重复数据的那列,不是,可点红色小箭头,在EXCEL表中选中, 4,条件区域,也可以选 一般是跟上面:列表区域一样, 5,复制到:在你列表区域后面,再另选一列(一会就是新的数据,不重复的) 6,在:选择不重复的记录 ,打勾, 7,确定,OK了,是不是 |
0 |
豆花饭 发表于 2013-11-28 16:44 只看TA 22楼 |
---|
1、用公式:=COUNTIF($A$1:A1,A1) A代表你要查找的那一重复列,往下拖,就发现有数字1的就是不重复的,大于1的数字就是重复数字,在排序一下最后结果,把重复的数字删掉就可以了 2、用,数据 高级筛选 删除重复数据 |
0 |
tanghotinjoe 发表于 2013-11-28 18:02 只看TA 23楼 |
---|
直接在姓名那列按排序 然後一直看下去就行 如果你會寫程式碼的話, 用temp暫存 然後寫兩個for迴圈也可以0 0 |
0 |
|
---|
f1toretry 发表于 2013-12-2 19:47 只看TA 24楼 |
---|
我有个方法不知道使用方便不方便,首先按照身份证号进行排序,然后在排序好的表基础上新增加一列X作为插入If函数,例如身份证号所在列为A,那么X列的内容就是if(A(N)=A(N-1),则X(N)=1,否则=0,下拉填入所有的X列后,将X=1的行筛选出来,删了就行了。 |
0 |
pyzl 发表于 2013-12-5 14:27 只看TA 25楼 |
---|
其实这个可以做宏来搞定这类事,现在简单点用公式解决,楼主你也按身份证号排序(姓名也可能重复),然后在新的一栏输入以下公式(假设第一行为标题,从第二行开始,同时假设A列为身份证号)=if(a2=a1,"重复",""),将公式填充至最后一行,然后你筛选删除出现重复的就是了。 |
0 |
jaunthe 发表于 2013-12-5 18:33 只看TA 26楼 |
---|
不单会下片,还会写写码 百分百的原创 打开工具里面的宏。粘贴进去就可以运行了。Sub perfect() '输入 Dim userInput userInput = Application.InputBox("输入需要检查的起始行,结束行,以及需要判断的列,格式如 2,20,C,B") Dim arrUserInput arrUserInput = Split(userInput, ",") Dim theColumn theColumn = arrUserInput(2) 'theColumn = Asc(arrUserInput(2)) - 64 '进行检验的列 Dim theStart theStart = arrUserInput(0) '起始行 Dim theEnd theEnd = arrUserInput(1) '最后一行的号码. If theStart <= 1 Then MsgBox "起始行要求大于1" End End If Dim i '每一行的号码 Dim j ' '排序 '删除重复行 For i = theStart To theEnd For j = i + 1 To theEnd '从当前行至结尾. If Cells(i, theColumn) = Cells(j, theColumn) Then Rows(j).Delete End If Next Next '删除重复行 End Sub 这是我写的一个宏。适当修改就可以处理你的问题了。运行的时候会卡住。不是死机。耐心等待。 [ 本帖最后由 jaunthe 于 2013-12-5 18:35 编辑 ] |
0 |
cmy21136 发表于 2013-12-5 20:46 只看TA 27楼 |
---|
如果只做这一次的话可以在表格中插入一列,在该列中输入=COUNTIF($A$1:$“表格最后一列列标”$“表格最后一行行标”,A1) ,最后将新插入的这一列进行降序排列,(从复的部分就在上面了) 如果要长期从事此工作,最好弄一个专用的宏 Sub 查找与删除重复数据2() '查找与删除col列的重复数据' Application.ScreenUpdating = False '可根据实际情况修改下面三行的结尾值' Dim sheetsCaption As String: sheetsCaption = "Sheet1" Dim Col As String: Col = "C" Dim StartRow As Integer: StartRow = 4 '以下不需要修改' Dim EndRow As Integer: EndRow = Sheets(sheetsCaption).Range(Col & "65536").End(xlUp).Row Dim Count_1 As Integer: Count_1 = 0 Dim count_2 As Integer: count_2 = 0 Dim i As Integer: i = StartRow With Sheets(sheetsCaption) Do Count_1 = Count_1 + 1 For j = StartRow To i - 1 If WorksheetFunction.Trim(Format(.Range(Col & i), "<")) = WorksheetFunction.Trim(Format(.Range(Col & j), "<")) Then Count_1 = Count_1 - 1 .Range(Col & i).EntireRow.Delete .Range(Col & i).Select .Range(Col & i).Font.ColorIndex = 3 .Range(Col & j).Font.ColorIndex = 4 ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 + "[#]" MsgBox "第" & i & "与第" & j & "条数据重复" EndRow = Sheets(sheetsCaption).Range(Col & "65536").End(xlUp).Row i = i - 1 count_2 = count_2 + 1 Exit For End If Next i = i + 1 Loop While i < EndRow + 1 End With MsgBox "共有" & Count_1 & "条不重复的数据" MsgBox "删除" & count_2 & "条重复的数据" Application.ScreenUpdating = True End Sub 这编辑模式写着真累 可能有空格或'的错误,用的时候需要排查下,也可以把注释删了在用 |
0 |
wahaha_glg 发表于 2013-12-6 19:19 只看TA 29楼 |
---|
重复行删除的问题还要用VBA??牛刀用在蚂蚁身上了。 07及以上版本,直接在数据选项中使用删除重复项即可 03版本,可以用countif函数:假设A列为姓名,B列为身份证,数据起始行为第2行,则 C列公式写为 =countif(a:a,a2) 或 =countif(b:b,b2) 第一个公式表示用姓名来查找是否重复(所以若有重名就要注意排除了),第二个公式表示用身份证号来查找是否重复,这个应当说才是更好的选择,因为身份证号不会重复,不过我不相信你们几千个号码不会录错,嘿嘿。 结果若大于1,即代表重复行,筛选出来选择性删除即可。 |
0 |
|
---|
lyg1353906 发表于 2013-12-8 10:21 只看TA 30楼 |
---|
我觉得用多重排序能解决。 不过有一个简单的办法…找个安装了office2007的电脑,打开你现在的文件。里面有个条件格式的功能可以自动给重复值加标记。 |
0 |
|
---|