1、公式无法完成复制,在一定条件下可以实现引用,但源数据必须存在。
2、可以编写一段VBA代码将EXCEL中符合条件的数据复制到另一个工作表:
假设是要查找A列包含XXX的,查到后将该行复制到另一个表。
sub test()
Dim i&,r&
r=cells(rows.count,1).end(xlup).row '定位A列最后一行
k=1 'Sheet2 的起始行
for i=1 to r '从第一行循环至第最后一行
if instr(cells(i,1),"XXX")>0 then '如果A列第i行单元中包含XXX,则将该行复制到表2
Range("A" & i & ":Z" &).Copy Sheet2.Range("A" & k) ‘复制第i行至表2
End if
next
End Sub
比如复制sheet1表格中齐数列数据
sheet2的A1输入
=OFFSET(Sheet1!$A$1,2*(ROW(A1)-1),)
公式下拉
利用公式恐怕不行,你可以试下选择性粘贴!
公式比较复杂,用VBA更好处理
VLOOKUP函数
函数名称:VLOOKUP
主要功能:在数据表的首列查找指定的数值,并由此返回数据表当前行中指定列处的数值。
使用格式:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
参数说明:Lookup_value代表需要查找的数值;Table_array代表需要在其中查找数据的单元格区域;Col_index_num为在table_array区域中待返回的匹配值的列序号(当Col_index_num为2时,返回table_array第2列中的数值,为3时,返回第3列的值……);Range_lookup为一逻辑值,如果为TRUE或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于lookup_value的最大数值;如果为FALSE,则返回精确匹配值,如果找不到,则返回错误值#N/A。
应用举例:参见图7,我们在D65单元格中输入公式:=VLOOKUP(B65,B2:D63,3,FALSE),确认后,只要在B65单元格中输入一个学生的姓名(如丁48),D65单元格中即刻显示出该学生的语言成绩。
特别提醒:Lookup_value参见必须在Table_array区域的首列中;如果忽略Range_lookup参数,则Table_array的首列必须进行排序;在此函数的向导中,有关Range_lookup参数的用法是错误的。