Vba 多页数据中的查找功能
我有多张数据表,我想将其放在一张表中(所有数据表都在同一工作簿中) 我尝试在excel文件中使用Vba 多页数据中的查找功能,vba,excel,lookup,Vba,Excel,Lookup,我有多张数据表,我想将其放在一张表中(所有数据表都在同一工作簿中) 我尝试在excel文件中使用Hlookup函数,如下所示: =HLOOKUP("University",Sheet1!$A$1:$G$2, 2, FALSE). 但是,由于我有100多张数据表,我想找到一种方法来拖动函数并自动生成第二行下面的函数。我尝试使用间接函数,在前面设置一个参考列,如下所示,但无法处理它 =HLOOKUP("University", 'INDIRECT(A3)'!$A$1:$G$2, 2, FALSE
Hlookup
函数,如下所示:
=HLOOKUP("University",Sheet1!$A$1:$G$2, 2, FALSE).
但是,由于我有100多张数据表,我想找到一种方法来拖动函数并自动生成第二行下面的函数。我尝试使用间接函数,在前面设置一个参考列,如下所示,但无法处理它
=HLOOKUP("University", 'INDIRECT(A3)'!$A$1:$G$2, 2, FALSE)
我的下一个选择是VB代码。但是,我是VB新手。有人能帮忙吗
将您的个人工作表名称放在<代码>摘要工作表的H列中,将行号放在I列中(作为辅助列),并将此公式写入摘要工作表的单元格<代码>A2
=IFERROR(HLOOKUP(A$1,INDIRECT($H2&"!A1:G"&$I2),$I2,0),)
然后拖动到F列并向下拖动,以获得尽可能多的图纸行组合。我用了10行,但是你可以根据需要把它改长或改短
完成后,可以对A列中的0进行筛选,并删除任何没有数据的行
如果图纸名称中有空格,则需要将间接
公式调整为:
INDIRECT("'"&$H2&"'!A1:G"&$I2)
假设您已经在A列中键入了所有100多个图纸名称,无论图纸名称中是否有空格,这都将起作用:
=HLOOKUP("University", OFFSET(INDIRECT(ADDRESS(1,1,1,1,A2)),0,0,2,7),2,FALSE)
最好的方法是“定义名称”+间接的
+HLOOKUP
(或查找
)如下:
单元格中的公式:(这在A2
中,然后简单地自动填充到G2
,然后将所有内容向下)(您将在工作表之间得到一行0,可以在以后过滤或删除(复制/粘贴值))
将H2
设置为2,对于H3
:(从H3
自动填充)
非常适合我
无需手动键入sheetnames或类似内容(仅列H:H
作为辅助对象)。每次选择一个可以过滤掉的新工作表时,您都会得到带有0的行。(或者,如果复制/粘贴值,也可以删除)
+2
位于…st,COUNTIF($A$1:$A1,0)+2)和…
的+2
只要求从第2页开始(如果摘要是第一页)。如果要从第一页开始查找,可以将其更改为+1
。
而不是
“间接(A3)”$A$1:$G$2
尝试类似于间接(“&A3&”!$A$1:$G$2”)
每张工作表中只有一个条目吗?是的,每张工作表中只有一个条目。但是,我用你的函数来解决我的问题。非常感谢你!谢谢你指出这一点。完全读一遍那部分!我调整了我的答案以反映这一点。是的,您的解决方案确实帮助了我,特别是IFERROR函数,它提醒我设置if error函数。非常感谢。非常感谢您这么快的回复。
defined names
name: SList
formula: =MID(TRANSPOSE(GET.WORKBOOK(1))&T(NOW()),FIND("]",TRANSPOSE(GET.WORKBOOK(1))&T(NOW()))+1,255)
=IFERROR(HLOOKUP(A$1,INDIRECT("'"&INDEX(SList,COUNTIF($A$1:$A1,0)+2)&"'!$A:$G"),$H2,0),"")
=MAX(($H2+1)*($A2>0),2)