如何在Excel中将指定区域转为单列唯一值?UNIQUE函数返回表格而非列表
多区域转单列唯一值的解决方法
方法一:Excel 365/2021 动态数组公式(最便捷)
直接用TOCOL函数把多列区域扁平化转为单列,再嵌套UNIQUE提取唯一值:
=UNIQUE(TOCOL(A1:C3,1))
TOCOL(A1:C3,1):把A1到C3的所有单元格按行优先顺序转为单列,参数1用于忽略空值(如果区域有空单元格的话)UNIQUE:对扁平化后的单列数据提取唯一值,结果会自动溢出为单列列表,正好匹配需求。
用你提供的输入区域测试,公式会直接返回:
A
B
C
D
方法二:旧版本Excel(无动态数组功能)
步骤1:将多列合并为单列
在空白单元格(比如D1)输入以下公式,下拉直到出现错误值:
=INDEX($A$1:$C$3,INT((ROW(A1)-1)/3)+1,MOD(ROW(A1)-1,3)+1)
(公式里的3是原区域的列数,如果你处理的是A1:G5,就把3换成7)
步骤2:提取唯一值
- 复制生成的单列数据,右键粘贴为「值」
- 选中这列数据,点击「数据」选项卡的「高级」筛选
- 选择「将筛选结果复制到其他位置」,指定一个空白单元格作为输出位置
- 勾选「选择不重复的记录」,点击确定即可得到单列唯一值。
另外也可以用透视表快速实现:
- 选中目标区域,插入透视表
- 把任意一个字段拖到「行」区域(透视表会自动合并所有行的唯一值)
- 复制透视表的行标签,粘贴到空白区域就是单列唯一值。
内容的提问来源于stack exchange,提问作者Civette
相关产品推荐
相关产品推荐

