EXCEL 提取包含数据到另外一列 如何查找同一excel表格里,列2包含列1的数字,然后提取到新建列?

列1和列2 对比,列1有641行,列2有一万多行,
现在是需要从列2中查找到包含列1数字的所有行,
并提取到列3.
不是相同,是包含

或者把列2中包含列1的数字行高亮标记出来

工具版本——excel2010

方法步骤:

    打开一个excel表格,比如A列是列1,B列是列2,假设求B列中包含A列的数字有哪些。

    在C1单元格中输入公式:=INDEX(A:A,SMALL(IF(COUNTIF($B$1:B$20,A$1:A$12),ROW($1:$12),4^8),ROW(A1)))&"",然后按三键结束,下拉就可以得到结果了。

    公式解释:首先,这是一个数组公式,什么是“数组公式”呢?数组公式最特殊也最直接的表现,就是你在单元格里输入完公式之后,要按Ctrl+Shift+Enter三键结束,跟“普通公式”只按Enter结束有明显的区别。这个公式的核心是index函数,公式用了一个IF,直接用COUNTIF返回满足条件的记录,然后只显示满足条件的记录,公式下拉后其余数量一率用空值表示,而且这里IF函数的False结果可以直接省略以返回FALSE;SMALL函数的第二参数是ROW(A1),这个是返回A1单元格所在的行号,也就是1,当我们整个公式下拉填充之后,就可以得到ROW(A2)、ROW(A3)、ROW(A4)这样的变化,也就是1、2、3、4 …… 这样的自然数序列

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-04
就是提取两列相同的数据?假设数据在A和B列,C1公式:
=IFERROR(INDEX(A$1:A$1000,SMALL(IF(COUNTIF(B:B,A$1:A$1000)>0,ROW($1:$1000)),ROW(A1))),"")
数组公式,需要按CTRL+SHIFT+回车,完成公式,下拉。追问

已经补充问题

追答

由于行数(1万多行)比较多,公式会运行会比较慢,第二列B列,我用1000行设计公式:
=IFERROR(INDEX(B$1:B$1000,SMALL(IF(MMULT(N(ISNUMBER(FIND(TRANSPOSE(A$1:A$641),B$1:B$1000))),ROW($1:$641)^0)>0,ROW($1:$1000)),ROW(A1))),"")
数组公式,需要按CTRL+SHIFT+回车,完成公式,下拉。

追问

641行的是B,10001行的是C
把C列包含B列的数字放到A列
按照你的公式运行,提示层数超出当前文件格式的允许值

追答

用2007以上版本,将文件保存为XLSX格式,就可以了。
不过,由于行数比较多,可能会出现资源不足。

本回答被网友采纳
第2个回答  2016-11-04
具体点,我来回答追问

列1和列2 对比,列1有641行,列2有一万多行,
现在是需要从列2中查找到包含列1数字的所有行,
并提取到列3.
不是相同,是包含