You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel两列跨列去重:如何仅保留A列的唯一值4?

在Excel两列中跨列删除重复值并仅保留A列的数字4

Excel自带的「删除重复值」功能默认是按行或指定列判断行内重复,没法全局对比两列所有值,所以得用以下几种方法实现跨列去重:

方法1:辅助列+筛选删除

  • 新增辅助列(比如C列),在C1单元格输入公式:
    =COUNTIF($A:$B,A1)=1
    
    下拉填充到所有数据行。这个公式会统计A列单元格的值在A、B两列中出现的总次数,仅出现1次的返回TRUE,重复出现的返回FALSE。
  • 选中C列,点击「数据」→「筛选」,只勾选TRUE选项,删除未被筛选出来的行。
  • 最后删掉辅助列,剩下的就是两列中唯一出现的值,其中就包含你要保留的A列数字4(前提是4仅在A列出现,未在B列重复)。

方法2:高级筛选法

  • 选中A、B两列的全部数据区域,点击「数据」选项卡→「高级」筛选。
  • 在弹窗中选择「将筛选结果复制到其他位置」,设置「列表区域」为$A:$B,「条件区域」留空,勾选「选择不重复的记录」,再指定结果复制的目标位置(比如$D$1)。
  • 筛选完成后,找到A列数字4对应的行,保留该行,删除其他行即可。

方法3:VBA批量处理(适合大量数据)

按Alt+F11打开VBA编辑器,右键点击当前工作簿→「插入」→「模块」,粘贴以下代码:

Sub RemoveCrossColumnDuplicates()
    Dim rng As Range, cell As Range
    Dim uniqueVals As New Collection
    Dim delRows As New Collection
    Dim i As Integer
    
    ' 定义数据范围(A到B列,直到A列最后一行有数据)
    Set rng = Range("A1:B" & Cells(Rows.Count, "A").End(xlUp).Row)
    
    ' 收集两列中所有唯一值
    On Error Resume Next
    For Each cell In rng
        If Not IsEmpty(cell) Then
            uniqueVals.Add cell.Value, Key:=CStr(cell.Value)
        End If
    Next cell
    On Error GoTo 0
    
    ' 标记A列中值重复的行
    For Each cell In Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)
        On Error Resume Next
        uniqueVals.Item(CStr(cell.Value))
        If Err.Number <> 0 Then
            delRows.Add cell.Row
        End If
        On Error GoTo 0
    Next cell
    
    ' 从下往上删除标记的行(避免行号错乱)
    For i = delRows.Count To 1 Step -1
        Rows(delRows(i)).Delete
    Next i
End Sub
  • 点击运行按钮(绿色三角),代码会自动删除A列中值在B列重复出现的行,仅保留A列中唯一存在的值。

内容的提问来源于stack exchange,提问作者Tatchy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 08:05:07