使用VLookup查找相应的行

时间:2013-11-02 18:20:57

标签: excel vba excel-vba vlookup

我在名为

的Excel文件中有5张纸
  • roll 1to2.5
  • roll2.5to5
  • roll5to7
  • roll 7to9.5
  • roll 9.5to12

每张工作表都有两列,其中包含以下数据:

A  B
1  22
2  25
3  29
4  20
5  18
6  26
7  19
8  16
9  21
10 20

现在我能够做到以下几点:在C栏中,如果我从Col A输入一个数字,说“7”,我从Col B得到相应的值,即“19”。我使用了以下公式

=VLOOKUP(C5,A1:B10,2,FALSE)

这在这里很有用。

问题1:假设我想在单元格中输入滚动条说“5.5”,它应该自动考虑表3中的数据(roll5to7)

问题2:然后如果我输入ColB值,说“20”,它应该从ColA中取出相应的值,即表3中的“4”(第一次匹配)。 / p>

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

要获得正确的工作表名称,请在一列中列出您的5个工作表名称,并在上一个列中列出每个(1,2.5,5,7和9)的下限并命名为两列表

现在你可以使用这个公式

=VLOOKUP(C5,INDIRECT("'"&LOOKUP(D5,Table)&"'!A1:B10"),2,FALSE)

其中D5包含卷

LOOKUP找到正确的工作表名称,INDIRECT将文本转换为有效的参考资料

修改

如果您想在B列中查找C5并从A列中找到相应的值,那么INDEX/MATCH将如下所示:

=INDEX(INDIRECT("'"&LOOKUP(D5,Table)&"'!A1:A10"),MATCH(C5,INDIRECT("'"&LOOKUP(D5,Table)&"'!B1:B10"),0))