首页 > 解决方案 > 如何根据单元格值将地址传递给 Vlookup(Google 表格)

问题描述

这让我很困惑,所以我希望知道正确功能的人可以帮助我。

我正在尝试做一个 VLOOKUP,但我想根据列中的值传递范围。

范围与公式所在的工作表不同,我希望通过查找论坛所在列顶部的值来确定范围的起始列。

例如,在附加图像中,“仪表板”工作表的 A 列作为工作表,顶行在顶行有小部件和链轮。

我希望公式成为搜索键“总计”的查找,并在其旁边的单元格中返回值。我希望 Range 从 A 列中指定的工作表开始,并且 Column 的值与公式所在列顶部的值相匹配。

所以我的公式看起来像

=VLOOKUP("Total",<INSERT RANGE HERE>,2)

帮助将不胜感激。

链接到谷歌表:

https://docs.google.com/spreadsheets/d/1H5At3gHeTQUm6PWqeA7MT5xcm5RJ38NK6LyhSWUeaZY/edit?usp=sharing

感谢 Stack Overflow 社区

附加截图

标签: arraysgoogle-sheetsgoogle-sheets-formulags-vlookupaddressing

解决方案


我相信这就是你要找的。

在仪表板表上输入以下公式:

C3:

=vlookup("Total", indirect($A3&"!C1:D"),2)

D3:

=vlookup("Total", indirect($A3&"!C1:F"),4)

然后您可以选择 C3:D3 并向下拖动以自动填充。我尝试使用数组公式,但它没有用,但我可能做错了

前任

还要确保更改“Position1”和“Position2”以完全匹配工作表名称。

编辑:我刚看到你的截图。这些公式也可以放入 C2 和 D2 中,我只是将它们放在工作表名称旁边以跟踪我必须做什么。


编辑以回应评论: 这是我能找到的最接近您正在寻找的东西。

C3:
=vlookup("Total", indirect($A3&"!C1:"&ADDRESS(ROW(INDIRECT($A3&"!$C50")),COLUMN()+1)),2)

D3:
=vlookup("Total", indirect($A3&"!E1:"&ADDRESS(ROW(INDIRECT($A3&"!$E50")),COLUMN()+1)),2)

同样,这些列可以毫无问题地拖动和自动填充。


我有以下公式可以粘贴到仪表板 C3 单元格上,然后复制: =address(1,match(C$1,indirect($A3&"!1:1"),0),,,$A3)这将为我提供我想要从我试图引用的工作表中获取的地址,即 Position01!$C$1 此外,如果我使用以下公式,我会得到我想要的值:=offset(Position01!$C$1 ,7,1,1,1) 但是,如果我尝试将两者结合起来,我会收到错误“参数必须是一个范围”。=offset(地址(1,match(C$1,indirect($A3&"!1:1"),0),,,$A3),7,1,1,1)

INDIRECT将第一个公式放在第一个公式之前时,您需要在其前面添加,OFFSET以便它将结果地址作为范围而不是字符串读取:
=offset(INDIRECT(address(1,match(C$1,indirect($A3&"!1:1"),0),,,$A3)),7,1,1,1)


推荐阅读