Excel把某列中不同的单元格分别引用提取出来?

例如:
a列 b列
123 123
123 12
123 111
12 258
12
111
111
111
111
258
258
258
258
我需要用函数分别提取出来,不要用高级筛选。
我想到的还有一种方法例如:
a列 b列 c列
123 123 123
123 12
123 111
12 12 258
12
111 111
111
111
111
258 258
258
258
258
b列用if函数单独选出来,但是需要在c列需要最终列出。同样c列也用函数,不要用定位条件复制黏贴到c列。

就个人的理解,你的问题实质貌似是取不重复值问题,这个问题是EXCEL里常遇的问题,以下是解决的示例:


在B1填写公式(注意:是数组公式):

=INDEX(A:A,SMALL(IF(MATCH(A$1:A$14&"",A$1:A$14&"",)=ROW($1:$14),ROW($1:$14),4^8),ROW(A1)))&""


然后向下填充即可。


结果如图:


追问

非常感谢你的答案,可用。我以前也用过类似的公式,顺便问下4^8=65536,65536指的什么?我想的第二种方法是否可以实现?

追答

4^8 = 65536 ,这个 65536 是 EXCEL2003 中最后一行的行号,在公式里,用以代指 Excel 最大数,用于匹配时使用(不匹配就是65536)。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-30
假定原数据在A列,请在B1单元格输入公式:
=INDEX(A:A,SMALL(IF(MATCH(A$1:A$1000&"",A$1:A$1000&"",)=ROW($1:$1000),ROW($1:$1000),65536),ROW()))&""
公式以CTRL+SHIFT+ENTER三键结束。
将公式向下复制。追问

非常感谢你的答案,可用。我以前也用过类似的公式:65536可以替换4^8,顺便问下,65536指的什么?我想的第二种方法是否可以实现?

追答

65536是2003版软件最后一行的行号。
第二种方法:
在B1输入公式:
=IF(ROW()=1,A1,IF(A1=OFFSET(A1,-1,,),"",A1))
将公式向下复制。
在C1输入公式:
=INDEX(B:B,SMALL(IF(B$1:B$1000="",65536,ROW($1:$1000)),ROW()))&""
公式以CTRL+SHIFT+ENTER三键结束。
将公式向下复制。

本回答被提问者采纳
第2个回答  2015-06-08
  在B1中输入  =INDEX($A$1:$A$10,SMALL(IF(ROW($A$1:$A$10)=MATCH($A$1:$A$10,$A$1:$A$10,0),ROW($A$1:$A$10)-1,"0"),ROW(A1)))
  按SHIFT+CTRL+回车结束
相似回答