查找多个工作表数据中的函数

时间:2015-11-24 15:22:38

标签: excel vba excel-vba lookup

我有多张数据,我想在一张纸上制作(所有这些都在同一张工作簿中)。 Link to the excel file

我尝试在excel文件中使用Hlookup函数,如下所示:

=HLOOKUP("University",Sheet1!$A$1:$G$2, 2, FALSE). 

但是,由于我有超过100张数据,我想找到一种方法来拖动函数并自动生成第二行下面的函数。我试图通过在前面设置一个参考列来使用间接功能,但不能处理它。

=HLOOKUP("University", 'INDIRECT(A3)'!$A$1:$G$2, 2, FALSE)

我的下一个选项是VB代码。但是,我是VB的新手。有人可以提供帮助吗?

enter image description here

3 个答案:

答案 0 :(得分:1)

将您的单个工作表名称放在INDIRECT("'"&$H2&"'!A1:G"&$I2) 工作表的H列和第I列的行编号(作为帮助列)中,并将此公式写在摘要表的单元格if (self.adCountdown != nil) { if ([self.adCountdown isValid]) { [self.adCountdown invalidate]; self.adCountdown = nil; } } 中。

if (self.adCountdown != nil) {
    if ([self.adCountdown isValid]) {
        [self.adCountdown invalidate];
    }
}
if (self.adCountdown != nil) {
    self.adCountdown = nil;
}

并拖动到F列,然后向下拖动您拥有的多个工作表行组合。我使用了10行,但显然可以使它更长或更短。

enter image description here

完成后,您可以在A列中过滤0并删除任何没有数据的行。

如果您的工作表名称中包含空格,则需要将transform:rotateY();公式调整为:

transform:rotateY();

答案 1 :(得分:1)

最佳方式是“定义名称”+ INDIRECT + HLOOKUP(或LOOKUP),如:

defined names
name:    SList
formula: =MID(TRANSPOSE(GET.WORKBOOK(1))&T(NOW()),FIND("]",TRANSPOSE(GET.WORKBOOK(1))&T(NOW()))+1,255)
单元格中的

公式:(这在A2然后只需自动填充到G2,然后一切都向下)(您将在工作表之间得到一行0,可以过滤掉或稍后删除(复制/粘贴值))

=IFERROR(HLOOKUP(A$1,INDIRECT("'"&INDEX(SList,COUNTIF($A$1:$A1,0)+2)&"'!$A:$G"),$H2,0),"")

H2设置为2并设置为H3 :(从H3自动填充)

=MAX(($H2+1)*($A2>0),2)

完美适合我LINK

没有手动输入工作表名称或类似名称(只有列H:H作为帮助者)。每次选择可以过滤掉的新工作表时,您都会获得0的行数。 (或者如果复制/粘贴值也可以删除)

+2 ...st,COUNTIF($A$1:$A1,0)+2)&...只是告诉从表2开始(如果汇总是第一个)。如果要从第一张表开始查找,可以将其更改为+1enter image description here

答案 2 :(得分:0)

假设您已经在A列中输入了所有100多个工作表名称,无论工作表名称中是否有空格,这都将起作用:

=HLOOKUP("University", OFFSET(INDIRECT(ADDRESS(1,1,1,1,A2)),0,0,2,7),2,FALSE)