Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel唯一值查询_Excel_Vba - Fatal编程技术网

Excel唯一值查询

Excel唯一值查询,excel,vba,Excel,Vba,我对excel不是很有经验——我更喜欢c语言——我希望一些excel大师能在这里帮助我 基本上,我有一个电子表格,只有一列文本数据a列。我需要查询这个数据列表 我基本上需要将更多的文本数据复制到另一列,比如b列,然后过滤掉b列中已经存在于a列某处的记录,只留下b列中唯一的记录,而不是a列 我尝试过使用高级过滤器,但似乎无法使其工作。任何关于我如何做到这一点的提示或建议都会很好 谢谢这应该可以满足您的需要。它在A列的B列中查找每个值,如果找到匹配项,则删除该单元格。将数据粘贴到B列后运行代码。请注

我对excel不是很有经验——我更喜欢c语言——我希望一些excel大师能在这里帮助我

基本上,我有一个电子表格,只有一列文本数据a列。我需要查询这个数据列表

我基本上需要将更多的文本数据复制到另一列,比如b列,然后过滤掉b列中已经存在于a列某处的记录,只留下b列中唯一的记录,而不是a列

我尝试过使用高级过滤器,但似乎无法使其工作。任何关于我如何做到这一点的提示或建议都会很好


谢谢

这应该可以满足您的需要。它在A列的B列中查找每个值,如果找到匹配项,则删除该单元格。将数据粘贴到B列后运行代码。请注意,它不会删除B列中的重复项,而是删除A列中B列中的所有值。要删除B列中的重复项,请选择该列,然后从“数据”选项卡中选择“删除重复项”

您需要向工作簿中添加模块,并在模块中插入以下代码:

代码:

运行子RemoveMatchesFrom列。您可以单步进入它查看它在做什么,或者使用F5运行它。

非VBA方法

把这个公式放在单元格C1中

=IF(VLOOKUP(B1,A:A,1,0)=B1,"DELETE ME","")
拖到最后。然后过滤C列上的数据以删除我,然后删除重复的数据

VBA方法


您可以动态地过滤数据,比如说使用如下公式将数据过滤到C列

=IF(ISNA(VLOOKUP(B1,A:A,1,FALSE)),B1,"")
然后过滤C列中的非空单元格

否则,此简单宏将清除重复项

Sub FilterDuplicates()
  Dim r As Range
  For Each r In ActiveSheet.Columns("B").Cells
    If r.Value <> "" Then
      On Error Resume Next
      WorksheetFunction.VLookup r, ActiveSheet.Columns("A"), 1, False
      If Err.Number = 0 Then r.ClearContents
      On Error GoTo 0
    End If
  Next r
End Sub
=IF(ISNA(VLOOKUP(B1,A:A,1,FALSE)),B1,"")
Sub FilterDuplicates()
  Dim r As Range
  For Each r In ActiveSheet.Columns("B").Cells
    If r.Value <> "" Then
      On Error Resume Next
      WorksheetFunction.VLookup r, ActiveSheet.Columns("A"), 1, False
      If Err.Number = 0 Then r.ClearContents
      On Error GoTo 0
    End If
  Next r
End Sub