EXCEL高级函数应用-UNIQUE函数

office

**Excel UNIQUE 函数:一键提取唯一值的 “去重神器”,数据清洗效率翻倍!

在 Excel 数据处理中,“提取唯一值、去除重复数据” 是数据清洗的高频需求 —— 比如从重复的员工名单中筛选出不重复姓名、从多列订单数据中提取唯一的 “产品 + 客户” 组合、从每日销售记录中整理出不重复的产品列表。过去要么手动筛选删除重复项(易漏删),要么用复杂的 INDEX+MATCH+COUNTIF 嵌套公式(难维护),效率极低。而 Excel 365 推出的UNIQUE 函数,能像 “数据筛子” 一样,一键提取指定区域的唯一值,自动忽略重复项,还能支持多列组合去重,堪称 “数据清洗的效率王者”。今天就带大家从基础到进阶,全面掌握这个实用函数,告别手动去重的繁琐!

一、吃透基础:UNIQUE 函数的语法与参数

UNIQUE 函数的核心是 “从数据区域中提取不重复的值或值组合”,语法极简,仅 1 个必选参数和 1 个可选参数,参数的选择直接决定去重维度(单列 / 多列),需清晰区分。

1. 基本语法

UNIQUE(array, \[by\_col])

  • 函数 1 个必选参数(array),1 个可选参数(by_col),无默认值,需指定要去重的区域;

  • 返回结果为 “二维数组”:提取的唯一值会按原数据顺序排列,行数 = 唯一值数量,列数 = 去重区域的列数(单列去重返回 1 列,多列去重返回多列)。

2. 参数详细说明

结合 “员工数据去重” 场景,参数含义拆解如下,重点标注 “参数作用” 和 “去重规则差异”,避免混淆:

参数名称 作用解释 通俗举例(员工表场景) 去重规则与结果
array 要去重的 “数据区域”(可以是单列、多列连续区域、跨工作表区域,支持文本、数字、日期等类型) 1. 单列区域(A2:A100,员工姓名);2. 多列区域(A2:B100,姓名 + 部门);3. 跨表区域(Sheet2!A2:A100) 1. 单列去重:提取姓名列中不重复的姓名(如 “张三” 重复 3 次,仅保留 1 次);2. 多列去重:提取 “姓名 + 部门” 组合不重复的记录(如 “张三 + 销售部” 重复 2 次,仅保留 1 次);3. 跨表去重:提取 Sheet2 中不重复的姓名,无需切换工作表
[by_col] 去重维度(TRUE/FALSE):FALSE = 按行去重(默认,适用于多列组合去重),TRUE = 按列去重(适用于单列多行数据按列去重,极少用) 1. 多列组合去重(A2:B100),选 by_col=FALSE;2. 单列多行按列去重(A2:D2),选 by_col=TRUE 1. by_col=FALSE(默认):按 “行” 为单位去重,即多列数据中,只有所有列的值完全一致才视为重复(如 A2 = 张三、B2 = 销售部,A3 = 张三、B3 = 技术部,视为不同组合,均保留);2. by_col=TRUE:按 “列” 为单位去重,即单列多行数据中,只有所有行的值完全一致才视为重复(极少用,如 A2:D2 为 “张三,张三,张三,张三”,按列去重返回 1 列 “张三”)

关键提醒:

  1. 多列去重时,array必须是 “连续多列区域”(如 A2:B100),不支持不连续多列(如 A2:A100,C2:C100),否则会返回 #VALUE! 错误;

  2. 若array是 “空区域”(如 A2:A100 所有单元格空白),UNIQUE 返回空数组;若区域包含错误值(如 #N/A),错误值会被视为唯一值保留(需先用 IFERROR 处理错误值)。

二、核心逻辑:UNIQUE 函数的 2 个去重规则

使用 UNIQUE 前,需先掌握它的两个核心去重规则,这是后续复杂应用的基础,避免出现去重结果不符合预期的问题:

规则 1:单列去重 —— 保留唯一值,忽略重复项

  • 适用场景:从单一列中提取不重复的值(如姓名、产品编号、订单号);

  • 去重逻辑:遍历列中所有值,若某值已出现过,后续重复值均忽略,仅保留第一次出现的记录;

  • 示例:A2:A100 中 “张三” 出现 3 次、“李四” 出现 2 次,UNIQUE 返回 {张三,李四,王五,…},每个姓名仅 1 次。

规则 2:多列组合去重 —— 保留唯一值组合,忽略重复组合

  • 适用场景:从多列中提取 “值组合” 不重复的记录(如 “姓名 + 部门”“产品 + 客户 + 日期”);

  • 去重逻辑:遍历每一行的多列值,仅当所有列的值完全一致时,才视为重复,否则均视为唯一组合保留;

  • 示例:A2:B100 中 “张三 + 销售部” 出现 2 次、“张三 + 技术部” 出现 1 次,UNIQUE 返回 {张三 + 销售部,张三 + 技术部,李四 + 销售部,…},相同组合仅保留 1 次。

三、实战场景:UNIQUE 函数的 6 大核心应用

UNIQUE 函数的价值体现在 “高效去重 + 动态更新”,下面用 6 个高频场景示例,覆盖 “单列去重、多列组合去重、跨表去重、数据统计” 等需求,每个示例均包含 “公式 + 逻辑解析 + 对比传统操作”,凸显效率优势。

示例 1:基础应用 —— 单列文本去重(提取不重复员工姓名)

需求:在 “员工表” 的 A2:A100 列(员工姓名,含重复值)中,提取不重复的姓名,无需手动筛选删除。

传统操作(无 UNIQUE):

  1. 选中 A2:A100,点击「数据」→「删除重复项」;

  2. 确认删除后,原数据被修改(重复项被删除),若需保留原数据,需先复制到新区域,步骤繁琐且易误删。

UNIQUE 公式(一键单列去重):

\=UNIQUE(A2:A100)

解析:

  • array=A2:A100:对姓名列去重,重复姓名仅保留第一次出现的记录;

  • 结果:公式输入在 C2 单元格后,自动溢出返回 C2:Cn 的不重复姓名(n = 唯一姓名数量),原数据完好无损;

  • 优势:新增员工姓名到 A101 时,公式结果自动同步更新(若新增姓名重复,不新增;若唯一,自动添加到结果中)。

示例 2:进阶应用 —— 多列组合去重(提取唯一 “姓名 + 部门” 组合)

需求:在 “员工表” 的 A2:B100 区域(姓名 + 部门,含重复组合)中,提取 “姓名 + 部门” 组合不重复的记录(如 “张三 + 销售部” 重复 2 次,仅保留 1 次)。

传统操作(无 UNIQUE):

  1. 选中 A2:B100,复制到新区域;

  2. 点击「数据」→「删除重复项」,勾选 “姓名” 和 “部门” 列;

  3. 手动确认删除,步骤多且无法动态更新(新增组合需重新操作)。

UNIQUE 公式(一键多列去重):

\=UNIQUE(A2:B100)

解析:

  • array=A2:B100:按行去重(by_col=FALSE 默认),仅当 “姓名” 和 “部门” 均相同时视为重复;

  • 结果:返回 2 列数组,每一行是唯一的 “姓名 + 部门” 组合(如张三 + 销售部、张三 + 技术部、李四 + 销售部);

  • 优势:新增 “王五 + 财务部” 到 A101:B101 时,公式自动将该组合添加到结果中,无需重新去重。

示例 3:动态更新 —— 唯一值随原数据实时同步(销售产品去重)

需求:在 “销售表” 中,提取 B2:B100 列(产品名称)的唯一值,当原数据新增 / 删除产品时,唯一值结果自动同步变化。

传统操作(无 UNIQUE):

  1. 每次新增 / 删除产品后,需重新复制区域、删除重复项,操作重复且易遗漏;

  2. 若原数据频繁更新,需反复执行去重步骤,效率极低。

UNIQUE 公式(动态同步唯一值):

\=UNIQUE(B2:B100)

解析:

  • UNIQUE 返回的是 “动态数组”,与原数据区域实时联动;

  • 原数据新增 “笔记本电脑”(未出现过),结果自动添加 “笔记本电脑”;

  • 原数据删除 “手机”(仅 1 次出现),结果自动移除 “手机”;

  • 优势:无需手动干预,唯一值结果随原数据实时更新,适合动态报表。

示例 4:跨表应用 —— 提取其他工作表的唯一值(无需切换页面)

需求:在 “汇总表” 中,提取 “Sheet2 销售表” 中 B2:B100 列(客户名称)的唯一值,无需切换到 Sheet2,且结果随 Sheet2 数据同步更新。

传统操作(无 UNIQUE):

  1. 切换到 Sheet2,复制 B2:B100 到汇总表;

  2. 在汇总表中删除重复项,后续 Sheet2 数据更新时,需重新复制粘贴去重,步骤繁琐。

UNIQUE 公式(跨表提取唯一值):

\=UNIQUE(Sheet2!B2:B100)

解析:

  • array=Sheet2!B2:B100:直接引用 Sheet2 的客户名称列,无需切换工作表;

  • 结果:在汇总表中直接显示 Sheet2 的唯一客户名称,Sheet2 新增 / 删除客户时,汇总表结果自动同步;

  • 优势:跨表数据联动,减少工作表切换操作,提升报表制作效率。

示例 5:数据统计 —— 结合 COUNTA 统计唯一值数量(客户数量统计)

需求:在 “销售表” 中,先提取 B2:B100 列(客户名称)的唯一值,再统计唯一客户的总数量(即公司合作的客户总数)。

传统操作(无 UNIQUE):

  1. 选中 B2:B100,删除重复项;

  2. 用 COUNTA 统计剩余单元格数量,步骤多且原数据被修改。

UNIQUE+COUNTA 公式(一键统计唯一值数量):

\=COUNTA(UNIQUE(B2:B100))

解析:

  • UNIQUE(B2:B100):提取唯一客户名称,返回动态数组;

  • COUNTA(...):统计唯一客户名称的数量(COUNTA 统计非空单元格数量,即唯一值数量);

  • 结果:若提取出 25 个唯一客户,公式返回 25,且随原数据动态更新(新增客户时数量增加,删除唯一客户时数量减少);

  • 拓展:若需排除空白值(原数据含空白单元格),公式改为=COUNTA(UNIQUE(FILTER(B2:B100, B2:B100<>""))),先筛选非空再去重统计。

示例 6:复杂去重 —— 结合 FILTER 先筛选再去重(特定条件唯一值)

需求:在 “销售表” 中,先筛选出 “销售部” 的员工(A2:A100 为姓名,B2:B100 为部门),再提取销售部员工的唯一姓名(排除其他部门,仅保留销售部不重复姓名)。

传统操作(无 UNIQUE):

  1. 选中 A2:B100,筛选 “部门 = 销售部”;

  2. 复制筛选后的姓名列到新区域,删除重复项,步骤多且无法动态更新。

UNIQUE+FILTER 公式(筛选后去重):

\=UNIQUE(FILTER(A2:A100, B2:B100="销售部"))

解析:

  • FILTER(A2:A100, B2:B100="销售部"):先筛选出部门为 “销售部” 的所有姓名(含重复);

  • UNIQUE(...):对筛选后的姓名去重,提取销售部唯一姓名;

  • 结果:仅显示销售部不重复的员工姓名,若原数据新增 “销售部 + 王五”,结果自动添加王五;

  • 优势:“筛选 + 去重” 一步完成,逻辑集中,结果随原数据动态更新,无需手动干预。

四、总结:UNIQUE 函数的核心优势与注意事项

1. 核心优势(对比传统去重操作)

对比维度 UNIQUE 函数 传统手动去重(删除重复项)
效率 一行公式完成去重,支持动态更新 需复制、筛选、删除重复项,步骤多,效率低
数据安全性 不修改原数据,仅返回唯一值数组 直接删除原数据重复项,误操作后无法恢复
灵活性 支持单列 / 多列去重、跨表去重、筛选后去重 仅支持固定区域去重,复杂场景需多步操作
动态适应性 原数据新增 / 删除时,结果自动同步 需重新执行去重步骤,无法实时更新

2. 必记注意事项

  • 版本要求:UNIQUE 函数仅支持 Excel 365(订阅版)和 Excel 2021,Excel 2019 及以下版本无此函数,会返回 #NAME? 错误;

  • 多列去重限制:多列去重仅支持 “连续多列区域”(如 A2:B100),不支持不连续多列(如 A2:A100,C2:C100),否则返回 #VALUE! 错误;

  • 错误值处理:原数据含错误值(如 #N/A、#VALUE!)时,错误值会被视为唯一值保留,需先用 IFERROR 处理(如=UNIQUE(IFERROR(A2:A100, "")),将错误值转为空白后去重);

  • 结果溢出:UNIQUE 返回的数组会自动溢出,需确保结果区域的下方和右侧无数据,否则会提示 #SPILL! 错误,需清理空白区域。

UNIQUE 函数虽然简单,但却是 Excel 数据清洗的 “核心工具”—— 它把过去繁琐的 “复制 - 筛选 - 删除重复项” 流程,压缩为一行公式,尤其适合员工名单去重、客户数量统计、产品列表整理等场景。掌握它的核心用法,能让你在数据清洗时效率翻倍,告别手动操作的繁琐。建议从简单的单列去重(示例 1)开始尝试,逐步过渡到多列组合去重、筛选后去重等复杂场景,慢慢体会动态去重的便捷!