excel 提取符合条件的行到新的工作表要怎么做?
=INDEX(Sheet1!A$2:A$8,SMALL(IF(Sheet1!$E$2:$E$8="压力容器",ROW($A$1:$A$7),4^8),ROW(A1))) 展开
1,打开源数据文件,把首行中的对应的数据,复制行到空白位置。
2.选中J2单元格,单击编辑栏中的"插入函数“,如图示。
3.弹出”插入函数“对话框,设置其类别为”逻辑“,并选择列表框中的IF选项。
然后确定。
4.在弹出的”函数参数“对话框中,
设置Logical_test参数为”I2=“”,
将Value_if_true设置为“”,也就是空白内容。
最重要的一步来了:
将Value_if_false参数框中输入“VLOOKUP(I2,A2:B2846,2),
然后确定。
用if函数判定I2单元格中的内容是不是不是空白。
若是空白,那么J2单元格也是空白。
若不是空白,就执行VLOOKUP函数。在A2:B2846区域中(因为源数据不改动,所以这里用的是相对引用)查找I2单元中的内容,找到后,在J2单元格中返回所找到的内容所在的行的第二列中的数据。
5.经过第4步后,在I2单元中输入任意证券代码就会在J2单元中显示其行业了。
那么,现在需要的是在I列粘贴进去我们需要的证券代码后,其后会出现源数据所对应的第一行中的内容。所以要接着第6步。
6.选中J2单元格,注意是J2,不是I2哦.(I2是输入证券代码的地方)
鼠标移动到单元格右下角,出现十字光标时,按住鼠标左键向右拖动到O2单元格。
如图
7.这个时候就会发现原来源数据中的C2-G2单元格中的内容就会自动填充到K2-O2单元格中。这个时候,如果需要的数据是按源数据中的数据从上到下排列的,就可以不用修改了。
直接重复第6步中的方法,把J2-O2每个单元格下拉填充就完成了。
如图示,先把需要的数据列复制到I列中,然后依次下拉填充。
8.但有时候,如果需要的不是按照源数据中的排序,比如说,回到现在用的这个例子,如果在I3中,输入000002就会出错。如图示。
j3中的函数为VLOOKUP(I3,A3:B2847,2))
也就是搜索从A3到B2487区域中的内容。没有包含A2,所以输入000002在源数据中找不到。
所以使用这个方法前,要先对需要的数据按源数据进行排序。不然,是不准确的。
你的公式,我用函数向导分析,是取sheet1里面E2:E8里有"压力容器"的数据,按那三个键后,能正常取数据。
更多WPS办公软件教程,请访问:http://bbs.wps.cn或者http://e.weibo.com/wpswfw
所以,这个公式是数组公式,要注意输入方法:选中一批单元格(数量要预计够返回数据的个数),按F2,在公式编辑框中粘贴此公式后,不该按回车键,应该按Ctrl+Shift+Enter,然后会看到公示显示为“{=...}”(花括号靠直接输入是不行的),就对了。
不过,若返回数据的个数无法预计,或者少数情况下返回数据的量较大、造成有公式却一般无值而浪费空间的单元格太多,则应该用SQL查询来代替。
=INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$E$2:$E$8="压力容器",ROW($A$1:$A$7),4^8),ROW(A1))) 同时按ctrl+shift+enter三个键
下拉填充。