“删除重复项”功能不会删除所有重复项

“删除重复项”功能不会删除所有重复项

当对以下列表使用数据工具>删除重复项命令时,某些重复项不会被删除:

Key
46509
46509
51442
51442
73367
73367
80048
80048
88396
88396
102576
102576
108095
108095
118613
118613
127224
127224
137549
137549
140164
140164
151679
151679
152975
152975
154986
154986
167715
167715
169166
169166
170427
170427
176303
176303
187038
187038
199856
199856
206589
206589
225371
225371
229767
229767
230680
230680
245333
245333
253697
253697
256002
256002
262094
262094
273060
273060
275584
275584
285569
285569
301930
301930
304993
304993
305965
305965
307299
307299
311438
311438
314461
314461
340545
340545
344517
344517
355035
355035
358387
358387
359982
359982
363904
363904
368642
368642
378666
378666
378744
378744
382396
382396
393542
393542
394320
394320
395258
395258
402047
402047
421796
421796
427972
427972
442651
442651
442654
442654
445786
445786
447124
447124
456682
456682
467303
467303
470437
470437
476340
476340
480976
480976
481450
481450
498967
498967
516068
516068
517592
517592
522621
522621
524678
524678
529405
529405
532909
532909
535096
535096
540835
540835
553197
553197
566893
566893
567730
567730
570751
570751
572259
572259
581701
581701
589753
589753
597923
597923
602282
602282
612011
612011
643774
643774
649471
649471
654159
654159
661681
661681
680578
680578
709714
709714
728036
728036
728680
728680
740252
740252
750843
750843
763430
763430
777724
777724
777870
777870
779703
779703
787034
787034
789776
789776
793859
793859
798479
798479
812410
812410
816599
816599
820169
820169
821236
821236
833511
833511
833701
833701
845925
845925
854408
854408
882853
882853
891710
891710
906251
906251
929802
929802
982039
982039
984503
984503
984539
984539
987889
987889
997188
997188
1002869
1002869
1018493
1018493
1020735
1020735
1028780
1028780
1032460
1032460
1047306
1047306
1052136
1052136
1054482
1054482
1062633
1062633
1066509
1066509
1069500
1069500
1075339
1075339
1082282
1082282
1100206
1100206
1105407
1105407
1111409
1111409
1112175
1112175
1112407
1112407
1113400
1113400
1117243
1117243
1121732
1121732
1152461
1152461
1153727
1153727
1157252
1157252
1163384
1163384
1195324
1195324
1197373
1197373
1201828
1201828
1202786
1202786
1216328
1216328
1223541
1223541
1225848
1225848
1228595
1228595
1239281
1239281
1264378
1264378
1267348
1267348
1291510
1291510
1309891
1309891
1321106
1321106
1322886
1322886
1327690
1327690
1344145
1344145
1346250
1346250
1352350
1352350
1357920
1357920
1363386
1363386
1365046
1365046
1370383
1370383
1376666
1376666
1383834
1383834
1414472
1414472
1418967
1418967
1419811
1419811
1421587
1421587
1432639
1432639
1442854
1442854
1455236
1455236
1461896
1461896
1466376
1466376
1477670
1477670
1480154
1480154
1481801
1481801
1498209
1498209
1504776
1504776
1511904
1511904
1017854_447
1017854_447
1085496_19
1085496_19
1280601_77
1280601_77
1350662_135
1350662_135
141944_382
141944_382
1525893_483
1525893_483
455968_177
455968_177
469495_157
469495_157
641583_74
641583_74
704267_63
704267_63
709992_199
709992_199
819399_224
819399_224
832188_358
832188_358
857189_467
857189_467
898328_334
898328_334
91033_245
91033_245
960992_341
960992_341
999706_361
999706_361
BLA1048669
BLA1048669
BLA1052457
BLA1052457
BLA1055176
BLA1055176
BLA1060585
BLA1060585
BLA1067125
BLA1067125
BLA107601
BLA107601
BLA1087509
BLA1087509
BLA1097390
BLA1097390
BLA1122471
BLA1122471
BLA1126436
BLA1126436
BLA112694
BLA112694
BLA1148652
BLA1148652
BLA1149504
BLA1149504
BLA1155256
BLA1155256
BLA1222348
BLA1222348
BLA1225575
BLA1225575
BLA1227779
BLA1227779
BLA124071
BLA124071
BLA1247411
BLA1247411
BLA1258830
BLA1258830
BLA1281625
BLA1281625
BLA128165
BLA128165
BLA1305848
BLA1305848
BLA1307751
BLA1307751
BLA130926
BLA130926
BLA1334270
BLA1334270
BLA1335674
BLA1335674
BLA1340102
BLA1340102
BLA1345080
BLA1345080
BLA1353398
BLA1353398
BLA1369834
BLA1369834
BLA1424977
BLA1424977
BLA142669
BLA142669
BLA1429760
BLA1429760
BLA1443592
BLA1443592
BLA1447085
BLA1447085
BLA1453639
BLA1453639
BLA1456355
BLA1456355
BLA1458745
BLA1458745
BLA148663
BLA148663
BLA1494220
BLA1494220
BLA1522880
BLA1522880
BLA152562
BLA152562
BLA1548628
BLA1548628
BLA182644
BLA182644
BLA186707
BLA186707
BLA188073
BLA188073
BLA199127
BLA199127
BLA207148
BLA207148
BLA209939
BLA209939
BLA232119
BLA232119
BLA240725
BLA240725
BLA267275
BLA267275
BLA303829
BLA303829
BLA346044
BLA346044
BLA348268
BLA348268
BLA367863
BLA367863
BLA386897
BLA386897
BLA390799
BLA390799
BLA415724
BLA415724
BLA425291
BLA425291
BLA427093
BLA427093
BLA462355
BLA462355
BLA46821
BLA46821
BLA477637
BLA477637
BLA501111
BLA501111
BLA522126
BLA522126
BLA530906
BLA530906
BLA576525
BLA576525
BLA639361
BLA639361
BLA644530
BLA644530
BLA65754
BLA65754
BLA670003
BLA670003
BLA687525
BLA687525
BLA709367
BLA709367
BLA714281
BLA714281
BLA719328
BLA719328
BLA736457
BLA736457
BLA759669
BLA759669
BLA76056
BLA76056
BLA767666
BLA767666
BLA780853
BLA780853
BLA793029
BLA793029
BLA796639
BLA796639
BLA803743
BLA803743
BLA815298
BLA815298
BLA828243
BLA828243
BLA864030
BLA864030
BLA864110
BLA864110
BLA882892
BLA882892
BLA885665
BLA885665
BLA897478
BLA897478
BLA903861
BLA903861
BLA91627
BLA91627
BLA925523
BLA925523
BLA928243
BLA928243
BLA932395
BLA932395
BLA935341
BLA935341
BLA940705
BLA940705
BLA966386
BLA966386

显示一条消息,表明已删除 293 个重复值,剩余 307 个唯一值。7 个重复值未被删除:

1280601_77
1525893_483
455968_177
469495_157
641583_74
704267_63
709992_199

初始列表由以下按 Excel 排序的值组成:

  1. 40,000 至 1,500,000 之间的数字
  2. 同一范围内的数字,并添加_1-999 后缀
  3. 同一范围内的数字以BLA

每个值恰好出现两次。不涉及公式。我已经检查了多余的空格。

立即重新应用“删除重复项”命令不会删除剩余的重复值。
在反向排序后重新应用“删除重复项”命令似乎可以删除剩余的重复项。
在使用第一个“删除重复项”之前进行反向排序会改变结果(删除了 213 个重复值,保留了 387 个唯一值),但仅限于无后缀无前缀的组中。

您能像我一样在 Excel 2007 中重现此错误吗?是什么触发了它?可能是复合(数字和文本)数据集吗?

我并不是在寻找替代方案。我想知道何时不使用该功能并恢复到已知的(Excel 2003 时代)替代方案。

答案1

数据透视表允许混合单元格内容类型。但是,由于它是一种摘要工具,因此它还会按组或重复项收集条目。按原样从您的数据创建数据透视表,它会生成一个包含 300 个条目的列表:

在此处输入图片描述

答案2

我已经在您的列表的 12 个副本上尝试了 Right(a1;x) 函数(记录长度从右侧的 1 到 12 个字符)。我的想法是看看它是否与记录的长度有关。
将公式向下扩展后,我在使用删除重复命令之前仅复制/粘贴了值。每次都运行良好!(删除了 300 个重复值。剩余 300 个值)因此,尽管我仍然不知道发生了什么,但解决您的问题的一个方法是在您的列表中使用 Right(a1,12),然后仅从结果列表中复制/粘贴值。仅从第一个列表中复制/粘贴值是行不通的。您必须使用公式将解决方案保留在 Excel 中(或者您可以按照评论中提到的方式在文本文件中复制/粘贴)。

答案3

我在每个版本的 Excel 中都遇到过这个问题,但我还没有看到关于为什么会发生这种情况的解释。无论如何,有一个纠正这种异常的过程。以下示例来自这样一种情况:我将一系列零件编号(超过 30,000 条记录)从一份报告复制到单独的工作表中,然后删除重复项(在将数据复制到新选项卡后拾取):

1) 始终先对数据进行排序(从小到大)。如果您有多个字段,请确保按要从中删除重复项的字段进行排序:

'Determine Last Row of Data To Set Range
Cells(1,1).Select
Selection.End(xlDown).Select
lastRow = ActiveCell.Row

'Define And Select Ranges For Duplicate Removal
Set mNumRange = Range(Cells(1, 1), Cells(lastRow, 1))

'Sort Range For Futile Attempt At Duplicate Removal
mNumRange.Select
ActiveWorkbook.Worksheets("TAB_3").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("TAB_3").Sort.SortFields.Add Key:=mNumRange, _
               SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("TAB_3").Sort
   .SetRange mNumRange
   .Header = xlYes
   .MatchCase = False
   .Orientation = xlTopToBottom
   .Apply
End With

2) 在选定字段上运行“数据 -> 删除重复项”。这将删除绝大多数重复项:

'Partially Remove Duplicates <sigh>
mNumRange.Select
With Selection
   .RemoveDuplicates Columns:=1, Header:=xlYes
End With
Cells(1, 1).Select

3)重新定义新的范围(剩余数据仍按从小到大的顺序排列)

'Redefine Range After Partial Duplicate Removal
Selection.End(xlDown).Select
lastRow = ActiveCell.Row
Set mNumRange = Range(Cells(2, 1), Cells(lastRow, 1)) 

4) 现在,逐行运行程序以删除剩余的重复项。由于数据按从小到大的顺序排序,因此任何重复项都将位于相邻的行中:

'Execute Row-By-Row Duplicate Removal Procedure <sigh>
rowCounter = 2
deleteCounter = 0
Cells(1, 1).Select
Application.ScreenUpdating = False
Do
Cells(rowCounter, 1).Select
   If ActiveCell.Value = "" Then
      Cells(1, 1).Select
      Exit Do
   End If
   If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value Then
      Selection.EntireRow.Delete
      deleteCounter = deleteCounter + 1
      rowCounter = rowCounter - 1
   End If
rowCounter = rowCounter + 1
Loop
Application.ScreenUpdating = True
MsgBox deleteCounter & " ADDITIONAL DUPLICATES DELETED", vbOKOnly

MsgBox 将让您知道删除了多少个额外的重复项。

答案4

我还发现这在 Excel 2010 中不起作用。但是我尝试了这个简单的实验。我在一张表中创建了十条记录(行)。然后我使用复制和粘贴在同一张表中将这十条记录复制到同一张表中。然后我通过更改两列中的两个值手动更改了两条记录。然后我从功能区运行“删除重复项”,它完美地工作了。进一步的实验证实了我的假设,即从另一张表或电子表格中复制和粘贴导致了问题。基本上,数据可能显示在屏幕上并且“看起来”相同,但实际上在 Excel 中它必须被视为不同,正如 Jo Bedard 所建议的那样。我尝试了许多实验,包括使用格式化单元格命令来确保单元格格式“设置”彼此匹配,但都无济于事。DGB

相关内容