为何Excel中Unique()函数输出仍包含重复值?
问题解答
这不是Excel的Bug,而是对UNIQUE函数的参数逻辑理解有误。
核心原因
UNIQUE函数的默认行为是按行去重(参数[by_col]默认值为FALSE):
- 当处理横向区域(如
A1:B1)或横向数组(如TEXTSPLIT返回的分拆结果)时,默认会把每一行作为一个独立单元进行比较,而非逐个单元格去重。
对应解决方案
1. 单个单元格分号列表去重
原公式未指定UNIQUE的by_col参数,导致横向数组未被正确去重。修改后的公式为:
=TEXTJOIN(";",TRUE,UNIQUE(TEXTSPLIT(A1,";"),TRUE))
- 添加
TRUE作为UNIQUE的第二个参数,指定按列去重,这样TEXTSPLIT返回的横向元素会被逐个比较去重。
2. 横向区域单元格去重
对A1:B1的横向区域去重,需显式设置by_col为TRUE,公式改为:
=UNIQUE(A1:B1,TRUE)
此时会返回单个Identical值,而非重复项。
验证说明
在Excel 365(Windows 2504版本、Mac版)中测试上述修改后的公式,均可正确实现去重效果。
内容的提问来源于stack exchange,提问作者Stephen Reed
相关产品推荐
相关产品推荐

