忽略重复项并在Excel中创建唯一值的新列表


Answers

这里有一个很好的指导如何做到这一点

基本上类似于:

=INDEX(Sheet1!$A$1:$A$20, MATCH(0, COUNTIF($B$1:B1,Sheet!$A$1:$A$20), 0))
Question

我有一列经常显示为重复的值。 我需要创建一个基于第一列的唯一值的新列,如下所示:

Column A   Column B  
a          a
a          b
b          c
c
c

该列B实际上需要出现在同一工作簿内的不同工作表上,因此我认为它需要使用sheet2!A1样式格式。

我对数据/过滤器菜单选项没有任何好运,因为这似乎只适用于命令。 每当在列A中输入新值时,我都需要列B自动更新。




因此,对于此任务首先按从A到Z或Z到A的顺序对数据进行排序,然后您可以使用以下所述的一个简单公式:

=IF(A2=A3, "Duplicate", "Not Duplicate")

上述公式指出,如果A2列数据(A是列,2是行号)与A3类似(A是列,3是行号),那么它将打印重复,否则将打印不重复。

让我们考虑一个例子,列A包含电子邮件地址,其中一些是重复的,所以在第2列中,我使用了上述公式,在结果中显示了2个重复的单元格,其中一个是第2行和第6行。

你得到的重复数据只是把过滤器放在你的工作表上,并只显示重复数据并删除所有不必要的数据。




在包含列表的工作表模块中:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rngDest As Range

    If Not Intersect(Target, Me.Columns(1)) Is Nothing Then

        Set rngDest = ThisWorkbook.Sheets("Sheet2").Range("A1")

        Me.Range(Me.Range("A2"), Me.Cells(Rows.Count, 1).End(xlUp)).AdvancedFilter _
            Action:=xlFilterCopy, CopyToRange:=rngDest, Unique:=True

    End If

End Sub



找到这里提到的上述公式与错误控制

=IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($D$1:D1, $B$2:$B$9), 0)),"") 

其中:(B2:B9是要提取唯一值的列数据,D1是公式所在的上述单元格)




从列中删除重复项

  1. 将列A - > Z中的值排序
  2. 选择B列
  3. 虽然列B仍处于选中状态,但在公式输入框中输入

    =IF(TRIM(A1)=TRIM(A2),"",TRIM(A1))
    
  4. 虽然列B仍处于选中状态,但选择编辑 - >填充 - >向下(在较新的版本中,只需选择单元格B1,然后向下拉出外框以在列中向下展开)

注意 :如果B列位于另一张纸上,则可以执行Sheet1!A1和Sheet1!A2。