如何提取Excel中某列有但另一列没有的唯一值?
提取某列独有的唯一值解决方案
以下针对你的需求(从ListB中提取所有未在ListA出现过的唯一值),提供几种实用方法:
方法1:Excel 365/2021 动态数组公式(最简单)
假设ListA数据在A2:A7,ListB数据在B2:B7,在空白单元格(比如D2)输入以下公式,自动生成结果:
=UNIQUE(FILTER(B2:B7,ISNA(XMATCH(B2:B7,A2:A7))))
- 逻辑:
XMATCH检查ListB每个值在ListA中的位置,找不到返回#N/A;ISNA将#N/A转为逻辑值TRUE;FILTER筛选出ListB中符合TRUE的项;UNIQUE自动去重(即使ListB有重复值也能处理)。
方法2:旧版Excel(无动态数组)数组公式
同样假设ListA在A2:A7,ListB在B2:B7,在D2输入以下公式,按Ctrl+Shift+Enter完成数组输入,然后下拉公式直到出现空值:
=IFERROR(INDEX($B$2:$B$7,SMALL(IF(COUNTIF($A$2:$A$7,$B$2:$B$7)=0,ROW($B$2:$B$7)-ROW($B$2)+1),ROWS($D$2:D2))),"")
- 逻辑:
COUNTIF统计ListB值在ListA中的出现次数,次数为0即目标值;IF标记这些值的位置;SMALL按顺序提取位置序号;INDEX取出对应值;IFERROR避免超出范围时显示错误;ROWS($D$2:D2)实现下拉时依次取第1、2、3个符合条件的值。
方法3:Power Query(适合大量数据)
如果数据量很大,用Power Query更高效且易维护:
- 选中ListB的数据区域(含表头),点击「数据」选项卡 → 「从表格/区域」,确认加载到Power Query编辑器。
- 在编辑器中,点击「开始」→ 「删除行」→ 「删除匹配项」。
- 在弹出的对话框中,选择ListA的数据源作为匹配列表,点击确定。
- 此时编辑器中剩下的就是ListB独有的值,点击「关闭并上载」,将结果导出到新工作表,后续数据更新可直接刷新。
内容的提问来源于stack exchange,提问作者user3112721
相关产品推荐
相关产品推荐

