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

如何在Excel中提取仅出现一次的非重复值?

提取仅在单个单元格中出现的非重复值

针对你需要从两个分号分隔的单元格中,提取仅在第一个单元格出现、未在第二个单元格出现的值的需求,提供两种实用方案:

方法1:Excel 动态数组公式(适用于365/2021版本)

在A4单元格直接输入以下公式,回车即可得到结果:

=TEXTJOIN("; ", TRUE, FILTER(TEXTSPLIT(A2, "; "), ISNA(XMATCH(TEXTSPLIT(A2, "; "), TEXTSPLIT(A3, "; ")))))

公式逻辑:

  • TEXTSPLIT 把两个单元格的内容按「; 」拆分成独立数值数组
  • XMATCH 检查A2的每个数值是否在A3中存在,不存在的返回#N/A
  • FILTER 筛选出仅在A2存在的数值
  • TEXTJOIN 把筛选结果重新用「; 」拼接成字符串

方法2:VBA自定义函数(兼容全版本Excel)

如果你的Excel不支持动态数组,用VBA写自定义函数更稳妥:

  1. 按 Alt + F11 打开VBA编辑器
  2. 右键左侧工程面板 → 插入 → 模块
  3. 粘贴以下代码:
Function GetUniqueOnly(rngSource As Range, rngCompare As Range) As String
    Dim arrSource As Variant, arrCompare As Variant
    Dim dict As Object
    Dim i As Integer
    Dim result As String
    
    Set dict = CreateObject("Scripting.Dictionary")
    
    ' 拆分源单元格内容存入字典
    arrSource = Split(rngSource.Value, "; ")
    For i = LBound(arrSource) To UBound(arrSource)
        dict(arrSource(i)) = 1
    Next i
    
    ' 移除对比单元格中存在的内容
    arrCompare = Split(rngCompare.Value, "; ")
    For i = LBound(arrCompare) To UBound(arrCompare)
        If dict.Exists(arrCompare(i)) Then
            dict.Remove arrCompare(i)
        End If
    Next i
    
    ' 拼接结果字符串
    result = IIf(dict.Count > 0, Join(dict.Keys, "; "), "")
    GetUniqueOnly = result
End Function
  1. 返回Excel,在A4单元格输入:
=GetUniqueOnly(A2, A3)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:01:12