excel如何在一列中查找指定值,然后输出他后面的那一列

如图,我要把B列所有是1的找到,然后把他对应的C列输出到另一列,拜托拜托,要全部找出来输出到另一列

Excel中可以利用Vlookup函数在一列中查找指定值,然后输出他后面的那一列。

软件版本:Office2007

举例说明如下:

1.查找A列中与E列相同的值,返回对应的F列的值:

2.输入公式如下:

公式解释:查找值为A列数值,因此第一个参数为A1;第二个参数查找区域为E1:F7,因为要下拉填充,所以这里必须要用绝对引用,保证不管怎样拖动始终是这个区域;返回的值在E1:F7中的第2列,所以第三个参数为2,最后参数为0,即精确匹配,必须与E列数值一致才返回F列的值

3.下拉填充得到结果如下:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
其他单元格输入:
=INDEX(C:C,SMALL(IF($B$2:$B$2000=1,ROW($B$2:$B$2000),4^8),ROW(A1)))
数组公式,以Ctrl+Shift+回车 组合键,代替回车键,结束输入。
下拉公式

当然,也可以用高级筛选功能,不过得分次操作。本回答被网友采纳
第2个回答  2016-05-30
比如在E2输入下面公式:
=INDEX(C:C,SMALL(IF($B$2:$B$100=1,ROW($B$2:$B$100),4^8),ROW(A1)))&""
然后按组合键Ctrl+shift+enter完成输入,再下拉填充。追问

请问能解释下各个数的意思吗,比如$B$2:$B$100=1中100是什么意思,4^8又是什么意思,ROW(A1是什么意思

追答

$B$2:$B$100表示B列的数据区域,根据需要可修改为其它,比如$B$2:$B$1000等等。

4^8=65536,表示返回一个最大行号(因2003版最多65536行)

ROW(A1)返回1,当公式向下填充时,相应地会变成ROW(A2),返回2、……

IF($B$2:$B$100=1,ROW($B$2:$B$100),4^8)的意思是当B列的值为1时,就返回它的行号,否则返回一个行号极大值。
SMALL(IF($B$2:$B$100=1,ROW($B$2:$B$100),4^8),ROW(A1))表示在满足条件的数据数组中,从最小的行号值开始,依次返回满足条件的行号,所以整个公式的意思是,返回满足条件的对应行C列的值。

追问

=INDEX(C:C,SMALL(IF($B$2:$B$9547=1,ROW($B$2:$B$9547),4^8),ROW(A1)))&""
我的数据总共有9547行,我不修改你给的函数就能输出前一百行的查找,但是我这么改了,就报错了,你能帮我看看这是哪里错了吗,或者你直接写一个9547行数据的?

追答

公式没有错,关键是要按组合键Ctrl+Shift+Enter。

本回答被提问者采纳
第3个回答  2016-05-30
在首个单元格中输入
=INDEX(C:C,SMALL(IF(B$2:B$2000=1,ROW($2:$2000),4^8),ROW(A1)))&""
按【组合键】确认后下拉填充。
相似回答