Excel:根据两个引用返回单个值

时间:2014-02-16 18:17:18

标签: excel excel-formula

我有两个值,一个人可以在B列输入信息:

Spreadsheet Name: Info
      A          B 
1   Level        2
2   Class        Class 2

在工作簿中的第二个电子表格中,我有一个包含各种表格的数据电子表格。

因此当一个人在!InfoB2数据验证下拉列表中输入信息时,它将返回公式应该用于搜索与该级别相关的数据表中的值的表的名称!InfoB2。

    Spreadsheet Name: Data
    Table Name: Class 1
          A           B
    1    Level       BAB
    2    --------------------
    3    1            8
    4    2            3

    Table Name: Class 2
          A           B
    1    Level       BAB
    2    --------------------
    3    1            2
    4    2            7

所以当有人输入Level:2和Class2时,我希望它返回BAB列中的值,我该怎么做?

编辑 就像这样的贫民窟,感觉就像是在正确的轨道上,但它正在回归#VALUE!

    VLOOKUP(B1,VLOOKUP(B2,Class,2,FALSE),2,FALSE)

表类

    Table Name: Class
           A         B
    1  Class Name    Table Name
    2  Class 1        Class1Table
    3  Class 2        Class2Table

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您会想要使用INDIRECT和/或structured reference syntax来表示此问题。 我目前无法访问Excel,因此无法检查是否可行。一旦我尝试了一些东西,我会更新这个答案。

答案 1 :(得分:0)

您可以尝试以下公式:

=INDEX(INDIRECT(B2&"[#All]"), MATCH(B1,INDIRECT(B2&"[[#All],[Level]]"),0), 2)

这取B2的值(Class2注意我删除了空格,因为表名不能包含空格)并将其与[#All]连接起来,所以得到:Class2[#All](这是表格参考)。 INDIRECT将文本转换为有效范围。

INDIRECT(B2&"[[#All],[Level]]")类似地给出范围Class2[[#All],[Level]]

MATCH(B1,Class2[[#All],[Level]],0)给出了找到B1中的值的行号(即给出找到2的行,表示结果为4

=INDEX(Class2[#All], 4, 2)然后返回第4行和第2列中范围Class2[#All]的值。