获取列中所有重复项的列表
我需要在列中获取所有重复项。 该列当前已sorting。 我相信这将需要一个macros(也许是一个函数),所以它可以将重复值添加到另一列。 我想在列A中粘贴一系列单元格,并让列B给我重复。 下面的例子。
A栏
SD1000023
SD1000024
SD1000024
SD1000025
SD1000026
SD1000026
SD1000027
然后我的专栏将有:
B栏
SD1000024
SD1000026
从here
我发现了这一点,只是不知道如何解决它,以满足我的需求。 我不明白list1
一部分。
=INDEX(List1, MATCH(0, COUNTIF(C1:$C$1, List1)+IF(COUNTIF(List1, List1)>1, 0, 1), 0))
您可以使用“数据”选项卡中的“删除重复”应用程序。 首先,复制列A,粘贴到列B.然后select数据 – >删除重复项,然后select列B(请不要延伸到列A)。 然后点击“确定”,这会给你一个唯一值列表。 那么,在那些,看看哪些有重复,你可以(在列C),做“= Countif(B1,A:A)”,看看有多less次在列表中出现的值。
这是一个让你走的macros。 请注意,我假设你有一个标题行,如果不是,你只需稍微调整一下:
Sub List_Duplicates() Dim lastRow As Integer, dataCol As Integer, duplicateCol As Integer, lastUniqueRow As Integer Dim dataRng As Range, dupRng As Range Dim ws As Worksheet Set ws = ActiveSheet With ws lastRow = .Cells(1, 1).End(xlDown).Row 'This assumes your Column A has no line breaks, if it does, comment this out and use below 'lastRow = .UsedRange.Rows.Count dataCol = 1 'if your list of data, including duplicates, is in COlumn A duplicateCol = 2 'where to put the duplicate number Set dataRng = .Range(.Cells(2, dataCol), .Cells(lastRow, dataCol)) Set dupRng = .Range(.Cells(2, duplicateCol), .Cells(lastRow, duplicateCol)) 'First, we will copy the Column A data to column B dupRng.Value = dataRng.Value 'Now, remove duplicates from this lastUniqueRow = .Cells(2, duplicateCol).End(xlDown).Row dupRng.RemoveDuplicates Columns:=1, Header:=xlNo 'Evaluate the countif formula, and then leave duplicates in col. B Dim i As Integer For i = 2 To lastUniqueRow 'This will loop through our duplicate cells, and remove any that are not duplicates If .Cells(i, duplicateCol).Row > lastUniqueRow Then Exit For Debug.Print .Cells(i, duplicateCol).Value & " occurrs " & Evaluate(WorksheetFunction.CountIf(dataRng, .Cells(i, duplicateCol))) & " times." If Evaluate(WorksheetFunction.CountIf(dataRng, .Cells(i, duplicateCol))) <= 1 Then .Cells(i, duplicateCol).Value = "" End If Next i dupRng.Select dupRng.SpecialCells(xlCellTypeBlanks).Delete End With End Sub
让我知道如果你有任何问题! 如果有人对上述有任何意见或build议,请让我知道,所以我也可以学习:P
这可能有助于:
假设数据从A1开始,在B1中input
=IF(A1 = A2, A1,"")
并在B2进入
=IF(AND(A2<>A1,A2 = A3),A2,"")
并将此公式的其余部分复制到B中。这将导致重复值在列B中出现一次。 然后,您可以复制它们并将其粘贴回原处,然后对结果进行sorting,以获得想要聚集到相邻单元格中的内容。
条件格式列A用于重复。 这个macros将在B列中标出所有的重复项。
Sub dup() Dim lastRow As Long lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row For i = 1 To lastRow If Cells(i, 1).DisplayFormat.Interior.Color <> 16777215 Then Cells(i, 2) = "Dup" End If Next End Sub
在它旁边的列中,可以使用公式=COUNTIF(A:A,A2)
,并对任何不等于1