结合之前学习的 FILTER、GROUPBY、INDEX 等核心函数,以及「筛选非空部门+提取不重复名称」的实战需求,从核心定位→完整语法→底层原理→基础实战→进阶联动→避坑指南 全流程拆解,所有示例都适配常用的 原始数据源!A2:C17(A=姓名、B=部门、C=工资),完全贴合Excel学习节奏,可直接复制套用。
一、核心定位:UNIQUE 到底是干嘛的?
UNIQUE 是 Excel 365/2021 及以上版本专属的动态数组去重函数 ,核心作用可以用一句话概括:
从你指定的单元格区域中,自动提取不重复的唯一值 ,无需复杂公式、无需下拉填充,结果自动向下/向右溢出显示。
它是你实现「去重」需求的最优解,完美解决了传统去重方法的所有痛点:
-
对比高级筛选:不用手动操作,数据源更新后结果自动刷新,完全动态
-
对比
INDEX+MATCH+COUNTIF复杂数组公式:1行代码搞定,逻辑极简,零学习成本 -
核心优势:和你之前学的
FILTER、GROUPBY等函数无缝联动,可实现「筛选→去重→分组统计」全流程连贯操作
二、完整语法(中文版官方)+ 参数详解
标准公式
参数详解(1个必填,2个可选,超简单)
-
参数名称|中文名称|必填/可选|核心规则|新手注意事项
-
要去重的数组|数据源区域|必填|你要提取不重复值的单元格区域,可以是单列、单行、多列多行的连续区域|必须是连续的单元格区域,不支持分散的不连续区域
-
按列去重|去重维度|可选,默认
FALSE|取值:TRUE/FALSE;-FALSE(默认):按行 去重,整行内容完全一致才会被去重;-TRUE:按列 去重,整列内容完全一致才会被去重|90%的场景用默认的FALSE即可,仅提取不重复表头时用TRUE -
仅提取唯一出现一次的值|去重规则|可选,默认
FALSE|取值:TRUE/FALSE;-FALSE(默认):提取所有不重复值,不管出现次数;-TRUE:仅提取在数据源中只出现过1次 的唯一值,重复出现的会被全部过滤|进阶场景使用,比如筛选只出现过1次的部门、姓名
补充:无结果提示参数(你之前用到的)
Excel 365 中,UNIQUE 支持额外加一个「无结果提示」参数,当数据源全为空/无符合条件的值时,显示你指定的文本,不会出现 #CALC! 报错,和你之前学的 FILTER 函数完全一致:
三、核心工作原理:新手必懂的3个底层规则
这是你用好 UNIQUE 的核心,也是90%的新手都会踩坑的地方,必须先吃透:
1. 动态数组自动溢出特性
UNIQUE 是Excel 365的动态数组函数,核心特性是:
你只需要在1个单元格 中输入公式,按回车后,结果会自动向下/向右铺满整个空白区域,无需手动下拉填充,和你之前学的
FILTER函数完全一致。
举个例子:你在E2单元格输入 =UNIQUE(B2:B17),按回车后,Excel会自动把所有不重复的部门名称,从E2开始向下依次填充,不用你手动拉公式。
2. 去重匹配规则
UNIQUE 的去重逻辑是完全匹配 ,核心规则:
-
文本内容:Excel默认不区分大小写 ,比如"销售部"和"销售部"(大小写/全角半角)会被判定为相同内容,自动去重
-
数字/日期:必须完全相等才会被去重,比如
5000和5000.0会被判定为相同,2023-01-01和2023/1/1也会被判定为相同 -
多列去重:按行去重时,整行的所有列内容必须完全一致 ,才会被去重;只要有一列内容不同,就会被保留为独立的唯一值
-
空值处理:默认会把空单元格/空行当成一个独立的唯一值,保留在结果中;如果要排除空值,必须搭配
FILTER函数(就是你之前的需求)
3. 结果排序规则
UNIQUE 提取的不重复值,默认按照数据源中第一次出现的顺序排列 ,不会自动排序;如果需要按拼音/数值排序,搭配 SORT 函数即可,后面进阶场景会讲。
四、基础实战场景(适配你的数据源,直接复制可用)
所有示例都基于你的 原始数据源!A2:C17,A=姓名、B=部门、C=工资,可直接复制粘贴使用,完全贴合你的业务需求。
场景1:基础单列去重(最常用,提取不重复的部门名称)
-
效果:自动溢出显示B列所有不重复的部门名称,按照第一次出现的顺序排列
-
注意:这个公式会保留空行,如果B列有空单元格,空值也会出现在结果中
场景2:排除空值的单列去重 (你的核心需求,完美适配)
-
公式拆解:和你之前的需求完全一致,先通过
FILTER排除B列的空行,再通过UNIQUE提取不重复的部门名称 -
优化:加了
"无有效部门数据"无结果提示,B列全为空时不会出现#CALC!报错 -
效果:自动溢出显示所有非空、不重复的部门名称,完全符合你的需求
场景3:多列去重(提取不重复的部门+工资组合)
-
核心逻辑:按行去重,只有当「部门+工资」两列的内容完全一致时,才会被去重
-
效果:自动溢出显示所有不重复的「部门+工资」组合,两列内容同时去重
场景4:按列去重(提取不重复的表头)
-
核心逻辑:第二个参数填
TRUE,按列去重,整列内容完全一致才会被去重 -
适用场景:提取表头的唯一值,或者横向的单行数据去重
场景5:仅提取出现一次的唯一值(筛选只出现过1次的部门)
-
核心逻辑:第三个参数填
TRUE,仅提取在B列中只出现过1次 的部门名称,重复出现的部门会被全部过滤 -
适用场景:筛选唯一值、排除重复出现的内容
五、进阶联动场景
这是学习 UNIQUE 的核心价值,和之前学的 FILTER、GROUPBY、SORT 等函数无缝联动,实现「筛选→去重→排序→统计」全流程连贯操作。
1. UNIQUE + FILTER 联动:先筛选后去重(最常用)
需求:先筛选2023年入职的员工,再提取不重复的部门名称
-
公式拆解:先通过
FILTER筛选出2023年入职的员工对应的部门,再通过UNIQUE提取不重复的部门名称 -
完全衔接你之前学的日期筛选、FILTER函数的内容,逻辑连贯
2. UNIQUE + GROUPBY 联动:先去重后分组统计
需求:先提取不重复的部门名称,再按部门汇总工资总额
-
公式拆解:先提取不重复的部门名称,再通过
GROUPBY按部门汇总工资总额,完全衔接你之前学的GROUPBY函数的内容 -
效果:自动生成「不重复部门+对应工资总额」的汇总表,1行公式搞定
3. UNIQUE + SORT 联动:去重后自动排序
需求:提取不重复的部门名称,并按拼音升序排序
-
核心逻辑:先去重,再通过
SORT函数按拼音升序排序,结果自动溢出 -
优化:如果要按降序排序,写 =SORT(UNIQUE(…), , -1) 即可
4. UNIQUE + XLOOKUP 联动:去重后精准查询
需求:提取不重复的部门名称,再自动匹配每个部门的最高工资
- 核心逻辑:先提取不重复的部门名称,再通过
XLOOKUP反向查找每个部门的最高工资,完全衔接你之前学的XLOOKUP函数的内容
六、常见坑&避坑指南(90%的新手都会踩)
坑1:版本不兼容,公式直接报错
这是最常见的坑,UNIQUE 是Excel 365/2021及以上版本的专属函数,Excel 2019及以前的旧版本没有这个函数,粘贴公式后会直接报错 #NAME?。
解决办法
-
Excel 365版本:直接使用,优先首选
-
旧版本Excel:用你之前学的
INDEX+MATCH+COUNTIF数组公式实现去重,或者用高级筛选功能
坑2:去重结果中出现空值,没有被排除
很多新手写公式时,忘记了空行的判断,导致空单元格也被当成唯一值,出现在结果中。
解决办法
-
必须搭配
FILTER函数排除空值,公式固定写法:=UNIQUE(FILTER(区域, 区域<>""), “无数据”) -
这个写法会自动排除区域中的所有空行/空单元格,只保留非空的不重复值,完全解决你的空值问题
坑3:多列去重结果不符合预期,没有去重
很多新手用多列去重时,发现结果还是有重复项,核心原因是没有理解「整行完全一致才会被去重」的规则。
解决办法
-
多列去重时,必须保证整行的所有列内容完全一致 ,才会被去重;只要有一列内容不同,就会被保留
-
示例:部门列都是"销售部",但工资列一个是5000,一个是6000,整行内容不一致,不会被去重,会被当成两个独立的唯一值
坑4:溢出报错 #SPILL!
和你之前学的 FILTER 函数一样,UNIQUE 也会出现溢出报错,核心原因是公式要溢出的区域被其他内容挡住了。
解决办法
- 清空公式下方/右侧的所有单元格,给
UNIQUE留出足够的空白溢出区域,重新按回车即可
坑5:无结果时出现 #CALC! 报错
当数据源全为空、或者没有符合条件的内容时,UNIQUE 会默认返回 #CALC! 报错,影响表格的整洁性。
解决办法
-
加最后一个「无结果提示」参数,公式固定写法:=UNIQUE(区域, , , “无有效数据”)
-
当没有符合条件的内容时,会显示你指定的文本,不会出现报错,和你之前学的
FILTER函数完全一致
坑6:需要区分大小写去重,默认不生效
Excel默认的 UNIQUE 函数不区分大小写,比如"销售部"和"销售部"(大小写)会被判定为相同内容,自动去重。
解决办法
- 搭配
EXACT函数实现区分大小写的去重,公式:=UNIQUE(FILTER(原始数据源!B2:B17, EXACT(原始数据源!B2:B17, 原始数据源!B2:B17)))
七、UNIQUE vs 其他去重方法对比表
结合之前学的所有去重方法,给出清晰的决策标准,不用纠结什么时候用什么方法:
-
去重方法|核心优势|核心缺点|适用场景
-
UNIQUE函数|公式极简、1行搞定、动态更新、自动溢出、和其他函数无缝联动|仅Excel 365/2021+版本支持|如正在用Excel 365版本,优先首选,所有动态去重场景
-
高级筛选|不用写公式、可视化操作、零门槛、全Excel版本兼容|一次性操作,数据源更新后需要重新执行,不会自动刷新|一次性去重需求,不需要动态更新的场景,零基础首选
-
INDEX+MATCH+COUNTIF|全Excel版本兼容、灵活可控、可实现复杂去重逻辑|公式复杂、需要下拉填充、旧版需要按数组公式回车|Excel 2019及以前旧版本,需要兼容低版本的场景
八、最终总结
UNIQUE 函数是Excel 365中实现「去重」需求的最优解,核心价值可以用3句话概括:
-
1. 基础用法 :1行公式搞定单列/多列去重,自动溢出,无需下拉填充
-
2. 核心价值 :和之前学的
FILTER、GROUPBY等函数无缝联动,实现「筛选→去重→排序→统计」全流程连贯操作 -
3. 避坑核心 :必须搭配
FILTER排除空值,加无结果提示避免报错,注意版本兼容性
「先筛选出非空的部门,再提取不重复的部门名称」,最终的完美公式就是:
这个公式排除了空值,加了无结果提示,自动溢出,可直接复制到Excel中使用。