You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel多列区域提取唯一值至单列:{=OFFSET(UNIQUE(A1:C10);0;0)}公式失效求助

提取多区域唯一值到单列的正确解法

你用的{=OFFSET(UNIQUE(A1:C10); 0; 0)}无效,是因为UNIQUE(A1:C10)返回的是二维数组(原区域是3列,结果也呈多列形式),OFFSET无法将二维数组转换为单列输出。下面分版本给出可行方案:

适用于Office 365/Excel 2021及以上版本(动态数组)

直接用TOCOL函数扁平化数组,再提取唯一值(顺序可互换):
在E1单元格输入:

=TOCOL(UNIQUE(A1:C10), 1)
  • 第二个参数1用于忽略空值,按回车后公式会自动溢出到E列下方,生成所有唯一值的单列列表,无需手动下拉或数组输入。

适用于旧版Excel(无动态数组功能)

用数组公式组合实现,在E1单元格输入以下公式,然后按Ctrl+Shift+Enter(数组输入后公式会自动添加大括号),之后下拉公式直到出现#NUM!错误为止:

=INDEX($A$1:$C$10,SMALL(IF(MATCH($A$1:$C$10,$A$1:$C$10,0)=ROW($A$1:$C$10)*100+COLUMN($A$1:$C$10),ROW($A$1:$C$10)*100+COLUMN($A$1:$C$10)),ROW(A1))/100,MOD(SMALL(IF(MATCH($A$1:$C$10,$A$1:$C$10,0)=ROW($A$1:$C$10)*100+COLUMN($A$1:$C$10),ROW($A$1:$C$10)*100+COLUMN($A$1:$C$10)),ROW(A1)),100))

原理:通过MATCH标记每个值首次出现的位置,再用SMALL按顺序提取这些位置,最后用INDEX定位对应单元格的值。

内容的提问来源于stack exchange,提问作者uelf1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 01:52:41